1
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
website-2020-spike/website/common/tests.py

42 lines
1.5 KiB
Python

from bs4 import BeautifulSoup
from django.test import SimpleTestCase
from django.urls import reverse
class BaseTestCase(SimpleTestCase):
pass
class HomepageViewTestCase(BaseTestCase):
def test_accessible(self):
response = self.client.get(reverse("homepage"))
self.assertEqual(response.status_code, 200)
def test_contains_view_name(self):
response = self.client.get(reverse("homepage"))
self.assertContains(response, '<body class="homepageview">')
def test_navbar_links_accessible(self):
response = self.client.get(reverse("homepage"))
soup = BeautifulSoup(response.content, features="html.parser")
nav_links = list(soup.find("nav").find_all("a", class_="nav-link"))
self.assertEqual(len(nav_links), 2)
for nav_link in nav_links:
nav_link_response = self.client.head(nav_link.attrs["href"])
self.assertEqual(nav_link_response.status_code, 200)
def test_navbar_link_text(self):
response = self.client.get(reverse("homepage"))
soup = BeautifulSoup(response.content, features="html.parser")
nav_links = list(soup.find("nav").find_all("a", class_="nav-link"))
self.assertEqual(
{nav_link.find("code").text for nav_link in nav_links},
{"~/about", "~/blog"},
)
class AboutViewTestCase(BaseTestCase):
def test_accessible(self):
response = self.client.get(reverse("about"))
self.assertEqual(response.status_code, 200)