You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

82 lines
2.6 KiB

from hc.api.models import Check
from hc.test import BaseTestCase
from datetime import timedelta as td
from django.utils import timezone
class MyChecksTestCase(BaseTestCase):
def setUp(self):
super(MyChecksTestCase, self).setUp()
self.check = Check(user=self.alice, name="Alice Was Here")
self.check.save()
def test_it_works(self):
for email in ("[email protected]", "[email protected]"):
self.client.login(username=email, password="password")
r = self.client.get("/checks/")
self.assertContains(r, "Alice Was Here", status_code=200)
def test_it_shows_green_check(self):
self.check.last_ping = timezone.now()
self.check.status = "up"
self.check.save()
self.client.login(username="[email protected]", password="password")
r = self.client.get("/checks/")
# Desktop
self.assertContains(r, "icon-up")
# Mobile
self.assertContains(r, "label-up")
def test_it_shows_red_check(self):
self.check.last_ping = timezone.now() - td(days=3)
self.check.status = "up"
self.check.save()
self.client.login(username="[email protected]", password="password")
r = self.client.get("/checks/")
# Desktop
self.assertContains(r, "icon-down")
# Mobile
self.assertContains(r, "label-down")
def test_it_shows_amber_check(self):
self.check.last_ping = timezone.now() - td(days=1, minutes=30)
self.check.status = "up"
self.check.save()
self.client.login(username="[email protected]", password="password")
r = self.client.get("/checks/")
# Desktop
self.assertContains(r, "icon-grace")
# Mobile
self.assertContains(r, "label-grace")
def test_it_hides_add_check_button(self):
self.profile.check_limit = 0
self.profile.save()
self.client.login(username="[email protected]", password="password")
r = self.client.get("/checks/")
self.assertContains(r, "Check limit reached", status_code=200)
def test_it_saves_sort_field(self):
self.client.login(username="[email protected]", password="password")
self.client.get("/checks/?sort=name")
self.profile.refresh_from_db()
self.assertEqual(self.profile.sort, "name")
def test_it_ignores_bad_sort_value(self):
self.client.login(username="[email protected]", password="password")
self.client.get("/checks/?sort=invalid")
self.profile.refresh_from_db()
self.assertEqual(self.profile.sort, "created")