|
|
- from datetime import timedelta
-
- from django.utils import timezone
- from hc.api.management.commands.sendalerts import Command
- from hc.api.models import Check
- from hc.test import BaseTestCase
- from mock import patch
-
-
- class SendAlertsTestCase(BaseTestCase):
-
- @patch("hc.api.management.commands.sendalerts.Command.handle_one")
- def test_it_handles_few(self, mock):
- yesterday = timezone.now() - timedelta(days=1)
- names = ["Check %d" % d for d in range(0, 10)]
-
- for name in names:
- check = Check(user=self.alice, name=name)
- check.alert_after = yesterday
- check.status = "up"
- check.save()
-
- result = Command().handle_many()
- assert result, "handle_many should return True"
-
- handled_names = []
- for args, kwargs in mock.call_args_list:
- handled_names.append(args[0].name)
-
- assert set(names) == set(handled_names)
-
- def test_it_handles_grace_period(self):
- check = Check(user=self.alice, status="up")
- # 1 day 30 minutes after ping the check is in grace period:
- check.last_ping = timezone.now() - timedelta(days=1, minutes=30)
- check.save()
-
- # Expect no exceptions--
- Command().handle_one(check)
|