Index: Lib/unittest.py =================================================================== --- Lib/unittest.py (revision 73150) +++ Lib/unittest.py (working copy) @@ -1640,9 +1640,11 @@ """ USAGE = USAGE def __init__(self, module='__main__', defaultTest=None, - argv=None, testRunner=TextTestRunner, + argv=None, testRunner=None, testLoader=defaultTestLoader, exit=True, verbosity=1): + if testRunner is None: + testRunner = TextTestRunner if isinstance(module, basestring): self.module = __import__(module) for part in module.split('.')[1:]: Index: Lib/test/test_unittest.py =================================================================== --- Lib/test/test_unittest.py (revision 73150) +++ Lib/test/test_unittest.py (working copy) @@ -3325,6 +3325,14 @@ self.assertEqual(program.verbosity, 2) + def testTestProgram_testRunnerArgument(self): + program = object.__new__(TestProgram) + program.parseArgs = lambda _: None + program.runTests = lambda: None + program.__init__(testRunner=None) + self.assertEqual(program.testRunner, unittest.TextTestRunner) + + class FooBar(unittest.TestCase): def testPass(self): assert True