Added missing eager loading

This commit is contained in:
Adrià Casajús 2025-07-22 18:48:39 +02:00 committed by Adrià Casajús
parent 8be7ef3aa8
commit 794bb28990
3 changed files with 38 additions and 3 deletions

View file

@ -16,8 +16,9 @@ def send_alias_creation_events_for_user(
event_list = []
LOG.i("Sending alias create events for user {user}")
for alias in (
Alias.yield_per_query(chunk_size)
.filter_by(user_id=user.id)
Alias.filter_by(user_id=user.id)
.enable_eagerloads(False)
.yield_per(chunk_size)
.order_by(Alias.id.asc())
):
event_list.append(

View file

@ -1,10 +1,10 @@
import arrow
from sqlalchemy import and_
from app.alias_delete import perform_alias_deletion
from app.db import Session
from app.log import LOG
from app.models import Alias
from app.alias_delete import perform_alias_deletion
def cleanup_alias(oldest_allowed: arrow.Arrow):
@ -13,6 +13,7 @@ def cleanup_alias(oldest_allowed: arrow.Arrow):
Alias.filter(
and_(Alias.delete_on.isnot(None), Alias.delete_on <= oldest_allowed)
)
.enable_eagerloads(False)
.yield_per(500)
.all()
):

View file

@ -0,0 +1,33 @@
import arrow
from app.models import Job, Alias
from tasks.cleanup_alias import cleanup_alias
from tests.utils import create_new_user, random_email
def test_cleanup_Alias():
Job.filter().delete()
user = create_new_user()
now = arrow.utcnow()
alias_expired = Alias.create(
user_id=user.id,
email=random_email(),
mailbox_id=user.default_mailbox_id,
delete_on=now.shift(minutes=-1),
).id
alias_not_expired = Alias.create(
user_id=user.id,
email=random_email(),
mailbox_id=user.default_mailbox_id,
delete_on=now.shift(minutes=1),
).id
alias_not_pending = Alias.create(
user_id=user.id,
email=random_email(),
mailbox_id=user.default_mailbox_id,
).id
cleanup_alias(now)
assert Alias.get(alias_not_expired) is not None
assert Alias.get(alias_not_pending) is not None
assert Alias.get(alias_expired) is None