threshold-event-detector/tests/test_notifier.py

24 lines
909 B
Python

import unittest
from detector.models import Alert
from detector.notifier import InMemorySender, Notifier
class TestNotifier(unittest.TestCase):
def test_memory_notifier(self):
notifier = Notifier.memory(["email", "webhook"])
alert = Alert(alert_id="a-1", dedup_key="h-1:r-1", aggregate_key="k", severity="critical", status="firing")
delivered = notifier.notify(alert, ["email", "webhook", "dingtalk"])
self.assertEqual(delivered, ["email", "webhook"])
self.assertEqual(len(notifier.sent), 2)
def test_in_memory_sender(self):
sender = InMemorySender("email")
alert = Alert(alert_id="a-2", dedup_key="d", aggregate_key="k", severity="warning", status="firing")
self.assertTrue(sender.send(alert, "ops@example.com"))
self.assertEqual(sender.sent[0]["target"], "ops@example.com")
if __name__ == "__main__":
unittest.main()