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 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 08:00:32 -04:00
co-authored by Claude Opus 5.5
parent 6a81cf4aac
commit 766eef04c5
2 changed files with 7 additions and 5 deletions
+1 -1
View File
@@ -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():
+6 -4
View File
@@ -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)