From 26db4d009470f5d26504e156fb74de23385d3ebd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?=
 <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de>
Date: Sun, 1 Jan 2023 16:11:54 +0100
Subject: [PATCH] Implement minor improvement for testing framework & add two
 more tests

---
 AKModel/tests.py | 13 ++++++++++---
 AKPlan/tests.py  |  8 ++++++++
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/AKModel/tests.py b/AKModel/tests.py
index 65bd48bc..5fb99ca6 100644
--- a/AKModel/tests.py
+++ b/AKModel/tests.py
@@ -1,3 +1,4 @@
+import traceback
 from typing import List
 
 from django.contrib.auth.models import User
@@ -59,8 +60,11 @@ class BasicViewTests:
     def test_views_for_200(self):
         for view_name in self.VIEWS:
             view_name_with_prefix, url = self._name_and_url(view_name)
-            response = self.client.get(url)
-            self.assertEqual(response.status_code, 200, msg=f"{view_name_with_prefix} ({url}) broken")
+            try:
+                response = self.client.get(url)
+                self.assertEqual(response.status_code, 200, msg=f"{view_name_with_prefix} ({url}) broken")
+            except Exception as e:
+                self.fail(f"An error occurred during rendering of {view_name_with_prefix} ({url}):\n\n{traceback.format_exc()}")
 
     def test_access_control_staff_only(self):
         self.client.logout()
@@ -94,9 +98,12 @@ class ModelViewTests(BasicViewTests, TestCase):
         (DefaultSlot, 'defaultslot')
     ]
 
+    VIEWS_STAFF_ONLY = [
+        ('admin:index', {})
+    ]
+
     def test_admin(self):
         self.client.force_login(self.admin_user)
-
         for model in self.ADMIN_MODELS:
             if model[1] == "event":
                 continue
diff --git a/AKPlan/tests.py b/AKPlan/tests.py
index 13f671c6..e19157c0 100644
--- a/AKPlan/tests.py
+++ b/AKPlan/tests.py
@@ -26,3 +26,11 @@ class PlanViewTests(BasicViewTests, TestCase):
         response = self.client.get(url)
         self.assertNotContains(response, "Plan is not visible (yet).",
                                msg_prefix="Plan is not visible for staff user")
+
+    def test_wall_redirect(self):
+        view_name_with_prefix, url_wall = self._name_and_url(('plan_wall', {'event_slug': 'kif23'}))
+        view_name_with_prefix, url_plan = self._name_and_url(('plan_overview', {'event_slug': 'kif23'}))
+
+        response = self.client.get(url_wall)
+        self.assertRedirects(response, url_plan,
+                             msg_prefix=f"Redirect away from wall not working ({url_wall} -> {url_plan})")
-- 
GitLab