(original) (raw)

changeset: 82347:4e2bfe6b227a user: Petri Lehtinen petri@digip.org date: Sat Feb 23 18:52:51 2013 +0100 files: Lib/unittest/main.py Lib/unittest/test/test_program.py Misc/NEWS description: Issue #15132: Allow a list for the defaultTest argument of unittest.TestProgram Patch by Jyrki Pulliainen diff -r 19b3aaf79e45 -r 4e2bfe6b227a Lib/unittest/main.py --- a/Lib/unittest/main.py Sat Feb 23 17:24:44 2013 +0100 +++ b/Lib/unittest/main.py Sat Feb 23 18:52:51 2013 +0100 @@ -164,7 +164,10 @@ # to support python -m unittest ... self.module = None else: - self.testNames = (self.defaultTest,) + if isinstance(self.defaultTest, str): + self.testNames = (self.defaultTest,) + else: + self.testNames = list(self.defaultTest) self.createTests() def createTests(self): diff -r 19b3aaf79e45 -r 4e2bfe6b227a Lib/unittest/test/test_program.py --- a/Lib/unittest/test/test_program.py Sat Feb 23 17:24:44 2013 +0100 +++ b/Lib/unittest/test/test_program.py Sat Feb 23 18:52:51 2013 +0100 @@ -64,6 +64,41 @@ return self.suiteClass( [self.loadTestsFromTestCase(Test_TestProgram.FooBar)]) + def loadTestsFromNames(self, names, module): + return self.suiteClass( + [self.loadTestsFromTestCase(Test_TestProgram.FooBar)]) + + def test_defaultTest_with_string(self): + class FakeRunner(object): + def run(self, test): + self.test = test + return True + + old_argv = sys.argv + sys.argv = ['faketest'] + runner = FakeRunner() + program = unittest.TestProgram(testRunner=runner, exit=False, + defaultTest='unittest.test', + testLoader=self.FooBarLoader()) + sys.argv = old_argv + self.assertEquals(('unittest.test',), program.testNames) + + def test_defaultTest_with_iterable(self): + class FakeRunner(object): + def run(self, test): + self.test = test + return True + + old_argv = sys.argv + sys.argv = ['faketest'] + runner = FakeRunner() + program = unittest.TestProgram( + testRunner=runner, exit=False, + defaultTest=['unittest.test', 'unittest.test2'], + testLoader=self.FooBarLoader()) + sys.argv = old_argv + self.assertEquals(['unittest.test', 'unittest.test2'], + program.testNames) def test_NonExit(self): program = unittest.main(exit=False, diff -r 19b3aaf79e45 -r 4e2bfe6b227a Misc/NEWS --- a/Misc/NEWS Sat Feb 23 17:24:44 2013 +0100 +++ b/Misc/NEWS Sat Feb 23 18:52:51 2013 +0100 @@ -260,6 +260,9 @@ Library ------- +- Issue #15132: Allow a list for the defaultTest argument of + unittest.TestProgram. Patch by Jyrki Pulliainen. + - Issue #17225: JSON decoder now counts columns in the first line starting with 1, as in other lines. /petri@digip.org