app-MAIL-temp/tests/api/test_setting.py

106 lines
3.3 KiB
Python
Raw Normal View History

from app.models import (
CustomDomain,
AliasGeneratorEnum,
SenderFormatEnum,
AliasSuffixEnum,
)
2022-04-18 11:55:14 +02:00
from tests.utils import login, random_domain
2020-10-28 17:23:58 +01:00
def test_get_setting(flask_client):
2020-12-06 17:47:05 +01:00
login(flask_client)
2020-10-28 17:23:58 +01:00
r = flask_client.get("/api/setting")
assert r.status_code == 200
assert r.json == {
2020-10-28 17:47:26 +01:00
"alias_generator": "word",
2020-10-28 17:23:58 +01:00
"notification": True,
"random_alias_default_domain": "sl.local",
2021-01-26 20:06:39 +01:00
"sender_format": "AT",
"random_alias_suffix": "random_string",
2020-10-28 17:23:58 +01:00
}
2020-10-28 17:30:57 +01:00
2020-10-28 17:47:26 +01:00
def test_update_settings_notification(flask_client):
user = login(flask_client)
assert user.notification
r = flask_client.patch("/api/setting", json={"notification": False})
assert r.status_code == 200
assert not user.notification
def test_update_settings_alias_generator(flask_client):
user = login(flask_client)
assert user.alias_generator == AliasGeneratorEnum.word.value
r = flask_client.patch("/api/setting", json={"alias_generator": "invalid"})
assert r.status_code == 400
r = flask_client.patch("/api/setting", json={"alias_generator": "uuid"})
assert r.status_code == 200
assert user.alias_generator == AliasGeneratorEnum.uuid.value
def test_update_settings_random_alias_default_domain(flask_client):
user = login(flask_client)
assert user.default_random_alias_domain() == "sl.local"
r = flask_client.patch(
"/api/setting", json={"random_alias_default_domain": "invalid"}
)
assert r.status_code == 400
r = flask_client.patch(
"/api/setting", json={"random_alias_default_domain": "d1.test"}
)
assert r.status_code == 200
assert user.default_random_alias_domain() == "d1.test"
def test_update_settings_sender_format(flask_client):
user = login(flask_client)
2021-01-26 20:06:39 +01:00
assert user.sender_format == SenderFormatEnum.AT.value
r = flask_client.patch("/api/setting", json={"sender_format": "invalid"})
assert r.status_code == 400
2021-09-20 12:27:36 +02:00
r = flask_client.patch("/api/setting", json={"sender_format": "A"})
assert r.status_code == 200
2021-09-20 12:27:36 +02:00
assert user.sender_format == SenderFormatEnum.A.value
r = flask_client.patch("/api/setting", json={"sender_format": "NAME_ONLY"})
assert r.status_code == 200
assert user.sender_format == SenderFormatEnum.NAME_ONLY.value
2020-10-28 17:47:26 +01:00
def test_get_setting_domains(flask_client):
2020-10-28 17:30:57 +01:00
user = login(flask_client)
2022-04-18 11:55:14 +02:00
domain = random_domain()
CustomDomain.create(user_id=user.id, domain=domain, verified=True, commit=True)
2020-10-28 17:30:57 +01:00
r = flask_client.get("/api/setting/domains")
assert r.status_code == 200
2020-11-14 16:37:36 +01:00
def test_get_setting_domains_v2(flask_client):
user = login(flask_client)
2022-04-18 11:55:14 +02:00
domain = random_domain()
CustomDomain.create(user_id=user.id, domain=domain, verified=True, commit=True)
2020-11-14 16:37:36 +01:00
r = flask_client.get("/api/v2/setting/domains")
assert r.status_code == 200
def test_update_settings_random_alias_suffix(flask_client):
user = login(flask_client)
# default random_alias_suffix is random_string
assert user.random_alias_suffix == AliasSuffixEnum.random_string.value
r = flask_client.patch("/api/setting", json={"random_alias_suffix": "invalid"})
assert r.status_code == 400
r = flask_client.patch("/api/setting", json={"random_alias_suffix": "word"})
assert r.status_code == 200
assert user.random_alias_suffix == AliasSuffixEnum.word.value