From ba41ccae1bbfb57d8ef0c9b08574577add440820 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sat, 1 Jun 2019 01:41:39 -0700 Subject: [PATCH] conftest: don't modify PYTEST_CURRENT_TEST when manipulating os.environ It confuses pytest. --- tests/conftest.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 8ce8f5fb..e0454e5c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -120,16 +120,24 @@ def spoof(tmpdir_factory, **kwargs): @contextmanager def os_environ(new_env): old_env = os.environ.copy() + if new_env is None: + new_env = {} for k, v in new_env.items(): - os.environ[k] = v + if k != 'PYTEST_CURRENT_TEST': + os.environ[k] = v yield new_keys = set(os.environ.copy()) - set(old_env) for k in new_keys: - del os.environ[k] + if k != 'PYTEST_CURRENT_TEST': + del os.environ[k] for k in old_env: - os.environ[k] = old_env[k] - assert os.environ.copy() == old_env + if k != 'PYTEST_CURRENT_TEST': + os.environ[k] = old_env[k] + + for k, v in os.environ.copy().items(): + if k != 'PYTEST_CURRENT_TEST': + assert v == old_env[k] @pytest.fixture(scope='session')