From: Victor Stinner Date: Tue, 3 Jan 2017 00:38:58 +0000 (+0100) Subject: Issue #29035: Simplify a regex in libregrtest X-Git-Tag: v3.7.0a1~1636 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e8cfec5abc8a9401543aa4af5b20ae7afec89198;p=python Issue #29035: Simplify a regex in libregrtest regrtest: simplify the regex used to match test names for the --fromfile command line option. --- diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py index e113ed63dd..61a9876370 100644 --- a/Lib/test/libregrtest/main.py +++ b/Lib/test/libregrtest/main.py @@ -179,17 +179,14 @@ class Regrtest: self.tests = [] # regex to match 'test_builtin' in line: # '0:00:00 [ 4/400] test_builtin -- test_dict took 1 sec' - regex = (r'(?:[0-9]+:[0-9]+:[0-9]+ *)?' - r'(?:\[[0-9/ ]+\] *)?' - r'(test_[a-zA-Z0-9_]+)\b(?:\.py)?') - regex = re.compile(regex) + regex = re.compile(r'\btest_[a-zA-Z0-9_]+\b') with open(os.path.join(support.SAVEDCWD, self.ns.fromfile)) as fp: for line in fp: line = line.split('#', 1)[0] line = line.strip() match = regex.search(line) if match is not None: - self.tests.append(match.group(1)) + self.tests.append(match.group()) removepy(self.tests) diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py index 751df1537d..6d70e4d8f0 100644 --- a/Lib/test/test_regrtest.py +++ b/Lib/test/test_regrtest.py @@ -676,6 +676,14 @@ class ArgsTestCase(BaseTestCase): output = self.run_tests('--fromfile', filename) self.check_executed_tests(output, tests) + # test format 'Lib/test/test_opcodes.py' + with open(filename, "w") as fp: + for name in tests: + print('Lib/test/%s.py' % name, file=fp) + + output = self.run_tests('--fromfile', filename) + self.check_executed_tests(output, tests) + def test_interrupted(self): code = TEST_INTERRUPTED test = self.create_test('sigint', code=code)