This commit is contained in:
parent
867ddf7676
commit
ef00b4c020
6 changed files with 48 additions and 18 deletions
|
|
@ -692,7 +692,7 @@ class OrganizationRSSFeed(TTVDropsBaseFeed):
|
|||
feed_type = BrowserFriendlyRss201rev2Feed
|
||||
|
||||
title: str = "TTVDrops Twitch Organizations"
|
||||
link: str = "/organizations/"
|
||||
link: str = "/twitch/organizations/"
|
||||
description: str = "Latest organizations on TTVDrops"
|
||||
|
||||
_limit: int | None = None
|
||||
|
|
@ -921,7 +921,7 @@ class DropCampaignFeed(TTVDropsBaseFeed):
|
|||
"""RSS feed for latest drop campaigns."""
|
||||
|
||||
title: str = "Twitch Drop Campaigns"
|
||||
link: str = "/campaigns/"
|
||||
link: str = "/"
|
||||
description: str = "Latest Twitch drop campaigns on TTVDrops"
|
||||
item_guid_is_permalink = True
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from django.db import migrations
|
|||
from django.db import models
|
||||
|
||||
|
||||
def migrate_operation_name_to_list(apps, schema_editor) -> None: # noqa: ANN001, ARG001
|
||||
def migrate_operation_name_to_list(apps, schema_editor) -> None: # noqa: ANN001
|
||||
"""Convert operation_name string values to operation_names list."""
|
||||
DropCampaign = apps.get_model("twitch", "DropCampaign")
|
||||
for campaign in DropCampaign.objects.all():
|
||||
|
|
@ -14,7 +14,7 @@ def migrate_operation_name_to_list(apps, schema_editor) -> None: # noqa: ANN001
|
|||
campaign.save(update_fields=["operation_names"])
|
||||
|
||||
|
||||
def reverse_operation_names_to_string(apps, schema_editor) -> None: # noqa: ARG001, ANN001
|
||||
def reverse_operation_names_to_string(apps, schema_editor) -> None: # noqa: ANN001
|
||||
"""Convert operation_names list back to operation_name string (first item only)."""
|
||||
DropCampaign = apps.get_model("twitch", "DropCampaign")
|
||||
for campaign in DropCampaign.objects.all():
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from django.db import migrations
|
||||
|
||||
|
||||
def mark_all_drops_fully_imported(apps, schema_editor) -> None: # noqa: ANN001, ARG001
|
||||
def mark_all_drops_fully_imported(apps, schema_editor) -> None: # noqa: ANN001
|
||||
"""Marks all existing DropCampaigns as fully imported.
|
||||
|
||||
This was needed to ensure that the Twitch API view only returns campaigns that are ready for display.
|
||||
|
|
|
|||
|
|
@ -1410,3 +1410,33 @@ class DiscordFeedTestCase(TestCase):
|
|||
f"Expected Discord timestamp format <t:UNIX_TIMESTAMP:R> in content, got: {content}"
|
||||
)
|
||||
assert "()" not in content
|
||||
|
||||
def test_feed_links_return_200(self) -> None:
|
||||
"""Test that all links in the feeds return 200 OK."""
|
||||
feed_urls: list[str] = [
|
||||
reverse("core:organization_feed"),
|
||||
reverse("core:game_feed"),
|
||||
reverse("core:organization_feed_atom"),
|
||||
]
|
||||
|
||||
for feed_url in feed_urls:
|
||||
response: _MonkeyPatchedWSGIResponse = self.client.get(feed_url)
|
||||
assert response.status_code == 200, f"Feed {feed_url} did not return 200."
|
||||
|
||||
# Extract all links from the feed content
|
||||
content: str = response.content.decode("utf-8")
|
||||
links: list[str] = re.findall(r'href=["\'](https?://.*?)["\']', content)
|
||||
|
||||
for link in links:
|
||||
skip_links: list[str] = [
|
||||
"rss_styles.xslt",
|
||||
"twitch.tv",
|
||||
]
|
||||
|
||||
if any(skip in link for skip in skip_links):
|
||||
# Skip testing rss_styles.xslt, external Twitch links, and internal links that may not exist in test environment
|
||||
continue
|
||||
link_response: _MonkeyPatchedWSGIResponse = self.client.get(link)
|
||||
|
||||
msg: str = f"Link {link} in feed {feed_url} did not return 200, got {link_response.status_code}."
|
||||
assert link_response.status_code == 200, msg
|
||||
|
|
|
|||
|
|
@ -1883,7 +1883,7 @@ def export_campaigns_json(request: HttpRequest) -> HttpResponse:
|
|||
return response
|
||||
|
||||
|
||||
def export_games_csv(request: HttpRequest) -> HttpResponse: # noqa: ARG001 # noqa: ARG001
|
||||
def export_games_csv(request: HttpRequest) -> HttpResponse:
|
||||
"""Export games to CSV format.
|
||||
|
||||
Args:
|
||||
|
|
@ -1923,7 +1923,7 @@ def export_games_csv(request: HttpRequest) -> HttpResponse: # noqa: ARG001 # n
|
|||
return response
|
||||
|
||||
|
||||
def export_games_json(request: HttpRequest) -> HttpResponse: # noqa: ARG001 # noqa: ARG001
|
||||
def export_games_json(request: HttpRequest) -> HttpResponse:
|
||||
"""Export games to JSON format.
|
||||
|
||||
Args:
|
||||
|
|
@ -1958,7 +1958,7 @@ def export_games_json(request: HttpRequest) -> HttpResponse: # noqa: ARG001 #
|
|||
return response
|
||||
|
||||
|
||||
def export_organizations_csv(request: HttpRequest) -> HttpResponse: # noqa: ARG001
|
||||
def export_organizations_csv(request: HttpRequest) -> HttpResponse:
|
||||
"""Export organizations to CSV format.
|
||||
|
||||
Args:
|
||||
|
|
@ -1987,7 +1987,7 @@ def export_organizations_csv(request: HttpRequest) -> HttpResponse: # noqa: ARG
|
|||
return response
|
||||
|
||||
|
||||
def export_organizations_json(request: HttpRequest) -> HttpResponse: # noqa: ARG001
|
||||
def export_organizations_json(request: HttpRequest) -> HttpResponse:
|
||||
"""Export organizations to JSON format.
|
||||
|
||||
Args:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue