Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
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