from datetime import timedelta as td from django.test import TestCase from django.utils import timezone from hc.api.models import Check class CheckModelTestCase(TestCase): def test_it_handles_new_check(self): check = Check() self.assertEqual(check.going_down_after(), None) self.assertFalse(check.is_down()) def test_it_handles_paused_check(self): check = Check(status="paused") check.last_ping = timezone.now() - td(days=2) self.assertEqual(check.going_down_after(), None) self.assertFalse(check.is_down()) def test_it_handles_up(self): check = Check(status="up") check.last_ping = timezone.now() - td(hours=1) expected_aa = check.last_ping + td(days=1, hours=1) self.assertEqual(check.going_down_after(), expected_aa) self.assertFalse(check.is_down()) def test_it_handles_paused_then_started_check(self): check = Check(status="paused") check.last_start = timezone.now() - td(days=2) expected_aa = check.last_start + td(hours=1) self.assertEqual(check.going_down_after(), expected_aa) self.assertTrue(check.is_down()) def test_it_handles_down(self): check = Check(status="down") check.last_ping = timezone.now() - td(hours=1) self.assertEqual(check.going_down_after(), None) self.assertTrue(check.is_down()) def test_it_handles_down_then_started_check(self): check = Check(status="down") check.last_start = timezone.now() - td(minutes=10) self.assertEqual(check.going_down_after(), None) self.assertTrue(check.is_down())