mirror of
https://github.com/simple-login/app.git
synced 2024-11-14 08:01:13 +01:00
116 lines
3.4 KiB
Python
116 lines
3.4 KiB
Python
from app.alias_utils import delete_alias
|
|
from app.models import CustomDomain, Alias, Mailbox
|
|
from tests.utils import login
|
|
|
|
|
|
def test_get_custom_domains(flask_client):
|
|
user = login(flask_client)
|
|
|
|
CustomDomain.create(user_id=user.id, domain="test1.org", verified=True, commit=True)
|
|
CustomDomain.create(
|
|
user_id=user.id, domain="test2.org", verified=False, commit=True
|
|
)
|
|
|
|
r = flask_client.get(
|
|
"/api/custom_domains",
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert len(r.json["custom_domains"]) == 2
|
|
for domain in r.json["custom_domains"]:
|
|
assert domain["domain_name"]
|
|
assert domain["id"]
|
|
assert domain["nb_alias"] == 0
|
|
assert "is_verified" in domain
|
|
assert "catch_all" in domain
|
|
assert "name" in domain
|
|
assert "random_prefix_generation" in domain
|
|
assert domain["creation_date"]
|
|
assert domain["creation_timestamp"]
|
|
|
|
assert domain["mailboxes"]
|
|
for mailbox in domain["mailboxes"]:
|
|
assert "id" in mailbox
|
|
assert "email" in mailbox
|
|
|
|
|
|
def test_update_custom_domains(flask_client):
|
|
user = login(flask_client)
|
|
|
|
d1 = CustomDomain.create(
|
|
user_id=user.id, domain="test1.org", verified=True, commit=True
|
|
)
|
|
|
|
# test update catch all
|
|
assert d1.catch_all is False
|
|
r = flask_client.patch(f"/api/custom_domains/{d1.id}", json={"catch_all": True})
|
|
assert r.status_code == 200
|
|
assert d1.catch_all is True
|
|
|
|
# make sure the full domain json is returned
|
|
cd_json = r.json["custom_domain"]
|
|
assert cd_json["domain_name"]
|
|
assert cd_json["id"] == d1.id
|
|
assert cd_json["nb_alias"] == 0
|
|
assert "is_verified" in cd_json
|
|
assert "catch_all" in cd_json
|
|
assert "name" in cd_json
|
|
assert "random_prefix_generation" in cd_json
|
|
assert cd_json["creation_date"]
|
|
assert cd_json["creation_timestamp"]
|
|
|
|
assert cd_json["mailboxes"]
|
|
for mailbox in cd_json["mailboxes"]:
|
|
assert "id" in mailbox
|
|
assert "email" in mailbox
|
|
|
|
# test update random_prefix_generation
|
|
assert d1.random_prefix_generation is False
|
|
r = flask_client.patch(
|
|
f"/api/custom_domains/{d1.id}", json={"random_prefix_generation": True}
|
|
)
|
|
assert r.status_code == 200
|
|
assert d1.random_prefix_generation is True
|
|
|
|
# test update name
|
|
assert d1.name is None
|
|
r = flask_client.patch(f"/api/custom_domains/{d1.id}", json={"name": "test name"})
|
|
assert r.status_code == 200
|
|
assert d1.name == "test name"
|
|
|
|
# test update mailboxes
|
|
assert d1.mailboxes == [user.default_mailbox]
|
|
mb = Mailbox.create(
|
|
user_id=user.id, email="test@example.org", verified=True, commit=True
|
|
)
|
|
r = flask_client.patch(
|
|
f"/api/custom_domains/{d1.id}", json={"mailbox_ids": [mb.id]}
|
|
)
|
|
assert r.status_code == 200
|
|
assert d1.mailboxes == [mb]
|
|
|
|
|
|
def test_get_custom_domain_trash(flask_client):
|
|
user = login(flask_client)
|
|
|
|
cd = CustomDomain.create(
|
|
user_id=user.id, domain="test1.org", verified=True, commit=True
|
|
)
|
|
|
|
alias = Alias.create(
|
|
user_id=user.id,
|
|
email="first@test1.org",
|
|
custom_domain_id=cd.id,
|
|
mailbox_id=user.default_mailbox_id,
|
|
commit=True,
|
|
)
|
|
|
|
delete_alias(alias, user)
|
|
|
|
r = flask_client.get(
|
|
f"/api/custom_domains/{cd.id}/trash",
|
|
)
|
|
|
|
for deleted_alias in r.json["aliases"]:
|
|
assert deleted_alias["alias"]
|
|
assert deleted_alias["deletion_timestamp"] > 0
|