Issue #15132: Allow a list for the defaultTest argument of unittest.TestProgram

Patch by Jyrki Pulliainen
This commit is contained in:
Petri Lehtinen 2013-02-23 18:52:51 +01:00
parent d784e53d96
commit 20054477f4
3 changed files with 42 additions and 1 deletions

View File

@ -164,7 +164,10 @@ def parseArgs(self, argv):
# 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):

View File

@ -64,6 +64,41 @@ def loadTestsFromModule(self, module):
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,

View File

@ -260,6 +260,9 @@ Core and Builtins
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.