diff options
author | 2021-04-16 16:36:28 +0300 | |
---|---|---|
committer | 2021-05-03 20:19:50 +0300 | |
commit | 1046fc5823e81672fec8ed55c0a974ea95837f0a (patch) | |
tree | 105adf437f17c73124376df1fcd966ee37857554 /pydis_site/apps | |
parent | Add code jam pages redirects (diff) |
Migrate redirections from settings.py -> redirects.yaml
Diffstat (limited to 'pydis_site/apps')
-rw-r--r-- | pydis_site/apps/redirect/redirects.yaml | 53 | ||||
-rw-r--r-- | pydis_site/apps/redirect/tests.py | 13 | ||||
-rw-r--r-- | pydis_site/apps/redirect/urls.py | 9 |
3 files changed, 65 insertions, 10 deletions
diff --git a/pydis_site/apps/redirect/redirects.yaml b/pydis_site/apps/redirect/redirects.yaml new file mode 100644 index 00000000..546e24ae --- /dev/null +++ b/pydis_site/apps/redirect/redirects.yaml @@ -0,0 +1,53 @@ +# Resources +resources_index_redirect: + original_path: pages/resources/ + redirect_route: "resources:index" + +resources_resources_redirect: + original_path: pages/resources/<str:category>/ + redirect_route: "resources:resources" + +# Events +events_index_redirect: + original_path: pages/events/ + redirect_route: "events:index" + +events_code_jams_index_redirect: + original_path: pages/code-jams/ + redirect_route: "events:page" + redirect_arguments: ["code-jams"] + +events_code_jams_one_redirect: + original_path: pages/code-jams/code-jam-1-snakes-bot/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/1"] + +events_code_jams_two_redirect: + original_path: pages/code-jams/code-jam-2/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/2"] + +events_code_jams_three_redirect: + original_path: pages/code-jams/code-jam-3/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/3"] + +events_code_jams_four_redirect: + original_path: pages/code-jams/code-jam-4/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/4"] + +events_code_jams_five_redirect: + original_path: pages/code-jams/code-jam-5/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/5"] + +events_code_jams_six_redirect: + original_path: pages/code-jams/code-jam-6/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/6"] + +events_code_jams_seven_redirect: + original_path: pages/code-jams/code-jam-7/ + redirect_route: "events:page" + redirect_arguments: ["code-jams/7"] diff --git a/pydis_site/apps/redirect/tests.py b/pydis_site/apps/redirect/tests.py index a4bab933..ac60d1c8 100644 --- a/pydis_site/apps/redirect/tests.py +++ b/pydis_site/apps/redirect/tests.py @@ -1,3 +1,4 @@ +import yaml from django.conf import settings from django.test import TestCase from django.urls import reverse @@ -16,12 +17,12 @@ class RedirectTests(TestCase): 1. Redirects only once. 2. Redirects to right URL. """ - for original_path, (redirect_route, name, static_args) in settings.REDIRECTIONS.items(): + for name, data in yaml.safe_load(settings.REDIRECTIONS_PATH.read_text()).items(): with self.subTest( - original_path=original_path, - redirect_route=redirect_route, + original_path=data["original_path"], + redirect_route=data["redirect_route"], name=name, - static_args=static_args, + redirect_arguments=tuple(data.get("redirect_arguments", ())), args=TESTING_ARGUMENTS.get(name, ()) ): resp = self.client.get( @@ -36,8 +37,8 @@ class RedirectTests(TestCase): self.assertRedirects( resp, reverse( - f"home:{redirect_route}", - args=TESTING_ARGUMENTS.get(name, ()) + static_args + f"home:{data['redirect_route']}", + args=TESTING_ARGUMENTS.get(name, ()) + tuple(data.get("redirect_arguments", ())) ), status_code=301 ) diff --git a/pydis_site/apps/redirect/urls.py b/pydis_site/apps/redirect/urls.py index 747c6bf4..d94a1ab7 100644 --- a/pydis_site/apps/redirect/urls.py +++ b/pydis_site/apps/redirect/urls.py @@ -1,3 +1,4 @@ +import yaml from django.conf import settings from django.urls import path @@ -6,12 +7,12 @@ from pydis_site.apps.redirect.views import CustomRedirectView app_name = "redirect" urlpatterns = [ path( - original, + data["original_path"], CustomRedirectView.as_view( - pattern_name=redirect_route, - static_args=params + pattern_name=data["redirect_route"], + static_args=tuple(data.get("redirect_arguments", ())) ), name=name ) - for original, (redirect_route, name, params) in settings.REDIRECTIONS.items() + for name, data in yaml.safe_load(settings.REDIRECTIONS_PATH.read_text()).items() ] |