mirror of
https://github.com/simple-login/app.git
synced 2025-09-05 22:24:43 +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 = []
|
event_list = []
|
||||||
LOG.i("Sending alias create events for user {user}")
|
LOG.i("Sending alias create events for user {user}")
|
||||||
for alias in (
|
for alias in (
|
||||||
Alias.yield_per_query(chunk_size)
|
Alias.filter_by(user_id=user.id)
|
||||||
.filter_by(user_id=user.id)
|
.enable_eagerloads(False)
|
||||||
|
.yield_per(chunk_size)
|
||||||
.order_by(Alias.id.asc())
|
.order_by(Alias.id.asc())
|
||||||
):
|
):
|
||||||
event_list.append(
|
event_list.append(
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import arrow
|
import arrow
|
||||||
from sqlalchemy import and_
|
from sqlalchemy import and_
|
||||||
|
|
||||||
|
from app.alias_delete import perform_alias_deletion
|
||||||
from app.db import Session
|
from app.db import Session
|
||||||
from app.log import LOG
|
from app.log import LOG
|
||||||
from app.models import Alias
|
from app.models import Alias
|
||||||
from app.alias_delete import perform_alias_deletion
|
|
||||||
|
|
||||||
|
|
||||||
def cleanup_alias(oldest_allowed: arrow.Arrow):
|
def cleanup_alias(oldest_allowed: arrow.Arrow):
|
||||||
|
@ -13,6 +13,7 @@ def cleanup_alias(oldest_allowed: arrow.Arrow):
|
||||||
Alias.filter(
|
Alias.filter(
|
||||||
and_(Alias.delete_on.isnot(None), Alias.delete_on <= oldest_allowed)
|
and_(Alias.delete_on.isnot(None), Alias.delete_on <= oldest_allowed)
|
||||||
)
|
)
|
||||||
|
.enable_eagerloads(False)
|
||||||
.yield_per(500)
|
.yield_per(500)
|
||||||
.all()
|
.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