-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconftest.py
More file actions
48 lines (32 loc) · 1.1 KB
/
conftest.py
File metadata and controls
48 lines (32 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
import pytest
PYTEST_ENV_VAR_OVERRIDES = {
"AWS_ACCESS_KEY_ID": "testing",
"AWS_SECRET_ACCESS_KEY": "testing",
"AWS_SECURITY_TOKEN": "testing",
"AWS_SESSION_TOKEN": "testing",
}
def stash_env_var_overrides(stash):
original_env = {
envVar: os.environ.get(envVar, None) for envVar in PYTEST_ENV_VAR_OVERRIDES
}
stash.setdefault("overridden_env", original_env)
def override_env_vars():
for envVar, value in PYTEST_ENV_VAR_OVERRIDES.items():
os.environ[envVar] = value
def restore_env_vars_from_stash(stash):
original_env = stash.get("overridden_env", {})
for envVar, value in original_env.items():
if value is None:
del os.environ[envVar]
else:
os.environ[envVar] = value
def pytest_configure(config):
stash_env_var_overrides(config.stash)
override_env_vars()
@pytest.fixture(scope="function")
def native_env(pytestconfig):
"""Restore Environment Variables for tests that need external resources (e.g., S3)."""
restore_env_vars_from_stash(pytestconfig.stash)
yield
override_env_vars()