Example #1
0
 def test__run_prepared_result_does_not_mask_keyboard(self):
     class Case(TestCase):
         def test(self):
             raise KeyboardInterrupt("go")
     case = Case('test')
     run = RunTest(case)
     run.result = ExtendedTestResult()
     self.assertThat(lambda: run._run_prepared_result(run.result),
         Raises(MatchesException(KeyboardInterrupt)))
     self.assertEqual(
         [('startTest', case), ('stopTest', case)], run.result._events)
     # tearDown is still run though!
     self.assertEqual(True, getattr(case, '_TestCase__teardown_called'))
Example #2
0
 def test__run_prepared_result_uncaught_Exception_raised(self):
     e = KeyError('Yo')
     class Case(TestCase):
         def test(self):
             raise e
     case = Case('test')
     log = []
     def log_exc(self, result, err):
         log.append((result, err))
     run = RunTest(case, [(ValueError, log_exc)])
     run.result = ExtendedTestResult()
     self.assertThat(lambda: run._run_prepared_result(run.result),
         Raises(MatchesException(KeyError)))
     self.assertEqual(
         [('startTest', case), ('stopTest', case)], run.result._events)
     self.assertEqual([], log)
Example #3
0
 def test__run_prepared_result_does_not_mask_keyboard(self):
     tearDownRuns = []
     class Case(TestCase):
         def test(self):
             raise KeyboardInterrupt("go")
         def _run_teardown(self, result):
             tearDownRuns.append(self)
             return super(Case, self)._run_teardown(result)
     case = Case('test')
     run = RunTest(case)
     run.result = ExtendedTestResult()
     self.assertThat(lambda: run._run_prepared_result(run.result),
         Raises(MatchesException(KeyboardInterrupt)))
     self.assertEqual(
         [('startTest', case), ('stopTest', case)], run.result._events)
     # tearDown is still run though!
     self.assertThat(tearDownRuns, HasLength(1))
Example #4
0
 def test__run_prepared_result_uncaught_Exception_triggers_error(self):
     # https://bugs.launchpad.net/testtools/+bug/1364188
     # When something isn't handled, the test that was
     # executing has errored, one way or another.
     e = SystemExit(0)
     class Case(TestCase):
         def test(self):
             raise e
     case = Case('test')
     log = []
     def log_exc(self, result, err):
         log.append((result, err))
     run = RunTest(case, [], log_exc)
     run.result = ExtendedTestResult()
     self.assertThat(lambda: run._run_prepared_result(run.result),
         Raises(MatchesException(SystemExit)))
     self.assertEqual(
         [('startTest', case), ('stopTest', case)], run.result._events)
     self.assertEqual([(run.result, e)], log)