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
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 @@
 
         runner = FakeRunner()
 
-        try:
-            oldParseArgs = TestProgram.parseArgs
-            TestProgram.parseArgs = lambda *args: None
-            TestProgram.test = test
-
-            program = TestProgram(testRunner=runner, exit=False)
-
-            self.assertEqual(program.result, result)
-            self.assertEqual(runner.test, test)
-
-        finally:
+        oldParseArgs = TestProgram.parseArgs
+        def restoreParseArgs():
             TestProgram.parseArgs = oldParseArgs
+        TestProgram.parseArgs = lambda *args: None
+        self.addCleanup(restoreParseArgs)
+
+        def removeTest():
             del TestProgram.test
+        TestProgram.test = test
+        self.addCleanup(removeTest)
+
+        program = TestProgram(testRunner=runner, exit=False, verbosity=2)
+
+        self.assertEqual(program.result, result)
+        self.assertEqual(runner.test, test)
+        self.assertEqual(program.verbosity, 2)
 
 
     class FooBar(unittest.TestCase):