from hc.test import BaseTestCase
|
|
from hc.api.models import Check
|
|
|
|
|
|
class BadgesTestCase(BaseTestCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
|
|
self.url = "/projects/%s/badges/" % self.project.code
|
|
|
|
def test_it_shows_badges(self):
|
|
Check.objects.create(project=self.project, tags="foo a-B_1 baz@")
|
|
Check.objects.create(project=self.bobs_project, tags="bobs-tag")
|
|
|
|
self.client.login(username="[email protected]", password="password")
|
|
r = self.client.get(self.url)
|
|
self.assertContains(r, "foo.svg")
|
|
self.assertContains(r, "a-B_1.svg")
|
|
|
|
# Expect badge URLs only for tags that match \w+
|
|
self.assertNotContains(r, "[email protected]")
|
|
|
|
# Expect only Alice's tags
|
|
self.assertNotContains(r, "bobs-tag.svg")
|
|
|
|
def test_it_uses_badge_key(self):
|
|
Check.objects.create(project=self.project, tags="foo bar")
|
|
Check.objects.create(project=self.bobs_project, tags="bobs-tag")
|
|
|
|
self.project.badge_key = "alices-badge-key"
|
|
self.project.save()
|
|
|
|
self.client.login(username="[email protected]", password="password")
|
|
r = self.client.get(self.url)
|
|
self.assertContains(r, "badge/alices-badge-key/")
|
|
self.assertContains(r, "badge/alices-badge-key/")
|
|
|
|
def test_it_handles_special_characers_in_tags(self):
|
|
Check.objects.create(project=self.project, tags="db@dc1")
|
|
|
|
self.client.login(username="[email protected]", password="password")
|
|
r = self.client.get(self.url)
|
|
self.assertContains(r, "db%2540dc1.svg")
|