test_modulefinder always modifies execution environment · Issue #93616 · python/cpython (original) (raw)

Bug report

test_modulefinder creates a temporary directory in its global module scope

TEST_DIR = tempfile.mkdtemp()
TEST_PATH = [TEST_DIR, os.path.dirname(tempfile.__file__)]

and removes the temporary directory in each test method

finally:
shutil.rmtree(TEST_DIR)

If the test is executed in an environment without test worker processes (e.g. WASI) then the test runner complains about changes to the execution environment:

/python-wasm/cpython/builddir/wasi# wasmtime run --mapdir .::../../ -- python.wasm -m test --fail-env-changed test_modulefinder
0:00:00 Run tests sequentially
0:00:00 [1/1] test_modulefinder
Warning -- files was modified by test_modulefinder
Warning --   Before: ['tmp8avdrxn0/']
Warning --   After:  [] 
test_modulefinder failed (env changed)

== Tests result: ENV CHANGED ==

1 test altered the execution environment:
    test_modulefinder

Total duration: 292 ms
Tests result: ENV CHANGED

test_modulefinder should create the temporary directory in setUp and rmtree it in tearDown methods instead.