feat: pagination for videos and icon separating
This commit is contained in:
@@ -80,6 +80,17 @@ class CustomPageVideoSectionTest(TestCase):
|
||||
|
||||
|
||||
class PageVideoTest(TestCase):
|
||||
def _create_page_videos(self, page, count):
|
||||
for index in range(count):
|
||||
PageVideo.objects.create(
|
||||
page=page,
|
||||
title=f"Video {index + 1}",
|
||||
video_source="youtube",
|
||||
video_url="https://youtu.be/dQw4w9WgXcQ",
|
||||
order=index,
|
||||
is_active=True,
|
||||
)
|
||||
|
||||
def test_contact_page_video(self):
|
||||
PageVideo.objects.create(
|
||||
page=PageVideo.PAGE_CONTACT,
|
||||
@@ -103,6 +114,44 @@ class PageVideoTest(TestCase):
|
||||
response = self.client.get(reverse("pages:faq"))
|
||||
self.assertContains(response, "Tutorial")
|
||||
|
||||
def test_page_shows_three_video_preview_and_archive_link(self):
|
||||
self._create_page_videos(PageVideo.PAGE_FAQ, 8)
|
||||
|
||||
response = self.client.get(reverse("pages:faq"))
|
||||
|
||||
self.assertEqual(response.content.count(b"youtube-nocookie.com/embed"), 3)
|
||||
self.assertContains(
|
||||
response,
|
||||
reverse(
|
||||
"pages:video_archive",
|
||||
kwargs={"library": PageVideo.PAGE_FAQ},
|
||||
),
|
||||
)
|
||||
self.assertContains(response, "More videos")
|
||||
|
||||
def test_page_video_archive_is_paginated(self):
|
||||
self._create_page_videos(PageVideo.PAGE_FAQ, 8)
|
||||
archive_url = reverse(
|
||||
"pages:video_archive",
|
||||
kwargs={"library": PageVideo.PAGE_FAQ},
|
||||
)
|
||||
|
||||
first_page = self.client.get(archive_url)
|
||||
second_page = self.client.get(archive_url, {"page": 2})
|
||||
|
||||
self.assertEqual(first_page.status_code, 200)
|
||||
self.assertEqual(first_page.content.count(b"youtube-nocookie.com/embed"), 6)
|
||||
self.assertContains(first_page, "Page 1 of 2")
|
||||
self.assertContains(first_page, "?page=2")
|
||||
self.assertEqual(second_page.content.count(b"youtube-nocookie.com/embed"), 2)
|
||||
self.assertContains(second_page, "Page 2 of 2")
|
||||
|
||||
def test_unknown_page_video_archive_returns_404(self):
|
||||
response = self.client.get(
|
||||
reverse("pages:video_archive", kwargs={"library": "unknown"})
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
|
||||
class ProductVideoTest(TestCase):
|
||||
def setUp(self):
|
||||
@@ -129,6 +178,30 @@ class ProductVideoTest(TestCase):
|
||||
self.assertContains(response, "Product Demo")
|
||||
self.assertContains(response, "video-block--full")
|
||||
|
||||
def test_product_video_preview_links_to_paginated_archive(self):
|
||||
for index in range(7):
|
||||
ProductVideo.objects.create(
|
||||
main_product=self.main_product,
|
||||
title=f"Product video {index + 1}",
|
||||
video_source="youtube",
|
||||
video_url="https://youtu.be/dQw4w9WgXcQ",
|
||||
order=index,
|
||||
is_active=True,
|
||||
)
|
||||
archive_url = reverse(
|
||||
"products:main_product_videos",
|
||||
kwargs={"main_slug": self.main_product.slug},
|
||||
)
|
||||
|
||||
detail_response = self.client.get(self.main_product.get_absolute_url())
|
||||
archive_response = self.client.get(archive_url)
|
||||
second_page = self.client.get(archive_url, {"page": 2})
|
||||
|
||||
self.assertEqual(detail_response.content.count(b"youtube-nocookie.com/embed"), 3)
|
||||
self.assertContains(detail_response, archive_url)
|
||||
self.assertEqual(archive_response.content.count(b"youtube-nocookie.com/embed"), 6)
|
||||
self.assertEqual(second_page.content.count(b"youtube-nocookie.com/embed"), 1)
|
||||
|
||||
|
||||
class VideoStyledBackgroundTest(TestCase):
|
||||
def test_styled_background_renders_panel(self):
|
||||
|
||||
Reference in New Issue
Block a user