Example #1
0
 def test_not_matching_msg(self):
     rrt = RepeatedRecordTrigger(1, 0, [self.f], lambda: print('ok'))
     record = logging.LogRecord(name='ok',
                                level=logging.ERROR,
                                pathname='',
                                lineno=0,
                                msg='not_ok',
                                args='',
                                exc_info='')
     assert not rrt.is_matching(record)
Example #2
0
    def test_ready_to_fire_ok(self):
        rrt = RepeatedRecordTrigger(3, 10, [self.f], lambda: print('ok'))
        record = logging.LogRecord(name='ok',
                                   level=logging.ERROR,
                                   pathname='',
                                   lineno=0,
                                   msg='not_ok',
                                   args='',
                                   exc_info='')

        assert not rrt.is_ready_to_fire(record)
        assert not rrt.is_ready_to_fire(record)
        assert rrt.is_ready_to_fire(record)
Example #3
0
    def test_received_action(self):
        f = FilterMatch(min_level=logging.WARNING,
                        name='^[a-zA-Z\._]*repeatedRecordTrigger$',
                        msg='^.*$')
        rrt = RepeatedRecordTrigger(times=1,
                                    period_s=0,
                                    filters=[f],
                                    action=lambda: action())
        ch = ChoufHandler(triggers=[rrt])
        logging.root.addHandler(ch)

        assert stack_msg.empty()
        _logger.debug("ok")
        assert stack_msg.empty()

        _logger.info("ok")
        assert stack_msg.empty()

        _logger.warn("ok")
        assert action_name == stack_msg.get()

        _logger.error("ok")
        assert action_name == stack_msg.get()

        _logger.critical("ok")
        assert action_name == stack_msg.get()
        assert stack_msg.empty()
        logging.root.removeHandler(ch)
Example #4
0
    def test_ready_to_fire_discard_old_record(self):
        rrt = RepeatedRecordTrigger(3, 10, [self.f], lambda: print('ok'))
        record = logging.LogRecord(name='ok',
                                   level=logging.ERROR,
                                   pathname='',
                                   lineno=0,
                                   msg='not_ok',
                                   args='',
                                   exc_info='')

        ct = time.time()

        assert not rrt.is_ready_to_fire(record, ct - 15)
        assert not rrt.is_ready_to_fire(record, ct - 14)
        assert not rrt.is_ready_to_fire(record, ct - 1)
        assert not rrt.is_ready_to_fire(record, ct - 0)
        assert rrt.is_ready_to_fire(record, ct + 1)
Example #5
0
    def test_action_come_after_x_records(self):
        f = FilterMatch(min_level=logging.WARNING,
                        name='^[a-zA-Z\._]*repeatedRecordTrigger$',
                        msg='^.*$')
        rrt = RepeatedRecordTrigger(times=4,
                                    period_s=10,
                                    filters=[f],
                                    action=lambda: action(),
                                    key_generator=key_gen)
        ch = ChoufHandler(triggers=[rrt])
        logging.root.addHandler(ch)

        assert stack_msg.empty()
        _logger.warn("ok")
        assert stack_msg.empty()
        _logger.warn("ok")
        assert stack_msg.empty()
        _logger.warn("ok")
        assert stack_msg.empty()
        _logger.warn("ok")
        assert action_name == stack_msg.get(block=False)
        assert stack_msg.empty()
        logging.root.removeHandler(ch)