def test_update_failure_next_check(self): now = datetime.utcnow() record = RepeatRecord(domain=self.domain, next_check=now) self.assertIsNone(record.last_checked) attempt = record.make_set_next_try_attempt(None) record.add_attempt(attempt) self.assertTrue(record.last_checked > now) self.assertEqual(record.next_check, record.last_checked + MIN_RETRY_WAIT)
def test_success(self): one_minute = timedelta(minutes=1) rec = RepeatRecord( domain=DOMAIN, repeater_id=self.rep.get_id, ) attempt = RepeatRecordAttempt( datetime=datetime.utcnow() - one_minute, success_response='w00t', succeeded=True, ) rec.add_attempt(attempt) self.assertEqual(rec.repeater.last_success_at, attempt.datetime) self.assertEqual(rec.repeater.failure_streak, 0)
def test_failure(self): one_minute = timedelta(minutes=1) rec = RepeatRecord( domain=DOMAIN, repeater_id=self.rep.get_id, ) attempt = RepeatRecordAttempt( datetime=datetime.utcnow() - one_minute, failure_reason='oops', succeeded=False, ) rec.add_attempt(attempt) self.assertIsNone(rec.repeater.last_success_at) self.assertEqual(rec.repeater.failure_streak, 1)