Temp env
provide.testkit.utils.temp_env
¶
Temporary Environment Utilities.
Provides context managers for safely modifying environment variables in tests with automatic cleanup and restoration.
Classes¶
EnvContext
¶
Context manager class for environment variable management.
Provides more control over environment variable manipulation with the ability to add/remove variables incrementally.
Initialize environment context.
Source code in provide/testkit/utils/temp_env.py
Functions¶
__enter__
¶
__exit__
¶
Exit the context manager and restore environment.
Source code in provide/testkit/utils/temp_env.py
delete
¶
Delete an environment variable.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Environment variable name to delete. |
required |
Source code in provide/testkit/utils/temp_env.py
set
¶
Set an environment variable.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Environment variable name. |
required |
value
|
str
|
Environment variable value. |
required |
Source code in provide/testkit/utils/temp_env.py
Functions¶
isolated_env
¶
Context manager for running tests in an isolated environment.
This clears all environment variables except those specified in keep_vars, then sets any new variables provided.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
keep_vars
|
list[str] | None
|
List of environment variable names to preserve. |
None
|
**new_vars
|
str
|
New environment variables to set. |
{}
|
Example
with isolated_env(keep_vars=["PATH", "HOME"], TEST_MODE="true"): # Only PATH, HOME, and TEST_MODE are in the environment pass
Source code in provide/testkit/utils/temp_env.py
temp_env
¶
Context manager for temporarily setting environment variables.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**env_vars
|
str | None
|
Environment variables to set. Use None to delete a variable. |
{}
|
Example
with temp_env(DEBUG="true", LOG_LEVEL="INFO"): # Environment variables are set assert os.environ["DEBUG"] == "true"
Environment variables are restored¶
To delete an environment variable:¶
with temp_env(UNWANTED_VAR=None): # UNWANTED_VAR is removed from environment pass
Source code in provide/testkit/utils/temp_env.py
temp_env_from_dict
¶
Context manager for temporarily setting environment variables from a dict.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
env_dict
|
Mapping[str, str | None]
|
Dictionary of environment variables to set. Use None values to delete. |
required |
Example
env_changes = {"DEBUG": "true", "LOG_LEVEL": "INFO", "REMOVE_ME": None} with temp_env_from_dict(env_changes): # Environment variables are set/removed pass