cpython: f7ddd72b70ea (original) (raw)
--- a/Lib/test/libregrtest/runtest.py +++ b/Lib/test/libregrtest/runtest.py @@ -116,7 +116,7 @@ def runtest(ns, test): try: sys.stdout = stream sys.stderr = stream
result = runtest_inner(test, verbose, quiet, huntrleaks,[](#l1.7)
result = runtest_inner(ns, test, verbose, quiet, huntrleaks,[](#l1.8) display_failure=False, pgo=pgo)[](#l1.9) if result[0] == FAILED:[](#l1.10) output = stream.getvalue()[](#l1.11)
@@ -127,7 +127,7 @@ def runtest(ns, test): sys.stderr = orig_stderr else: support.verbose = verbose # Tell tests to be moderately quiet
result = runtest_inner(test, verbose, quiet, huntrleaks,[](#l1.16)
finally: @@ -137,14 +137,14 @@ def runtest(ns, test): runtest.stringio = None -def runtest_inner(test, verbose, quiet, +def runtest_inner(ns, test, verbose, quiet, huntrleaks=False, display_failure=True, *, pgo=False): support.unload(test) test_time = 0.0 refleak = False # True if the test leaked references. try:result = runtest_inner(ns, test, verbose, quiet, huntrleaks,[](#l1.17) display_failure=not verbose, pgo=pgo)[](#l1.18) return result[](#l1.19)
if test.startswith('test.'):[](#l1.33)
if test.startswith('test.') or ns.testdir:[](#l1.34) abstest = test[](#l1.35) else:[](#l1.36) # Always import it from the test package[](#l1.37)
--- a/Lib/test/libregrtest/setup.py +++ b/Lib/test/libregrtest/setup.py @@ -29,6 +29,11 @@ def setup_tests(ns): replace_stdout() support.record_original_stdout(sys.stdout)
- if ns.testdir:
# Prepend test directory to sys.path, so runtest() will be able[](#l2.8)
# to locate tests[](#l2.9)
sys.path.insert(0, os.path.abspath(ns.testdir))[](#l2.10)
+ # Some times path and file are not absolute (e.g. while running from # Lib/) and, if we change the CWD to run the tests in a temporary dir, some # imports might fail. This affects only the modules imported before os.chdir().
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -879,6 +879,9 @@ Documentation Tests ----- +- Issue #26295: When using "python3 -m test --testdir=TESTDIR", regrtest