def test_logger(self): client = TempStoreClient(include_paths=['tests', 'raven']) handler = SentryHandler(client) logger = self.logger with handler.applicationbound(): logger.error('This is a test error') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['logger'], __name__) self.assertEquals(event['level'], 'error') self.assertEquals(event['message'], 'This is a test error') self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test error') self.assertEquals(msg['params'], ()) logger.warning('This is a test warning') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['logger'], __name__) self.assertEquals(event['level'], 'warning') self.assertEquals(event['message'], 'This is a test warning') self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test warning') self.assertEquals(msg['params'], ()) logger.info('This is a test info with a url', extra=dict(url='http://example.com', )) self.assertEquals(len(client.events), 1) event = client.events.pop(0) if six.PY3: expected = "'http://example.com'" else: expected = "u'http://example.com'" self.assertEquals(event['extra']['url'], expected) self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test info with a url') self.assertEquals(msg['params'], ()) try: raise ValueError('This is a test ValueError') except ValueError: logger.info('This is a test info with an exception', exc_info=True) self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['message'], 'This is a test info with an exception') self.assertTrue('sentry.interfaces.Exception' in event) exc = event['sentry.interfaces.Exception'] self.assertEquals(exc['type'], 'ValueError') self.assertEquals(exc['value'], 'This is a test ValueError') self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test info with an exception') self.assertEquals(msg['params'], ()) # test args logger.info('This is a test of {0}', 'args') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['message'], 'This is a test of args') self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test of {0}') expected = ("'args'", ) if six.PY3 else ("u'args'", ) self.assertEquals(msg['params'], expected)
def test_logger(self): client = TempStoreClient(include_paths=['tests', 'raven']) handler = SentryHandler(client) logger = self.logger with handler.applicationbound(): logger.error('This is a test error') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['logger'], __name__) self.assertEquals(event['level'], 'error') self.assertEquals(event['message'], 'This is a test error') self.assertFalse('exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test error') self.assertEquals(msg['params'], ()) logger.warning('This is a test warning') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['logger'], __name__) self.assertEquals(event['level'], 'warning') self.assertEquals(event['message'], 'This is a test warning') self.assertFalse('exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test warning') self.assertEquals(msg['params'], ()) logger.info('This is a test info with a url', extra=dict( url='http://example.com', )) self.assertEquals(len(client.events), 1) event = client.events.pop(0) if six.PY3: expected = "'http://example.com'" else: expected = "u'http://example.com'" self.assertEquals(event['extra']['url'], expected) self.assertFalse('exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test info with a url') self.assertEquals(msg['params'], ()) try: raise ValueError('This is a test ValueError') except ValueError: logger.info('This is a test info with an exception', exc_info=True) self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['message'], 'This is a test info with an exception') assert 'exception' in event exc = event['exception']['values'][-1] self.assertEquals(exc['type'], 'ValueError') self.assertEquals(exc['value'], 'This is a test ValueError') self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test info with an exception') self.assertEquals(msg['params'], ()) # test args logger.info('This is a test of {0}', 'args') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['message'], 'This is a test of args') assert 'exception' not in event self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test of {0}') expected = ("'args'",) if six.PY3 else ("u'args'",) self.assertEquals(msg['params'], expected)
def test_logger(self): client = TempStoreClient(include_paths=['tests', 'raven']) handler = SentryHandler(client) logger = self.logger with handler.applicationbound(): logger.error('This is a test error') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['logger'], __name__) self.assertEquals(event['level'], logbook.ERROR) self.assertEquals(event['message'], 'This is a test error') self.assertFalse('sentry.interfaces.Stacktrace' in event) self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test error') self.assertEquals(msg['params'], ()) logger.warning('This is a test warning') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['logger'], __name__) self.assertEquals(event['level'], logbook.WARNING) self.assertEquals(event['message'], 'This is a test warning') self.assertFalse('sentry.interfaces.Stacktrace' in event) self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test warning') self.assertEquals(msg['params'], ()) logger.info('This is a test info with a url', extra=dict( url='http://example.com', )) self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['extra']['url'], 'http://example.com') self.assertFalse('sentry.interfaces.Stacktrace' in event) self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test info with a url') self.assertEquals(msg['params'], ()) try: raise ValueError('This is a test ValueError') except ValueError: logger.info('This is a test info with an exception', exc_info=True) self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['message'], 'This is a test info with an exception') self.assertTrue('sentry.interfaces.Stacktrace' in event) self.assertTrue('sentry.interfaces.Exception' in event) exc = event['sentry.interfaces.Exception'] self.assertEquals(exc['type'], 'ValueError') self.assertEquals(exc['value'], 'This is a test ValueError') self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test info with an exception') self.assertEquals(msg['params'], ()) # test args logger.info('This is a test of %s', 'args') self.assertEquals(len(client.events), 1) event = client.events.pop(0) self.assertEquals(event['message'], 'This is a test of args') self.assertFalse('sentry.interfaces.Stacktrace' in event) self.assertFalse('sentry.interfaces.Exception' in event) self.assertTrue('sentry.interfaces.Message' in event) msg = event['sentry.interfaces.Message'] self.assertEquals(msg['message'], 'This is a test of %s') self.assertEquals(msg['params'], ('args',))
chain: Signature = signature("tasks.fetch", kwargs={"url": url}) chain |= signature("tasks.analyze", kwargs={"url": url}) try: task: AsyncResult = chain() except OperationalError: log.critical("Cannot connect to broker: {0}".format( configs[environment].broker_url)) return json(Protocol(500, "Something went wrong. Sorry :(")._asdict()) return json(Protocol(200, task.task_id)._asdict()) def main() -> None: # pragma: no cover """Run the application. :return: None """ import asyncio from multiprocessing import cpu_count import uvloop asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) workers: int = cpu_count() app.run(host="0.0.0.0", port=configs[environment].PORT, workers=workers, debug=configs[environment].DEBUG) if __name__ == '__main__': handler = SentryHandler(client=configs[environment].sentry_client) with handler.applicationbound(): main()