Pytest plugin to fail a test if it leaves modified os.environ
afterwards.
Example:
import os
def test_that_modifies_env() -> None:
os.environ['CUSTOM_ENV'] = '1'
With pytest-modified-env
plugin installed, this test will fail:
___________________________ test_that_modifies_env ____________________________
test_that_modifies_env:4: in pytest_runtest_call
E RuntimeError: os.environ was changed
Because it adds CUSTOM_ENV
inside a test and does not clean it up.
In theory it can affect other tests and tests should be isolated!
pip install pytest-modified-env
In some cases test still might modify the env in this way. But, it needs an explicit approval for that:
import os
import pytest
@pytest.mark.modify_env()
def test_that_modifies_env() -> None:
os.environ['CUSTOM_ENV'] = '1'
This test won't fail, eventhough it adds CUSTOM_ENV
,
because it has modifies_env
marker.