Skip to content

Commit

Permalink
Migrate existing sessions after conversion to dict (#1194)
Browse files Browse the repository at this point in the history
Migrate existing session after #1082

fix #1188
  • Loading branch information
Glandos committed Jul 22, 2023
1 parent b150c7a commit 23d912b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
20 changes: 20 additions & 0 deletions ihatemoney/tests/budget_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -1665,6 +1665,26 @@ def test_amount_too_high(self):
# 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:
c.post("/authenticate", data={"id": "raclette", "password": "raclette"})
self.assertTrue(session["raclette"])
# New behavior
self.assertIsInstance(session["projects"], 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.assertIsInstance(session["projects"], dict)
self.assertIn("raclette", session["projects"])


if __name__ == "__main__":
unittest.main()
7 changes: 7 additions & 0 deletions ihatemoney/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,13 @@ def add_project_id(endpoint, values):
values["project_id"] = g.project.id


@main.url_value_preprocessor
def migrate_session(endpoint, values):
if "projects" in session and isinstance(session["projects"], list):
# Migrate https://github.com/spiral-project/ihatemoney/pull/1082
session["projects"] = {id: name for (id, name) in session["projects"]}


@main.url_value_preprocessor
def set_show_admin_dashboard_link(endpoint, values):
"""Sets the "show_admin_dashboard_link" variable application wide
Expand Down

0 comments on commit 23d912b

Please sign in to comment.