diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-06-26 12:18:51 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-26 12:18:51 (GMT) |
commit | ace56d583664f855d89d1219ece7c21c2fddcf30 (patch) | |
tree | 5f1748bb793b80f8d926df75cbe2e60acbd13974 /Lib/test/support | |
parent | 8c78aa70c888a370af18896a72cabd00e4120f09 (diff) | |
download | cpython-ace56d583664f855d89d1219ece7c21c2fddcf30.zip cpython-ace56d583664f855d89d1219ece7c21c2fddcf30.tar.gz cpython-ace56d583664f855d89d1219ece7c21c2fddcf30.tar.bz2 |
bpo-30523: regrtest --list-cases --match (#2401)
* regrtest --list-cases now supports --match and --match-file options.
Example: ./python -m test --list-cases -m FileTests test_os
* --list-cases now also sets support.verbose to False to prevent
messages to stdout when loading test modules.
* Add support._match_test() private function.
Diffstat (limited to 'Lib/test/support')
-rw-r--r-- | Lib/test/support/__init__.py | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 0a3d4d9..817ba67 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -1905,6 +1905,23 @@ def _run_suite(suite): raise TestFailed(err) +def _match_test(test): + global match_tests + + if match_tests is None: + return True + test_id = test.id() + + for match_test in match_tests: + if fnmatch.fnmatchcase(test_id, match_test): + return True + + for name in test_id.split("."): + if fnmatch.fnmatchcase(name, match_test): + return True + return False + + def run_unittest(*classes): """Run tests from unittest.TestCase-derived classes.""" valid_types = (unittest.TestSuite, unittest.TestCase) @@ -1919,20 +1936,7 @@ def run_unittest(*classes): suite.addTest(cls) else: suite.addTest(unittest.makeSuite(cls)) - def case_pred(test): - if match_tests is None: - return True - test_id = test.id() - - for match_test in match_tests: - if fnmatch.fnmatchcase(test_id, match_test): - return True - - for name in test_id.split("."): - if fnmatch.fnmatchcase(name, match_test): - return True - return False - _filter_suite(suite, case_pred) + _filter_suite(suite, _match_test) _run_suite(suite) #======================================================================= |