Handle sender_format in PATCH /api/setting

This commit is contained in:
Son NK 2020-11-15 19:43:37 +01:00
parent c794e73abd
commit 15a6d9630a
2 changed files with 20 additions and 1 deletions

View File

@ -62,6 +62,13 @@ def update_setting():
else:
user.alias_generator = AliasGeneratorEnum.uuid.value
if "sender_format" in data:
sender_format = data["sender_format"]
if not SenderFormatEnum.has_name(sender_format):
return jsonify(error="Invalid sender_format"), 400
user.sender_format = SenderFormatEnum.get_value(sender_format)
if "random_alias_default_domain" in data:
default_domain = data["random_alias_default_domain"]
sl_domain: SLDomain = SLDomain.get_by(domain=default_domain)

View File

@ -1,6 +1,6 @@
import json
from app.models import CustomDomain, AliasGeneratorEnum
from app.models import CustomDomain, AliasGeneratorEnum, SenderFormatEnum
from tests.utils import login, pretty
@ -54,6 +54,18 @@ def test_update_settings_random_alias_default_domain(flask_client):
assert user.default_random_alias_domain() == "d1.test"
def test_update_settings_sender_format(flask_client):
user = login(flask_client)
assert user.sender_format == SenderFormatEnum.VIA.value
r = flask_client.patch("/api/setting", json={"sender_format": "invalid"})
assert r.status_code == 400
r = flask_client.patch("/api/setting", json={"sender_format": "AT"})
assert r.status_code == 200
assert user.sender_format == SenderFormatEnum.AT.value
def test_get_setting_domains(flask_client):
user = login(flask_client)
CustomDomain.create(user_id=user.id, domain="ab.cd", verified=True, commit=True)