def assert_trigger_counts(self,
                           processor,
                           trigger,
                           alert_triggers=0,
                           resolve_triggers=0):
     assert processor.trigger_alert_counts[trigger.id] == alert_triggers
     assert processor.trigger_resolve_counts[trigger.id] == resolve_triggers
     alert_stats, resolve_stats = get_alert_rule_stats(
         processor.alert_rule, processor.subscription, [trigger])[1:]
     assert alert_stats[trigger.id] == alert_triggers
     assert resolve_stats[trigger.id] == resolve_triggers
    def test(self):
        alert_rule = AlertRule(id=1)
        sub = QuerySubscription(project_id=2)
        triggers = [AlertRuleTrigger(id=3), AlertRuleTrigger(id=4)]
        client = get_redis_client()
        pipeline = client.pipeline()
        timestamp = datetime.now().replace(tzinfo=pytz.utc, microsecond=0)
        pipeline.set("{alert_rule:1:project:2}:last_update", int(to_timestamp(timestamp)))
        pipeline.set("{alert_rule:1:project:2}:resolve_triggered", 20)
        for key, value in [
            ("{alert_rule:1:project:2}:trigger:3:alert_triggered", 1),
            ("{alert_rule:1:project:2}:trigger:4:alert_triggered", 3),
        ]:
            pipeline.set(key, value)
        pipeline.execute()

        last_update, alert_counts, resolve_counts = get_alert_rule_stats(alert_rule, sub, triggers)
        assert last_update == timestamp
        assert alert_counts == {3: 1, 4: 3}
        assert resolve_counts == 20
    def test(self):
        alert_rule = AlertRule(id=1)
        sub = QuerySubscription(project_id=2)
        triggers = [AlertRuleTrigger(id=3), AlertRuleTrigger(id=4)]
        client = get_redis_client()
        pipeline = client.pipeline()
        pipeline.set("{alert_rule:1:project:2}:last_update", 1234)
        for key, value in [
            ("{alert_rule:1:project:2}:trigger:3:alert_triggered", 1),
            ("{alert_rule:1:project:2}:trigger:3:resolve_triggered", 2),
            ("{alert_rule:1:project:2}:trigger:4:alert_triggered", 3),
            ("{alert_rule:1:project:2}:trigger:4:resolve_triggered", 4),
        ]:
            pipeline.set(key, value)
        pipeline.execute()

        last_update, alert_counts, resolve_counts = get_alert_rule_stats(alert_rule, sub, triggers)
        assert last_update == 1234
        assert alert_counts == {3: 1, 4: 3}
        assert resolve_counts == {3: 2, 4: 4}
Пример #4
0
 def assert_trigger_counts(self, processor, alert_triggers=0, resolve_triggers=0):
     assert processor.alert_triggers == alert_triggers
     assert processor.resolve_triggers == resolve_triggers
     assert get_alert_rule_stats(processor.alert_rule)[1:] == (alert_triggers, resolve_triggers)