mirror of
https://github.com/simple-login/app.git
synced 2025-09-04 05:35:18 +08:00
Added missing eager loading
This commit is contained in:
parent
8be7ef3aa8
commit
794bb28990
3 changed files with 38 additions and 3 deletions
|
@ -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(
|
||||
|
|
|
@ -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()
|
||||
):
|
||||
|
|
33
tests/tasks/test_cleanup_alias.py
Normal file
33
tests/tasks/test_cleanup_alias.py
Normal 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
|
Loading…
Add table
Reference in a new issue