(original) (raw)
changeset: 100794:f7ddd72b70ea user: Victor Stinner victor.stinner@gmail.com date: Wed Mar 30 02:32:52 2016 +0200 files: Lib/test/libregrtest/runtest.py Lib/test/libregrtest/setup.py Misc/NEWS description: 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. diff -r 9428e12d4370 -r f7ddd72b70ea Lib/test/libregrtest/runtest.py --- a/Lib/test/libregrtest/runtest.py Wed Mar 30 02:20:34 2016 +0200 +++ b/Lib/test/libregrtest/runtest.py Wed Mar 30 02:32:52 2016 +0200 @@ -116,7 +116,7 @@ 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 @@ 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 @@ 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 -r 9428e12d4370 -r f7ddd72b70ea Lib/test/libregrtest/setup.py --- a/Lib/test/libregrtest/setup.py Wed Mar 30 02:20:34 2016 +0200 +++ b/Lib/test/libregrtest/setup.py Wed Mar 30 02:32:52 2016 +0200 @@ -29,6 +29,11 @@ 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 -r 9428e12d4370 -r f7ddd72b70ea Misc/NEWS --- a/Misc/NEWS Wed Mar 30 02:20:34 2016 +0200 +++ b/Misc/NEWS Wed Mar 30 02:32:52 2016 +0200 @@ -879,6 +879,9 @@ 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. /victor.stinner@gmail.com