diff --git a/app/models.py b/app/models.py index da9b5596..099fb09f 100644 --- a/app/models.py +++ b/app/models.py @@ -160,9 +160,7 @@ class PlanEnum(EnumE): # Specify the format for sender address class SenderFormatEnum(EnumE): AT = 0 # John Wick - john at wick.com - VIA = 1 # john@wick.com via SimpleLogin A = 2 # John Wick - john(a)wick.com - FULL = 3 # John Wick - john@wick.com class AliasGeneratorEnum(EnumE): @@ -1486,26 +1484,19 @@ class Contact(db.Model, ModelMixin): `new_email` is a special reply address """ user = self.user - if ( - not user - or not SenderFormatEnum.has_value(user.sender_format) - or user.sender_format == SenderFormatEnum.VIA.value - ): - new_name = f"{self.website_email} via SimpleLogin" - else: - if user.sender_format == SenderFormatEnum.AT.value: - formatted_email = self.website_email.replace("@", " at ").strip() - elif user.sender_format == SenderFormatEnum.A.value: - formatted_email = self.website_email.replace("@", "(a)").strip() - elif user.sender_format == SenderFormatEnum.FULL.value: - formatted_email = self.website_email.strip() + sender_format = user.sender_format if user else SenderFormatEnum.AT.value - # Prefix name to formatted email if available - new_name = ( - (self.name + " - " + formatted_email) - if self.name and self.name != self.website_email.strip() - else formatted_email - ) + if sender_format == SenderFormatEnum.AT.value: + formatted_email = self.website_email.replace("@", " at ").strip() + else: + formatted_email = self.website_email.replace("@", "(a)").strip() + + # Prefix name to formatted email if available + new_name = ( + (self.name + " - " + formatted_email) + if self.name and self.name != self.website_email.strip() + else formatted_email + ) new_addr = formataddr((new_name, self.reply_email)).strip() return new_addr.strip() diff --git a/tests/api/test_setting.py b/tests/api/test_setting.py index dd23f9ab..d88ebd83 100644 --- a/tests/api/test_setting.py +++ b/tests/api/test_setting.py @@ -59,9 +59,9 @@ def test_update_settings_sender_format(flask_client): r = flask_client.patch("/api/setting", json={"sender_format": "invalid"}) assert r.status_code == 400 - r = flask_client.patch("/api/setting", json={"sender_format": "VIA"}) + r = flask_client.patch("/api/setting", json={"sender_format": "A"}) assert r.status_code == 200 - assert user.sender_format == SenderFormatEnum.VIA.value + assert user.sender_format == SenderFormatEnum.A.value def test_get_setting_domains(flask_client): diff --git a/tests/test_models.py b/tests/test_models.py index 48aa0af5..6bcf4ca9 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -133,17 +133,12 @@ def test_new_addr(flask_client): name="First Last", commit=True, ) - assert c1.new_addr() == '"abcd@example.com via SimpleLogin" ' - - # set sender format = FULL - user.sender_format = SenderFormatEnum.FULL.value - db.session.commit() - assert c1.new_addr() == '"First Last - abcd@example.com" ' + assert c1.new_addr() == '"First Last - abcd(a)example.com" ' # Make sure email isn't duplicated if sender name equals email c1.name = "abcd@example.com" db.session.commit() - assert c1.new_addr() == '"abcd@example.com" ' + assert c1.new_addr() == '"abcd(a)example.com" ' # set sender_format = AT user.sender_format = SenderFormatEnum.AT.value