From d85eb38be17f133bb429ca8c08d8f055793f128d Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sat, 20 Nov 2021 11:25:04 -0300 Subject: [PATCH] WIP debug prints --- src/_pytest/assertion/rewrite.py | 14 ++++++++++++++ testing/test_assertrewrite.py | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py index 456681ab2..8b620c0a8 100644 --- a/src/_pytest/assertion/rewrite.py +++ b/src/_pytest/assertion/rewrite.py @@ -146,19 +146,33 @@ class AssertionRewritingHook(importlib.abc.MetaPathFinder, importlib.abc.Loader) # atomic. POSIX's atomic rename comes in handy. write = not sys.dont_write_bytecode cache_dir = get_cache_dir(fn) + track_debug = getattr(sys, "TRACK_REWRITE", False) + if track_debug: + print("exec_module:") + print(f" cache_dir: {cache_dir}") + print(f" write (dont_write_bytecode): {write}") if write: ok = try_makedirs(cache_dir) if not ok: write = False + if track_debug: + print(f" write: {write} (read-only dir!)") state.trace(f"read only directory: {cache_dir}") + if track_debug: + print(f" write (final): {write}") cache_name = fn.name[:-3] + PYC_TAIL pyc = cache_dir / cache_name # Notice that even if we're in a read-only directory, I'm going # to check for a cached pyc. This may not be optimal... co = _read_pyc(fn, pyc, state.trace) + if track_debug: + print(f" co = {co}") if co is None: state.trace(f"rewriting {fn!r}") + if track_debug: + print(f" rewriting {fn!r} to:") + print(f" {pyc}") source_stat, co = _rewrite_test(fn, self.config) if write: self._writing_pyc = True diff --git a/testing/test_assertrewrite.py b/testing/test_assertrewrite.py index 0475a6442..2c0b278c6 100644 --- a/testing/test_assertrewrite.py +++ b/testing/test_assertrewrite.py @@ -1737,6 +1737,7 @@ class TestPyCacheDir: pycache_prefix = tmp_path / "my/pycs" monkeypatch.setattr(sys, "pycache_prefix", os.fspath(pycache_prefix)) monkeypatch.setattr(sys, "dont_write_bytecode", False) + monkeypatch.setattr(sys, "TRACK_REWRITE", True, raising=False) pytester.makepyfile( **{ @@ -1748,7 +1749,7 @@ class TestPyCacheDir: "src/bar/__init__.py": "", } ) - result = pytester.runpytest() + result = pytester.runpytest_inprocess("-s") pprint.pprint(list(tmp_path.glob("**/*.*"))) assert result.ret == 0