From d477b41d9af851cedcb9bc0a67382c038a01062a Mon Sep 17 00:00:00 2001 From: Glandos Date: Sun, 29 Jan 2023 22:58:08 +0100 Subject: [PATCH] add test case --- ihatemoney/tests/budget_test.py | 23 +++++++++++++------ .../tests/common/ihatemoney_testcase.py | 9 ++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ihatemoney/tests/budget_test.py b/ihatemoney/tests/budget_test.py index 8534b00c..a4dcf9e0 100644 --- a/ihatemoney/tests/budget_test.py +++ b/ihatemoney/tests/budget_test.py @@ -926,13 +926,8 @@ class BudgetTestCase(IhatemoneyTestCase): self.assertIn('
', resp.data.decode("utf-8")) # test access to the dashboard when it is activated - self.app.config["ACTIVATE_ADMIN_DASHBOARD"] = True - self.app.config["ADMIN_PASSWORD"] = generate_password_hash("adminpass") - resp = self.client.post( - "/admin?goto=%2Fdashboard", - data={"admin_password": "adminpass"}, - follow_redirects=True, - ) + self.enable_admin() + resp = self.client.get("/dashboard") self.assertIn( """ @@ -941,6 +936,20 @@ class BudgetTestCase(IhatemoneyTestCase): resp.data.decode("utf-8"), ) + def test_dashboard_project_deletion(self): + self.post_project("raclette") + self.enable_admin() + resp = self.client.get("/dashboard") + pattern = re.compile(r"
]*?action=\"(.*?)\"") + match = pattern.search(resp.data.decode("utf-8")) + assert match is not None + assert match.group(1) is not None + + resp = self.client.post(match.group(1)) + + # project removed + assert len(models.Project.query.all()) == 0 + def test_statistics_page(self): self.post_project("raclette") response = self.client.get("/raclette/statistics") diff --git a/ihatemoney/tests/common/ihatemoney_testcase.py b/ihatemoney/tests/common/ihatemoney_testcase.py index 4b11d475..70475374 100644 --- a/ihatemoney/tests/common/ihatemoney_testcase.py +++ b/ihatemoney/tests/common/ihatemoney_testcase.py @@ -110,3 +110,12 @@ class IhatemoneyTestCase(BaseTestCase): resp.status_code, f"{url} expected {expected}, got {resp.status_code}", ) + + def enable_admin(self, password="adminpass"): + self.app.config["ACTIVATE_ADMIN_DASHBOARD"] = True + self.app.config["ADMIN_PASSWORD"] = generate_password_hash(password) + return self.client.post( + "/admin?goto=%2Fdashboard", + data={"admin_password": password}, + follow_redirects=True, + )