Check.in_grace_period() looks at last_ping_was_fail flag.

This commit is contained in:
Pēteris Caune 2018-05-31 11:55:29 +03:00
parent 5f908a01e4
commit dfcf7aafbe
No known key found for this signature in database
GPG Key ID: E28D7679E9A9EDE2
2 changed files with 13 additions and 0 deletions

View File

@ -146,6 +146,9 @@ class Check(models.Model):
if self.status in ("new", "paused"):
return False
if self.last_ping_was_fail:
return False
grace_start = self.get_grace_start()
grace_end = grace_start + self.grace
return grace_start < timezone.now() < grace_end

View File

@ -20,6 +20,16 @@ class CheckModelTestCase(TestCase):
check = Check()
self.assertFalse(check.in_grace_period())
def test_in_grace_period_handles_fail_ping(self):
check = Check()
check.status = "up"
check.last_ping = timezone.now() - timedelta(days=1, minutes=30)
check.last_ping_was_fail = True
# If last ping was signalling a failure, we're not in grace period,
# we're down
self.assertFalse(check.in_grace_period())
def test_status_works_with_grace_period(self):
check = Check()
check.status = "up"