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)
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)
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)
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)
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)