Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2005447

Browse files
committed
Issue #15132: Allow a list for the defaultTest argument of unittest.TestProgram
Patch by Jyrki Pulliainen
1 parent d784e53 commit 2005447

3 files changed

Lines changed: 42 additions & 1 deletion

File tree

Lib/unittest/main.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,10 @@ def parseArgs(self, argv):
164164
# to support python -m unittest ...
165165
self.module = None
166166
else:
167-
self.testNames = (self.defaultTest,)
167+
if isinstance(self.defaultTest, str):
168+
self.testNames = (self.defaultTest,)
169+
else:
170+
self.testNames = list(self.defaultTest)
168171
self.createTests()
169172

170173
def createTests(self):

Lib/unittest/test/test_program.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,41 @@ def loadTestsFromModule(self, module):
6464
return self.suiteClass(
6565
[self.loadTestsFromTestCase(Test_TestProgram.FooBar)])
6666

67+
def loadTestsFromNames(self, names, module):
68+
return self.suiteClass(
69+
[self.loadTestsFromTestCase(Test_TestProgram.FooBar)])
70+
71+
def test_defaultTest_with_string(self):
72+
class FakeRunner(object):
73+
def run(self, test):
74+
self.test = test
75+
return True
76+
77+
old_argv = sys.argv
78+
sys.argv = ['faketest']
79+
runner = FakeRunner()
80+
program = unittest.TestProgram(testRunner=runner, exit=False,
81+
defaultTest='unittest.test',
82+
testLoader=self.FooBarLoader())
83+
sys.argv = old_argv
84+
self.assertEquals(('unittest.test',), program.testNames)
85+
86+
def test_defaultTest_with_iterable(self):
87+
class FakeRunner(object):
88+
def run(self, test):
89+
self.test = test
90+
return True
91+
92+
old_argv = sys.argv
93+
sys.argv = ['faketest']
94+
runner = FakeRunner()
95+
program = unittest.TestProgram(
96+
testRunner=runner, exit=False,
97+
defaultTest=['unittest.test', 'unittest.test2'],
98+
testLoader=self.FooBarLoader())
99+
sys.argv = old_argv
100+
self.assertEquals(['unittest.test', 'unittest.test2'],
101+
program.testNames)
67102

68103
def test_NonExit(self):
69104
program = unittest.main(exit=False,

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,9 @@ Core and Builtins
260260
Library
261261
-------
262262

263+
- Issue #15132: Allow a list for the defaultTest argument of
264+
unittest.TestProgram. Patch by Jyrki Pulliainen.
265+
263266
- Issue #17225: JSON decoder now counts columns in the first line starting
264267
with 1, as in other lines.
265268

0 commit comments

Comments
 (0)