From 0815a9f84f5423efe1ca2ee67ff18f3ef76fe1b3 Mon Sep 17 00:00:00 2001 From: Glandos Date: Sat, 15 Jul 2023 15:41:22 +0200 Subject: [PATCH] add test --- ihatemoney/tests/budget_test.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/ihatemoney/tests/budget_test.py b/ihatemoney/tests/budget_test.py index 1b51554a..1131e05a 100644 --- a/ihatemoney/tests/budget_test.py +++ b/ihatemoney/tests/budget_test.py @@ -1665,6 +1665,27 @@ class BudgetTestCase(IhatemoneyTestCase): # No bills, the previous one was not added self.assertIn("No bills", resp.data.decode("utf-8")) + def test_session_projects_migration_to_list(self): + """In https://github.com/spiral-project/ihatemoney/pull/1082, session["projects"] + was migrated from a list to a dict. We need to handle this. + """ + self.post_project("raclette") + self.client.get("/exit") + + with self.client as c: + resp = c.post( + "/authenticate", data={"id": "raclette", "password": "raclette"} + ) + self.assertTrue(session["raclette"]) + # New behavior + self.assertEquals(session["projects"].__class__, dict) + # Now, go back to the past + with c.session_transaction() as sess: + sess["projects"] = [("raclette", "raclette")] + # It should convert entry to dict + c.get("/") + self.assertEquals(session["projects"].__class__, dict) + if __name__ == "__main__": unittest.main()