class TestSentryLogObserver(VumiTestCase): def setUp(self): self.client = DummySentryClient() self.obs = SentryLogObserver(self.client, 'test', "worker-1") def test_level_for_event(self): for expected_level, event in [ (logging.WARN, {'logLevel': logging.WARN}), (logging.ERROR, {'isError': 1}), (logging.INFO, {}), ]: self.assertEqual(self.obs.level_for_event(event), expected_level) def test_logger_for_event(self): self.assertEqual(self.obs.logger_for_event({'system': 'foo,bar'}), 'test.foo.bar') self.assertEqual(self.obs.logger_for_event({}), 'test') def test_log_failure(self): e = ValueError("foo error") f = Failure(e) self.obs({'failure': f, 'system': 'foo', 'isError': 1}) self.assertEqual(self.client.exceptions, [ (((type(e), e, None),), {'data': {'level': 40, 'logger': 'test.foo'}, 'tags': {'worker-id': 'worker-1'}}), ]) def test_log_traceback(self): try: raise ValueError("foo") except ValueError: f = Failure(*sys.exc_info()) self.obs({'failure': f, 'isError': 1}) [call_args] = self.client.exceptions exc_info = call_args[0][0] tb = ''.join(traceback.format_exception(*exc_info)) self.assertTrue('raise ValueError("foo")' in tb) def test_log_warning(self): self.obs({'message': ["a"], 'system': 'foo', 'logLevel': logging.WARN}) self.assertEqual(self.client.messages, [ (('a',), {'data': {'level': 30, 'logger': 'test.foo'}, 'tags': {'worker-id': 'worker-1'}}) ]) def test_log_info(self): self.obs({'message': ["a"], 'system': 'test.log'}) self.assertEqual(self.client.messages, []) # should be filtered out
def setUp(self): self.client = DummySentryClient() self.obs = SentryLogObserver(self.client, 'test', "worker-1")
class TestSentryLogObserver(VumiTestCase): def setUp(self): self.client = DummySentryClient() self.obs = SentryLogObserver(self.client, 'test', "worker-1") def test_level_for_event(self): for expected_level, event in [ (logging.WARN, { 'logLevel': logging.WARN }), (logging.ERROR, { 'isError': 1 }), (logging.INFO, {}), ]: self.assertEqual(self.obs.level_for_event(event), expected_level) def test_logger_for_event(self): self.assertEqual(self.obs.logger_for_event({'system': 'foo,bar'}), 'test.foo.bar') self.assertEqual(self.obs.logger_for_event({}), 'test') def test_log_failure(self): e = ValueError("foo error") f = Failure(e) self.obs({'failure': f, 'system': 'foo', 'isError': 1}) self.assertEqual(self.client.exceptions, [ (((type(e), e, None), ), { 'data': { 'level': 40, 'logger': 'test.foo' }, 'tags': { 'worker-id': 'worker-1' } }), ]) def test_log_traceback(self): try: raise ValueError("foo") except ValueError: f = Failure(*sys.exc_info()) self.obs({'failure': f, 'isError': 1}) [call_args] = self.client.exceptions exc_info = call_args[0][0] tb = ''.join(traceback.format_exception(*exc_info)) self.assertTrue('raise ValueError("foo")' in tb) def test_log_warning(self): self.obs({'message': ["a"], 'system': 'foo', 'logLevel': logging.WARN}) self.assertEqual(self.client.messages, [(('a', ), { 'data': { 'level': 30, 'logger': 'test.foo' }, 'tags': { 'worker-id': 'worker-1' } })]) def test_log_info(self): self.obs({'message': ["a"], 'system': 'test.log'}) self.assertEqual(self.client.messages, []) # should be filtered out