def test_log_err_is_error(self): # An error logged during the test run is recorded as an error in the # tests. class LogAnError(TestCase): def test_something(self): try: 1 / 0 except ZeroDivisionError: f = failure.Failure() log.err(f) test = LogAnError('test_something') runner = self.make_runner(test, store_twisted_logs=False) result = self.make_result() runner.run(result) self.assertThat( result._events, MatchesEvents(('startTest', test), ('addError', test, { 'logged-error': AsText( ContainsAll([ 'Traceback (most recent call last):', 'ZeroDivisionError', ])), }), ('stopTest', test)))
def test_log_in_details(self): # If store_twisted_logs is True, we include the Twisted logs as # details. class LogAnError(TestCase): def test_something(self): log.msg("foo") 1 / 0 test = LogAnError('test_something') runner = self.make_runner(test, store_twisted_logs=True) result = self.make_result() runner.run(result) self.assertThat( result._events, MatchesEvents(('startTest', test), ('addError', test, { 'traceback': Not(Is(None)), 'twisted-log': AsText(EndsWith(' foo\n')), }), ('stopTest', test)))
def test_log_err_flushed_is_success(self): # An error logged during the test run is recorded as an error in the # tests. class LogAnError(TestCase): def test_something(self): try: 1 / 0 except ZeroDivisionError: f = failure.Failure() log.err(f) flush_logged_errors(ZeroDivisionError) test = LogAnError('test_something') runner = self.make_runner(test, store_twisted_logs=False) result = self.make_result() runner.run(result) self.assertThat( result._events, MatchesEvents(('startTest', test), ('addSuccess', test), ('stopTest', test)))