summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2009-05-11 17:59:43 (GMT)
committerMichael Foord <fuzzyman@voidspace.org.uk>2009-05-11 17:59:43 (GMT)
commit5d31e057c572602282e66f3987b3d5d343a8f817 (patch)
treee7ec243125eb0df8a536cc6cc5275431c1bd0f32 /Lib
parentb1d45856c255e480c7365e02fc91511c1438ac2a (diff)
downloadcpython-5d31e057c572602282e66f3987b3d5d343a8f817.zip
cpython-5d31e057c572602282e66f3987b3d5d343a8f817.tar.gz
cpython-5d31e057c572602282e66f3987b3d5d343a8f817.tar.bz2
Adds a verbosity keyword argument to unittest.main plus a minor fix allowing you to specify test modules / classes
from the command line. Closes issue 5995. Michael Foord
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_unittest.py23
-rw-r--r--Lib/unittest.py7
2 files changed, 18 insertions, 12 deletions
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index c77cc16..d815a11 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -3280,19 +3280,22 @@ class Test_TestProgram(TestCase):
runner = FakeRunner()
- try:
- oldParseArgs = TestProgram.parseArgs
- TestProgram.parseArgs = lambda *args: None
- TestProgram.test = test
+ oldParseArgs = TestProgram.parseArgs
+ def restoreParseArgs():
+ TestProgram.parseArgs = oldParseArgs
+ TestProgram.parseArgs = lambda *args: None
+ self.addCleanup(restoreParseArgs)
- program = TestProgram(testRunner=runner, exit=False)
+ def removeTest():
+ del TestProgram.test
+ TestProgram.test = test
+ self.addCleanup(removeTest)
- self.assertEqual(program.result, result)
- self.assertEqual(runner.test, test)
+ program = TestProgram(testRunner=runner, exit=False, verbosity=2)
- finally:
- TestProgram.parseArgs = oldParseArgs
- del TestProgram.test
+ self.assertEqual(program.result, result)
+ self.assertEqual(runner.test, test)
+ self.assertEqual(program.verbosity, 2)
class FooBar(unittest.TestCase):
diff --git a/Lib/unittest.py b/Lib/unittest.py
index b2dc320..84520d8 100644
--- a/Lib/unittest.py
+++ b/Lib/unittest.py
@@ -1524,7 +1524,8 @@ Examples:
"""
def __init__(self, module='__main__', defaultTest=None,
argv=None, testRunner=TextTestRunner,
- testLoader=defaultTestLoader, exit=True):
+ testLoader=defaultTestLoader, exit=True,
+ verbosity=1):
if isinstance(module, basestring):
self.module = __import__(module)
for part in module.split('.')[1:]:
@@ -1535,7 +1536,7 @@ Examples:
argv = sys.argv
self.exit = exit
- self.verbosity = 1
+ self.verbosity = verbosity
self.defaultTest = defaultTest
self.testRunner = testRunner
self.testLoader = testLoader
@@ -1566,6 +1567,7 @@ Examples:
return
if len(args) > 0:
self.testNames = args
+ self.module = None
else:
self.testNames = (self.defaultTest,)
self.createTests()
@@ -1598,4 +1600,5 @@ main = TestProgram
##############################################################################
if __name__ == "__main__":
+ sys.modules['unittest'] = sys.modules['__main__']
main(module=None)