This commit is contained in:
parent
4d53a46850
commit
415dd12fd9
16 changed files with 843 additions and 379 deletions
|
|
@ -12,6 +12,7 @@ from twitch.models import ChatBadgeSet
|
|||
|
||||
if TYPE_CHECKING:
|
||||
from django.test import Client
|
||||
from django.test.client import _MonkeyPatchedWSGIResponse
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
|
@ -20,25 +21,25 @@ class TestBadgeListView:
|
|||
|
||||
def test_badge_list_empty(self, client: Client) -> None:
|
||||
"""Test badge list view with no badges."""
|
||||
response = client.get(reverse("twitch:badge_list"))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:badge_list"))
|
||||
assert response.status_code == 200
|
||||
assert "No badge sets found" in response.content.decode()
|
||||
|
||||
def test_badge_list_displays_sets(self, client: Client) -> None:
|
||||
"""Test that badge sets are displayed."""
|
||||
badge_set1 = ChatBadgeSet.objects.create(set_id="vip")
|
||||
badge_set2 = ChatBadgeSet.objects.create(set_id="subscriber")
|
||||
badge_set1: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="vip")
|
||||
badge_set2: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="subscriber")
|
||||
|
||||
response = client.get(reverse("twitch:badge_list"))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:badge_list"))
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert badge_set1.set_id in content
|
||||
assert badge_set2.set_id in content
|
||||
|
||||
def test_badge_list_displays_badge_count(self, client: Client) -> None:
|
||||
"""Test that badge version count is displayed."""
|
||||
badge_set = ChatBadgeSet.objects.create(set_id="bits")
|
||||
badge_set: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="bits")
|
||||
ChatBadge.objects.create(
|
||||
badge_set=badge_set,
|
||||
badge_id="1",
|
||||
|
|
@ -58,9 +59,9 @@ class TestBadgeListView:
|
|||
description="100 Bits",
|
||||
)
|
||||
|
||||
response = client.get(reverse("twitch:badge_list"))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:badge_list"))
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
# Should show version count (the template uses "versions" not "version")
|
||||
assert "2" in content
|
||||
|
|
@ -73,13 +74,15 @@ class TestBadgeSetDetailView:
|
|||
|
||||
def test_badge_set_detail_not_found(self, client: Client) -> None:
|
||||
"""Test 404 when badge set doesn't exist."""
|
||||
response = client.get(reverse("twitch:badge_set_detail", kwargs={"set_id": "nonexistent"}))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(
|
||||
reverse("twitch:badge_set_detail", kwargs={"set_id": "nonexistent"}),
|
||||
)
|
||||
assert response.status_code == 404
|
||||
|
||||
def test_badge_set_detail_displays_badges(self, client: Client) -> None:
|
||||
"""Test that badge versions are displayed."""
|
||||
badge_set = ChatBadgeSet.objects.create(set_id="moderator")
|
||||
badge = ChatBadge.objects.create(
|
||||
badge_set: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="moderator")
|
||||
badge: ChatBadge = ChatBadge.objects.create(
|
||||
badge_set=badge_set,
|
||||
badge_id="1",
|
||||
image_url_1x="https://example.com/1x.png",
|
||||
|
|
@ -91,9 +94,11 @@ class TestBadgeSetDetailView:
|
|||
click_url="https://help.twitch.tv",
|
||||
)
|
||||
|
||||
response = client.get(reverse("twitch:badge_set_detail", kwargs={"set_id": "moderator"}))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(
|
||||
reverse("twitch:badge_set_detail", kwargs={"set_id": "moderator"}),
|
||||
)
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert badge.title in content
|
||||
assert badge.description in content
|
||||
|
|
@ -102,7 +107,7 @@ class TestBadgeSetDetailView:
|
|||
|
||||
def test_badge_set_detail_displays_metadata(self, client: Client) -> None:
|
||||
"""Test that badge set metadata is displayed."""
|
||||
badge_set = ChatBadgeSet.objects.create(set_id="vip")
|
||||
badge_set: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="vip")
|
||||
ChatBadge.objects.create(
|
||||
badge_set=badge_set,
|
||||
badge_id="1",
|
||||
|
|
@ -113,16 +118,16 @@ class TestBadgeSetDetailView:
|
|||
description="VIP Badge",
|
||||
)
|
||||
|
||||
response = client.get(reverse("twitch:badge_set_detail", kwargs={"set_id": "vip"}))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:badge_set_detail", kwargs={"set_id": "vip"}))
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert "vip" in content
|
||||
assert "1" in content
|
||||
|
||||
def test_badge_set_detail_json_data(self, client: Client) -> None:
|
||||
"""Test that JSON data is displayed."""
|
||||
badge_set = ChatBadgeSet.objects.create(set_id="test_set")
|
||||
badge_set: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="test_set")
|
||||
ChatBadge.objects.create(
|
||||
badge_set=badge_set,
|
||||
badge_id="1",
|
||||
|
|
@ -133,9 +138,11 @@ class TestBadgeSetDetailView:
|
|||
description="Test Badge",
|
||||
)
|
||||
|
||||
response = client.get(reverse("twitch:badge_set_detail", kwargs={"set_id": "test_set"}))
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(
|
||||
reverse("twitch:badge_set_detail", kwargs={"set_id": "test_set"}),
|
||||
)
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert "test_set" in content
|
||||
|
||||
|
|
@ -149,16 +156,16 @@ class TestBadgeSearch:
|
|||
ChatBadgeSet.objects.create(set_id="vip")
|
||||
ChatBadgeSet.objects.create(set_id="subscriber")
|
||||
|
||||
response = client.get(reverse("twitch:search"), {"q": "vip"})
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:search"), {"q": "vip"})
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert "Badge Sets" in content
|
||||
assert "vip" in content
|
||||
|
||||
def test_search_finds_badges_by_title(self, client: Client) -> None:
|
||||
"""Test that search finds badges by title."""
|
||||
badge_set = ChatBadgeSet.objects.create(set_id="test")
|
||||
badge_set: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="test")
|
||||
ChatBadge.objects.create(
|
||||
badge_set=badge_set,
|
||||
badge_id="1",
|
||||
|
|
@ -169,16 +176,16 @@ class TestBadgeSearch:
|
|||
description="Test description",
|
||||
)
|
||||
|
||||
response = client.get(reverse("twitch:search"), {"q": "Moderator"})
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:search"), {"q": "Moderator"})
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert "Chat Badges" in content
|
||||
assert "Moderator Badge" in content
|
||||
|
||||
def test_search_finds_badges_by_description(self, client: Client) -> None:
|
||||
"""Test that search finds badges by description."""
|
||||
badge_set = ChatBadgeSet.objects.create(set_id="test")
|
||||
badge_set: ChatBadgeSet = ChatBadgeSet.objects.create(set_id="test")
|
||||
ChatBadge.objects.create(
|
||||
badge_set=badge_set,
|
||||
badge_id="1",
|
||||
|
|
@ -189,8 +196,8 @@ class TestBadgeSearch:
|
|||
description="Unique description text",
|
||||
)
|
||||
|
||||
response = client.get(reverse("twitch:search"), {"q": "Unique description"})
|
||||
response: _MonkeyPatchedWSGIResponse = client.get(reverse("twitch:search"), {"q": "Unique description"})
|
||||
assert response.status_code == 200
|
||||
content = response.content.decode()
|
||||
content: str = response.content.decode()
|
||||
|
||||
assert "Chat Badges" in content or "Test Badge" in content
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue