diff options
Diffstat (limited to 'Lib/unittest/test/test_program.py')
| -rw-r--r-- | Lib/unittest/test/test_program.py | 26 | 
1 files changed, 22 insertions, 4 deletions
diff --git a/Lib/unittest/test/test_program.py b/Lib/unittest/test/test_program.py index 725d67f..1cfc179 100644 --- a/Lib/unittest/test/test_program.py +++ b/Lib/unittest/test/test_program.py @@ -134,6 +134,7 @@ class InitialisableProgram(unittest.TestProgram):      result = None      verbosity = 1      defaultTest = None +    tb_locals = False      testRunner = None      testLoader = unittest.defaultTestLoader      module = '__main__' @@ -147,18 +148,19 @@ RESULT = object()  class FakeRunner(object):      initArgs = None      test = None -    raiseError = False +    raiseError = 0      def __init__(self, **kwargs):          FakeRunner.initArgs = kwargs          if FakeRunner.raiseError: -            FakeRunner.raiseError = False +            FakeRunner.raiseError -= 1              raise TypeError      def run(self, test):          FakeRunner.test = test          return RESULT +  class TestCommandLineArgs(unittest.TestCase):      def setUp(self): @@ -166,7 +168,7 @@ class TestCommandLineArgs(unittest.TestCase):          self.program.createTests = lambda: None          FakeRunner.initArgs = None          FakeRunner.test = None -        FakeRunner.raiseError = False +        FakeRunner.raiseError = 0      def testVerbosity(self):          program = self.program @@ -256,6 +258,7 @@ class TestCommandLineArgs(unittest.TestCase):          self.assertEqual(FakeRunner.initArgs, {'verbosity': 'verbosity',                                                  'failfast': 'failfast',                                                  'buffer': 'buffer', +                                                'tb_locals': False,                                                  'warnings': 'warnings'})          self.assertEqual(FakeRunner.test, 'test')          self.assertIs(program.result, RESULT) @@ -274,10 +277,25 @@ class TestCommandLineArgs(unittest.TestCase):          self.assertEqual(FakeRunner.test, 'test')          self.assertIs(program.result, RESULT) +    def test_locals(self): +        program = self.program + +        program.testRunner = FakeRunner +        program.parseArgs([None, '--locals']) +        self.assertEqual(True, program.tb_locals) +        program.runTests() +        self.assertEqual(FakeRunner.initArgs, {'buffer': False, +                                               'failfast': False, +                                               'tb_locals': True, +                                               'verbosity': 1, +                                               'warnings': None}) +      def testRunTestsOldRunnerClass(self):          program = self.program -        FakeRunner.raiseError = True +        # Two TypeErrors are needed to fall all the way back to old-style +        # runners - one to fail tb_locals, one to fail buffer etc. +        FakeRunner.raiseError = 2          program.testRunner = FakeRunner          program.verbosity = 'verbosity'          program.failfast = 'failfast'  | 
