| --- a/Lib/test/support.py |
| +++ b/Lib/test/support.py |
| @@ -1270,19 +1270,28 @@ def _run_suite(suite): |
| def run_unittest(*classes): |
| """Run tests from unittest.TestCase-derived classes.""" |
| + regexes = run_unittest.regexes |
| + if regexes: |
| + def filter_test(name): |
| + return any(regex.search(name) for regex in regexes) |
| + else: |
| + filter_test = None |
| valid_types = (unittest.TestSuite, unittest.TestCase) |
| suite = unittest.TestSuite() |
| for cls in classes: |
| if isinstance(cls, str): |
| if cls in sys.modules: |
| - suite.addTest(unittest.findTestCases(sys.modules[cls])) |
| + suite.addTest(unittest.findTestCases(sys.modules[cls], filter=filter_test)) |
| else: |
| raise ValueError("str arguments must be keys in sys.modules") |
| elif isinstance(cls, valid_types): |
| suite.addTest(cls) |
| else: |
| - suite.addTest(unittest.makeSuite(cls)) |
| + suite.addTest(unittest.makeSuite(cls, filter=filter_test)) |
| _run_suite(suite) |
| +# List of regex objects used to filter the tests by their function name. |
| +# An empty list means that all tests are used. |
| +run_unittest.regexes = [] |
| #======================================================================= |