From 9759dd334325f341318ff5f2ef25409a5e44dc98 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 30 Mar 2016 02:32:52 +0200 Subject: Issue #26295: When using "python3 -m test --testdir=TESTDIR", regrtest doesn't add "test." prefix to test module names. regrtest also prepends testdir to sys.path. --- Lib/test/libregrtest/runtest.py | 8 ++++---- Lib/test/libregrtest/setup.py | 5 +++++ Misc/NEWS | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Lib/test/libregrtest/runtest.py b/Lib/test/libregrtest/runtest.py index daff476..601f2b2 100644 --- 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, + result = runtest_inner(ns, test, verbose, quiet, huntrleaks, display_failure=False, pgo=pgo) if result[0] == FAILED: output = stream.getvalue() @@ -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, + result = runtest_inner(ns, test, verbose, quiet, huntrleaks, display_failure=not verbose, pgo=pgo) return result 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: - if test.startswith('test.'): + if test.startswith('test.') or ns.testdir: abstest = test else: # Always import it from the test package diff --git a/Lib/test/libregrtest/setup.py b/Lib/test/libregrtest/setup.py index de52bb5..1d24531 100644 --- 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 + # to locate tests + sys.path.insert(0, os.path.abspath(ns.testdir)) + # 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(). diff --git a/Misc/NEWS b/Misc/NEWS index 73c355d..34ef0cd 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -879,6 +879,9 @@ Documentation Tests ----- +- Issue #26295: When using "python3 -m test --testdir=TESTDIR", regrtest + doesn't add "test." prefix to test module names. + - Issue #26523: The multiprocessing thread pool (multiprocessing.dummy.Pool) was untested. -- cgit v0.12