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:
@@ -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():
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user