aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2021-04-10 13:49:12 +0300
committerGravatar ks129 <[email protected]>2021-05-03 20:19:50 +0300
commitdcff50f75c121a1683f8be245a3267107abdbdb7 (patch)
tree610d60063b93d676f7250e6c2077ec7a1d6c1029 /pydis_site
parentInclude redirect app URLs to home app URLs (diff)
Add dynamic tests for redirections
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/redirect/tests.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/pydis_site/apps/redirect/tests.py b/pydis_site/apps/redirect/tests.py
new file mode 100644
index 00000000..6d670a82
--- /dev/null
+++ b/pydis_site/apps/redirect/tests.py
@@ -0,0 +1,20 @@
+from django.conf import settings
+from django.test import TestCase
+from django.urls import reverse
+
+
+class RedirectTests(TestCase):
+ def test_redirects(self):
+ """
+ Should redirect to given route based on redirect rules.
+
+ Makes sure that every redirect:
+ 1. Redirects only once.
+ 2. Redirects to right URL.
+ """
+ for original_path, (redirect_route, name, args) in settings.REDIRECTIONS.items():
+ with self.subTest(original_path=original_path, redirect_route=redirect_route, name=name, args=args):
+ resp = self.client.get(reverse(f"home:redirect:{name}", args=args), follow=True)
+
+ self.assertEqual(1, len(resp.redirect_chain))
+ self.assertRedirects(resp, reverse(f"home:{redirect_route}", args=args))