add argument commit= to create()
This commit is contained in:
parent
bb6a5bf0b3
commit
d6d686c4c3
|
@ -67,8 +67,14 @@ class ModelMixin(object):
|
|||
|
||||
@classmethod
|
||||
def create(cls, **kw):
|
||||
# whether should call db.session.commit
|
||||
commit = kw.pop("commit", False)
|
||||
|
||||
r = cls(**kw)
|
||||
db.session.add(r)
|
||||
|
||||
if commit:
|
||||
db.session.commit()
|
||||
return r
|
||||
|
||||
def save(self):
|
||||
|
@ -882,6 +888,9 @@ class Alias(db.Model, ModelMixin):
|
|||
|
||||
@classmethod
|
||||
def create(cls, **kw):
|
||||
# whether should call db.session.commit
|
||||
commit = kw.pop("commit", False)
|
||||
|
||||
r = cls(**kw)
|
||||
|
||||
email = kw["email"]
|
||||
|
@ -896,6 +905,8 @@ class Alias(db.Model, ModelMixin):
|
|||
raise AliasInTrashError
|
||||
|
||||
db.session.add(r)
|
||||
if commit:
|
||||
db.session.commit()
|
||||
return r
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -7,9 +7,12 @@ from app.models import User, ApiKey, Alias, Contact, EmailLog, Mailbox
|
|||
|
||||
def test_get_aliases_error_without_pagination(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
# create api_key
|
||||
api_key = ApiKey.create(user.id, "for test")
|
||||
|
@ -25,9 +28,12 @@ def test_get_aliases_error_without_pagination(flask_client):
|
|||
|
||||
def test_get_aliases_with_pagination(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
# create api_key
|
||||
api_key = ApiKey.create(user.id, "for test")
|
||||
|
|
|
@ -6,9 +6,12 @@ from app.models import User, ApiKey, AliasUsedOn, Alias
|
|||
|
||||
def test_different_scenarios(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
# create api_key
|
||||
api_key = ApiKey.create(user.id, "for test")
|
||||
|
|
|
@ -5,13 +5,18 @@ from app.models import User, Alias, DeletedAlias
|
|||
|
||||
def test_delete_alias(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
alias = Alias.create(
|
||||
user_id=user.id, email="first@d1.test", mailbox_id=user.default_mailbox_id
|
||||
user_id=user.id,
|
||||
email="first@d1.test",
|
||||
mailbox_id=user.default_mailbox_id,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
assert Alias.get_by(email="first@d1.test")
|
||||
|
||||
delete_alias(alias, user)
|
||||
|
@ -22,13 +27,18 @@ def test_delete_alias(flask_client):
|
|||
def test_delete_alias_already_in_trash(flask_client):
|
||||
"""delete an alias that's already in alias trash"""
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
alias = Alias.create(
|
||||
user_id=user.id, email="first@d1.test", mailbox_id=user.default_mailbox_id
|
||||
user_id=user.id,
|
||||
email="first@d1.test",
|
||||
mailbox_id=user.default_mailbox_id,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
# add the alias to global trash
|
||||
db.session.add(DeletedAlias(email=alias.email))
|
||||
|
|
|
@ -28,9 +28,12 @@ def test_generate_email(flask_client):
|
|||
|
||||
def test_profile_picture_url(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
assert user.profile_picture_url() == "http://sl.test/static/default-avatar.png"
|
||||
|
||||
|
@ -43,10 +46,9 @@ def test_suggested_emails_for_user_who_cannot_create_new_alias(flask_client):
|
|||
name="Test User",
|
||||
activated=True,
|
||||
trial_end=None,
|
||||
commit=True,
|
||||
)
|
||||
|
||||
db.session.commit()
|
||||
|
||||
# make sure user runs out of quota to create new email
|
||||
for i in range(MAX_NB_EMAIL_FREE_PLAN):
|
||||
Alias.create_new(user=user, prefix="test")
|
||||
|
@ -64,9 +66,12 @@ def test_suggested_emails_for_user_who_cannot_create_new_alias(flask_client):
|
|||
|
||||
def test_alias_create_random(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
alias = Alias.create_new_random(user)
|
||||
assert alias.email.endswith(EMAIL_DOMAIN)
|
||||
|
@ -74,9 +79,12 @@ def test_alias_create_random(flask_client):
|
|||
|
||||
def test_website_send_to(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
alias = Alias.create_new_random(user)
|
||||
db.session.commit()
|
||||
|
@ -104,9 +112,12 @@ def test_website_send_to(flask_client):
|
|||
|
||||
def test_new_addr(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
alias = Alias.create_new_random(user)
|
||||
db.session.commit()
|
||||
|
@ -118,8 +129,8 @@ def test_new_addr(flask_client):
|
|||
website_email="abcd@example.com",
|
||||
reply_email="rep@SL",
|
||||
name="First Last",
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
assert c1.new_addr() == '"abcd@example.com via SimpleLogin" <rep@SL>'
|
||||
|
||||
# set sender_format = AT
|
||||
|
@ -144,14 +155,22 @@ def test_new_addr(flask_client):
|
|||
|
||||
def test_mailbox_delete(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
email="a@b.c",
|
||||
password="password",
|
||||
name="Test User",
|
||||
activated=True,
|
||||
commit=True,
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
m1 = Mailbox.create(user_id=user.id, email="m1@example.com", verified=True)
|
||||
m2 = Mailbox.create(user_id=user.id, email="m2@example.com", verified=True)
|
||||
m3 = Mailbox.create(user_id=user.id, email="m3@example.com", verified=True)
|
||||
db.session.commit()
|
||||
m1 = Mailbox.create(
|
||||
user_id=user.id, email="m1@example.com", verified=True, commit=True
|
||||
)
|
||||
m2 = Mailbox.create(
|
||||
user_id=user.id, email="m2@example.com", verified=True, commit=True
|
||||
)
|
||||
m3 = Mailbox.create(
|
||||
user_id=user.id, email="m3@example.com", verified=True, commit=True
|
||||
)
|
||||
|
||||
# alias has 2 mailboxes
|
||||
alias = Alias.create_new(user, "prefix", mailbox_id=m1.id)
|
||||
|
|
Loading…
Reference in New Issue