From 766eef04c55975a2650d4219ffdce0f615f8ff94 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 8 Oct 2026 08:00:32 -0400 Subject: [PATCH] test: the user model and session refresh carry time_zone (milestone 490) Run 8736: test_user_model_fields listed the columns without time_zone, and the session-refresh fixture's users had no time_zone attribute. The refresh test now also asserts a zone set on the Account page reaches the session. Co-Authored-By: Claude Opus 5.5 --- tests/test_models.py | 2 +- tests/test_sessions.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/test_models.py b/tests/test_models.py index 24a727c..9ffa967 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -5,7 +5,7 @@ def test_user_model_fields(): """User model has all required fields.""" cols = {c.key for c in User.__table__.columns} assert cols == {"id", "username", "email", "password_hash", "role", "created_at", "is_active", - "auth_source", "external_id"} + "auth_source", "external_id", "time_zone"} def test_user_role_enum(): diff --git a/tests/test_sessions.py b/tests/test_sessions.py index 5c2bcf9..db8d4ff 100644 --- a/tests/test_sessions.py +++ b/tests/test_sessions.py @@ -100,10 +100,11 @@ class _DB: @pytest.mark.parametrize("user,login_age_s,keeps,role", [ - (SimpleNamespace(is_active=True, role=UserRole.viewer), 60, True, "viewer"), # demoted - (SimpleNamespace(is_active=False, role=UserRole.admin), 60, False, None), # deactivated - (None, 60, False, None), # deleted - (SimpleNamespace(is_active=True, role=UserRole.admin), 9 * 3600, False, None), # expired + # demoted, and a time zone set on the Account page since (milestone 490) + (SimpleNamespace(is_active=True, role=UserRole.viewer, time_zone="Europe/London"), 60, True, "viewer"), + (SimpleNamespace(is_active=False, role=UserRole.admin, time_zone=None), 60, False, None), # deactivated + (None, 60, False, None), # deleted + (SimpleNamespace(is_active=True, role=UserRole.admin, time_zone=None), 9 * 3600, False, None), # expired ]) async def test_session_speaks_for_the_user_as_they_are(app, user, login_age_s, keeps, role): app.db_sessionmaker = lambda: _DB(user) @@ -114,3 +115,4 @@ async def test_session_speaks_for_the_user_as_they_are(app, user, login_age_s, k await refresh_session_user() assert ("user_id" in session) is keeps assert session.get("user_role") == role + assert session.get("tz") == (user.time_zone if keeps else None)