TKO/services/backend/tko/tests/test_gallery.py
2025-03-28 18:36:20 +01:00

65 lines
1.8 KiB
Python

import datetime
import pytest
from rest_framework.test import APIClient
from django.urls import reverse
from tko.tests.factories import GalleryFactory, ArticleFactory
# Create your tests here.
@pytest.mark.django_db(transaction=True)
class TestGallery:
url = reverse("load-gallery")
client = APIClient()
@staticmethod
def create_images(old, new):
for _ in range(new):
article = ArticleFactory(active_to=None)
for _ in range(new): GalleryFactory(article=article)
for _ in range(old):
article = ArticleFactory()
for _ in range(old): GalleryFactory(article=article)
@pytest.mark.parametrize(
("gallery", "length", "result"),
[
((2, 5), 29, 200),
((2, 1), 5, 200),
((4, 2), 20, 200),
((3, 1), 10, 200),
]
)
def test_load_gallery(self, gallery, length, result):
self.create_images(*gallery)
response = self.client.get(self.url)
assert response.status_code == result
assert len(response.data) == length
@pytest.mark.parametrize(
("gallery", "length", "result"),
[
((2, 5), 5, 200),
((2, 1), 1, 200),
((4, 0), 0, 200),
((3, 1), 1, 200),
]
)
def test_load_article_images(self, gallery, length, result):
old, new = gallery
self.create_images(*gallery)
response = self.client.get(reverse("load-articles"))
for article in response.data:
assert len(article["images"]) == new
assert response.status_code == result
def test_str_article_image(self):
title = "Test_article"
assert str(
GalleryFactory(article=ArticleFactory(title=title))
) == f"Image for {title}, {datetime.date.today()}"