Skip to content

Commit 821b75f

Browse files
committed
Fix tests
1 parent df41258 commit 821b75f

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

tests/test_user_login_tracking.py

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,20 +461,33 @@ def test_user_with_null_email_verified_not_deleted(self, app, legacy_env):
461461
institution="Test",
462462
)
463463
user.created_at = old_date
464-
# Simulate edge case with NULL email_verified
465-
user.email_verified = None
466464
user.last_login_at = None
467465
db.session.add(user)
468466
db.session.commit()
469467
user_id = user.id
470468

469+
# Force NULL email_verified using raw SQL since SQLAlchemy __init__ sets False
470+
from sqlalchemy import text
471+
472+
db.session.execute(
473+
text('UPDATE "user" SET email_verified = NULL WHERE id = :uid'),
474+
{"uid": str(user_id)},
475+
)
476+
db.session.commit()
477+
478+
# Verify it's actually NULL
479+
db.session.expire_all()
480+
user = User.query.get(user_id)
481+
assert user.email_verified is None, f"Expected None but got {user.email_verified}"
482+
471483
# Run unverified cleanup task (checks for email_verified=False)
472484
from gefapi.tasks.user_cleanup import cleanup_unverified_users
473485

474486
with patch.object(cleanup_unverified_users, "retry"):
475487
cleanup_unverified_users()
476488

477489
# User should still exist (email_verified is NULL, not False)
490+
db.session.expire_all()
478491
assert User.query.get(user_id) is not None
479492

480493
# Clean up
@@ -625,6 +638,9 @@ def test_inactive_tokens_are_revoked(self, app):
625638
with patch.object(cleanup_inactive_refresh_tokens, "retry"):
626639
result = cleanup_inactive_refresh_tokens()
627640

641+
# Expire session to see fresh data from database
642+
db.session.expire_all()
643+
628644
# Token should be revoked
629645
token = RefreshToken.query.get(token_id)
630646
assert token.is_revoked is True
@@ -676,6 +692,9 @@ def test_recently_used_tokens_not_revoked(self, app):
676692
with patch.object(cleanup_inactive_refresh_tokens, "retry"):
677693
cleanup_inactive_refresh_tokens()
678694

695+
# Expire session to see fresh data from database
696+
db.session.expire_all()
697+
679698
# Token should NOT be revoked
680699
token = RefreshToken.query.get(token_id)
681700
assert token.is_revoked is False
@@ -726,6 +745,9 @@ def test_null_last_used_tokens_not_revoked(self, app):
726745
with patch.object(cleanup_inactive_refresh_tokens, "retry"):
727746
cleanup_inactive_refresh_tokens()
728747

748+
# Expire session to see fresh data from database
749+
db.session.expire_all()
750+
729751
# Token should NOT be revoked (NULL last_used_at = legacy)
730752
token = RefreshToken.query.get(token_id)
731753
assert token.is_revoked is False

0 commit comments

Comments
 (0)