fill up EmailLog.alias_id when creating new EmailLog

This commit is contained in:
Son Nguyen Kim 2021-07-11 12:28:23 +02:00
parent 0b063cb409
commit f97b18e60a
5 changed files with 74 additions and 14 deletions

View File

@ -519,7 +519,11 @@ def handle_forward(envelope, msg: Message, rcpt_to: str) -> List[Tuple[bool, str
if not alias.enabled:
LOG.d("%s is disabled, do not forward", alias)
EmailLog.create(
contact_id=contact.id, user_id=contact.user_id, blocked=True, commit=True
contact_id=contact.id,
user_id=contact.user_id,
blocked=True,
alias_id=contact.alias_id,
commit=True,
)
db.session.commit()
# do not return 5** to allow user to receive emails later when alias is enabled
@ -601,7 +605,11 @@ def forward_email_to_mailbox(
return False, status.E405
email_log = EmailLog.create(
contact_id=contact.id, user_id=user.id, mailbox_id=mailbox.id, commit=True
contact_id=contact.id,
user_id=user.id,
mailbox_id=mailbox.id,
alias_id=contact.alias_id,
commit=True,
)
LOG.d("Create %s for %s, %s, %s", email_log, contact, user, mailbox)
@ -828,6 +836,7 @@ def handle_reply(envelope, msg: Message, rcpt_to: str) -> (bool, str):
email_log = EmailLog.create(
contact_id=contact.id,
alias_id=contact.alias_id,
is_reply=True,
user_id=contact.user_id,
mailbox_id=mailbox.id,

View File

@ -259,6 +259,7 @@ def fake_data():
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
refused_email_id=refused_email.id,
bounced=True,
commit=True,
@ -331,7 +332,7 @@ def fake_data():
# )
# db.session.commit()
# for _ in range(3):
# EmailLog.create(user_id=user.id, contact_id=contact.id)
# EmailLog.create(user_id=user.id, contact_id=contact.id, alias_id=contact.alias_id)
# db.session.commit()
# have some disabled alias

View File

@ -155,7 +155,11 @@ def test_get_aliases_v2(flask_client):
reply_email="re0@SL",
)
db.session.commit()
EmailLog.create(contact_id=c0.id, user_id=user.id)
EmailLog.create(
contact_id=c0.id,
user_id=user.id,
alias_id=contact.alias_id,
)
db.session.commit()
# a1 has more recent activity
@ -166,7 +170,11 @@ def test_get_aliases_v2(flask_client):
reply_email="re1@SL",
)
db.session.commit()
EmailLog.create(contact_id=c1.id, user_id=user.id)
EmailLog.create(
contact_id=c1.id,
user_id=user.id,
alias_id=contact.alias_id,
)
db.session.commit()
# get aliases v2
@ -254,10 +262,20 @@ def test_alias_activities(flask_client):
db.session.commit()
for _ in range(int(PAGE_LIMIT / 2)):
EmailLog.create(contact_id=contact.id, is_reply=True, user_id=contact.user_id)
EmailLog.create(
contact_id=contact.id,
is_reply=True,
user_id=contact.user_id,
alias_id=contact.alias_id,
)
for _ in range(int(PAGE_LIMIT / 2) + 2):
EmailLog.create(contact_id=contact.id, blocked=True, user_id=contact.user_id)
EmailLog.create(
contact_id=contact.id,
blocked=True,
user_id=contact.user_id,
alias_id=contact.alias_id,
)
r = flask_client.get(
url_for("api.get_alias_activities", alias_id=alias.id, page_id=0),
@ -469,7 +487,12 @@ def test_alias_contacts(flask_client):
)
db.session.commit()
EmailLog.create(contact_id=contact.id, is_reply=True, user_id=contact.user_id)
EmailLog.create(
contact_id=contact.id,
is_reply=True,
user_id=contact.user_id,
alias_id=contact.alias_id,
)
db.session.commit()
r = flask_client.get(

View File

@ -32,7 +32,11 @@ def test_rate_limited_forward_phase_for_alias(flask_client):
)
db.session.commit()
for _ in range(MAX_ACTIVITY_DURING_MINUTE_PER_ALIAS + 1):
EmailLog.create(user_id=user.id, contact_id=contact.id)
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
)
db.session.commit()
assert rate_limited_for_alias(alias)
@ -55,10 +59,18 @@ def test_rate_limited_forward_phase_for_mailbox(flask_client):
)
db.session.commit()
for _ in range(MAX_ACTIVITY_DURING_MINUTE_PER_MAILBOX + 1):
EmailLog.create(user_id=user.id, contact_id=contact.id)
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
)
db.session.commit()
EmailLog.create(user_id=user.id, contact_id=contact.id)
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
)
# Create another alias with the same mailbox
# will be rate limited as there's a previous activity on mailbox
@ -92,7 +104,11 @@ def test_rate_limited_reply_phase(flask_client):
)
db.session.commit()
for _ in range(MAX_ACTIVITY_DURING_MINUTE_PER_ALIAS + 1):
EmailLog.create(user_id=user.id, contact_id=contact.id)
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
)
db.session.commit()
assert rate_limited_reply_phase("rep@sl.local")

View File

@ -616,7 +616,11 @@ def test_should_disable(flask_client):
)
for _ in range(20):
EmailLog.create(
user_id=user.id, contact_id=contact.id, commit=True, bounced=True
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
commit=True,
bounced=True,
)
assert should_disable(alias)
@ -647,6 +651,7 @@ def test_should_disable_bounces_every_day(flask_client):
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
commit=True,
bounced=True,
created_at=arrow.now().shift(days=-i),
@ -676,6 +681,7 @@ def test_should_disable_bounces_account(flask_client):
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
commit=True,
bounced=True,
created_at=arrow.now().shift(days=-day),
@ -701,7 +707,11 @@ def test_should_disable_bounce_consecutive_days(flask_client):
# create 6 bounce on this alias in the last 24h: alias is not disabled
for _ in range(6):
EmailLog.create(
user_id=user.id, contact_id=contact.id, commit=True, bounced=True
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
commit=True,
bounced=True,
)
assert not should_disable(alias)
@ -710,6 +720,7 @@ def test_should_disable_bounce_consecutive_days(flask_client):
EmailLog.create(
user_id=user.id,
contact_id=contact.id,
alias_id=contact.alias_id,
commit=True,
bounced=True,
created_at=arrow.now().shift(days=-3),