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