def setup_logbook(**kwargs): import logbook from logbook.ticketing import TicketingHandler from .ticketing import DjangoORMBackend null_handler = logbook.NullHandler() null_handler.push_application() ticketing_handler = TicketingHandler('', backend=DjangoORMBackend, level=logbook.INFO, bubble=True) ticketing_handler.push_application()
def setup_logbook(**kwargs): import logbook from logbook.ticketing import TicketingHandler from .ticketing import DjangoORMBackend null_handler = logbook.NullHandler() null_handler.push_application() ticketing_handler = TicketingHandler( '', backend=DjangoORMBackend, level=logbook.INFO, bubble=True) ticketing_handler.push_application()
def test_basic_ticketing(self): from logbook.ticketing import TicketingHandler handler = TicketingHandler('sqlite:///') handler.push_thread() try: for x in xrange(5): self.log.warn('A warning') self.log.info('An error') if x < 2: try: 1 / 0 except Exception: self.log.exception() finally: handler.pop_thread() self.assertEqual(handler.db.count_tickets(), 3) tickets = handler.db.get_tickets() self.assertEqual(len(tickets), 3) self.assertEqual(tickets[0].level, logbook.INFO) self.assertEqual(tickets[1].level, logbook.WARNING) self.assertEqual(tickets[2].level, logbook.ERROR) self.assertEqual(tickets[0].occurrence_count, 5) self.assertEqual(tickets[1].occurrence_count, 5) self.assertEqual(tickets[2].occurrence_count, 2) self.assertEqual(tickets[0].last_occurrence.level, logbook.INFO) tickets[0].solve() self.assert_(tickets[0].solved) tickets[0].delete() ticket = handler.db.get_ticket(tickets[1].ticket_id) self.assertEqual(ticket, tickets[1]) occurrences = handler.db.get_occurrences(tickets[2].ticket_id, order_by='time') self.assertEqual(len(occurrences), 2) record = occurrences[0] self.assert_(test_file in record.filename) # avoid 2to3 destroying our assertion self.assertEqual(getattr(record, 'func_name'), 'test_basic_ticketing') self.assertEqual(record.level, logbook.ERROR) self.assertEqual(record.thread, thread.get_ident()) self.assertEqual(record.process, os.getpid()) self.assertEqual(record.channel, 'testlogger') self.assert_('1 / 0' in record.formatted_exception)
def test_basic_ticketing(logger): from logbook.ticketing import TicketingHandler from time import sleep with TicketingHandler('sqlite:///') as handler: for x in xrange(5): logger.warn('A warning') sleep(0.2) logger.info('An error') sleep(0.2) if x < 2: try: 1 / 0 except Exception: logger.exception() assert handler.db.count_tickets() == 3 tickets = handler.db.get_tickets() assert len(tickets) == 3 assert tickets[0].level == logbook.INFO assert tickets[1].level == logbook.WARNING assert tickets[2].level == logbook.ERROR assert tickets[0].occurrence_count == 5 assert tickets[1].occurrence_count == 5 assert tickets[2].occurrence_count == 2 assert tickets[0].last_occurrence.level == logbook.INFO tickets[0].solve() assert tickets[0].solved tickets[0].delete() ticket = handler.db.get_ticket(tickets[1].ticket_id) assert ticket == tickets[1] occurrences = handler.db.get_occurrences(tickets[2].ticket_id, order_by='time') assert len(occurrences) == 2 record = occurrences[0] assert __file_without_pyc__ in record.filename # avoid 2to3 destroying our assertion assert getattr(record, 'func_name') == 'test_basic_ticketing' assert record.level == logbook.ERROR assert record.thread == get_ident() assert record.process == os.getpid() assert record.channel == 'testlogger' assert '1 / 0' in record.formatted_exception