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.
This commit is contained in:
Victor Stinner 2016-03-30 02:32:52 +02:00
parent 7f24a98a9a
commit 9759dd3343
3 changed files with 12 additions and 4 deletions

View File

@ -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

View File

@ -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().

View File

@ -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.