48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from django.test import TestCase
|
|
from django.urls import reverse
|
|
|
|
from website.home.models import HomePage
|
|
|
|
from .factories import TalkPageFactory, TalksListPageFactory
|
|
|
|
|
|
class TalkPageTestCase(TestCase):
|
|
@classmethod
|
|
def setUpTestData(cls) -> None:
|
|
cls.home_page = HomePage.objects.get()
|
|
cls.list_page = TalksListPageFactory(parent=cls.home_page)
|
|
cls.page = TalkPageFactory(parent=cls.list_page)
|
|
|
|
def test_accessible(self) -> None:
|
|
response = self.client.get(self.page.url)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_queries(self) -> None:
|
|
with self.assertNumQueries(34):
|
|
self.client.get(self.page.url)
|
|
|
|
|
|
class TalksListPageTestCase(TestCase):
|
|
@classmethod
|
|
def setUpTestData(cls) -> None:
|
|
cls.home_page = HomePage.objects.get()
|
|
cls.page = TalksListPageFactory(parent=cls.home_page)
|
|
|
|
TalkPageFactory(parent=cls.page)
|
|
TalkPageFactory(parent=cls.page)
|
|
|
|
def test_accessible(self) -> None:
|
|
response = self.client.get(self.page.url)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(len(response.context["listing_pages"]), 2)
|
|
|
|
def test_queries(self) -> None:
|
|
with self.assertNumQueries(35):
|
|
self.client.get(self.page.url)
|
|
|
|
def test_feed_accessible(self) -> None:
|
|
response = self.client.get(self.page.url + self.page.reverse_subpage("feed"))
|
|
self.assertRedirects(
|
|
response, reverse("feed"), status_code=301, fetch_redirect_response=True
|
|
)
|