def test__run_user_returns_result(self):
     case = self.make_case()
     def returns():
         return 1
     run = RunTest(case)
     run.result = ExtendedTestResult()
     self.assertEqual(1, run._run_user(returns))
     self.assertEqual([], run.result._events)
Esempio n. 2
0
 def test__run_user_does_not_catch_keyboard(self):
     case = self.make_case()
     def raises():
         raise KeyboardInterrupt("yo")
     run = RunTest(case, None)
     run.result = ExtendedTestResult()
     self.assertRaises(KeyboardInterrupt, run._run_user, raises)
     self.assertEqual([], run.result._events)
 def test__run_user_does_not_catch_keyboard(self):
     case = self.make_case()
     def raises():
         raise KeyboardInterrupt("yo")
     run = RunTest(case, None)
     run.result = ExtendedTestResult()
     self.assertThat(lambda: run._run_user(raises),
         Raises(MatchesException(KeyboardInterrupt)))
     self.assertEqual([], run.result._events)
 def test__run_user_can_catch_Exception(self):
     case = self.make_case()
     e = Exception('Yo')
     def raises():
         raise e
     log = []
     run = RunTest(case, [(Exception, None)])
     run.result = ExtendedTestResult()
     status = run._run_user(raises)
     self.assertEqual(run.exception_caught, status)
     self.assertEqual([], run.result._events)
     self.assertEqual([], log)
Esempio n. 5
0
 def test__run_user_uncaught_Exception_raised(self):
     case = self.make_case()
     e = KeyError('Yo')
     def raises():
         raise e
     log = []
     def log_exc(self, result, err):
         log.append((result, err))
     run = RunTest(case, [(ValueError, log_exc)])
     run.result = ExtendedTestResult()
     self.assertRaises(KeyError, run._run_user, raises)
     self.assertEqual([], run.result._events)
     self.assertEqual([], log)
Esempio n. 6
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'))
Esempio n. 7
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)
Esempio n. 8
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))
 def test__run_user_calls_onException(self):
     case = self.make_case()
     log = []
     def handler(exc_info):
         log.append("got it")
         self.assertEqual(3, len(exc_info))
         self.assertIsInstance(exc_info[1], KeyError)
         self.assertIs(KeyError, exc_info[0])
     case.addOnException(handler)
     e = KeyError('Yo')
     def raises():
         raise e
     run = RunTest(case, [(KeyError, None)])
     run.result = ExtendedTestResult()
     status = run._run_user(raises)
     self.assertEqual(run.exception_caught, status)
     self.assertEqual([], run.result._events)
     self.assertEqual(["got it"], log)
Esempio n. 10
0
 def test__run_user_uncaught_Exception_from_exception_handler_raised(self):
     case = self.make_case()
     def broken_handler(exc_info):
         # ValueError because thats what we know how to catch - and must
         # not.
         raise ValueError('boo')
     case.addOnException(broken_handler)
     e = KeyError('Yo')
     def raises():
         raise e
     log = []
     def log_exc(self, result, err):
         log.append((result, err))
     run = RunTest(case, [(ValueError, log_exc)])
     run.result = ExtendedTestResult()
     self.assertRaises(ValueError, run._run_user, raises)
     self.assertEqual([], run.result._events)
     self.assertEqual([], log)
Esempio n. 11
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)