Fix delete_header not deleting all header occurences
This commit is contained in:
parent
50173483d3
commit
4c383663f4
|
@ -299,9 +299,11 @@ def add_or_replace_header(msg: Message, header: str, value: str):
|
|||
|
||||
def delete_header(msg: Message, header: str):
|
||||
"""a header can appear several times in message."""
|
||||
for h in msg._headers:
|
||||
if h[0].lower() == header.lower():
|
||||
msg._headers.remove(h)
|
||||
# inspired from https://stackoverflow.com/a/47903323/1428034
|
||||
for i in reversed(range(len(msg._headers))):
|
||||
header_name = msg._headers[i][0].lower()
|
||||
if header_name == header.lower():
|
||||
del msg._headers[i]
|
||||
|
||||
|
||||
def email_belongs_to_alias_domains(email: str) -> bool:
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from email.message import EmailMessage
|
||||
|
||||
from app.email_utils import (
|
||||
get_email_name,
|
||||
get_email_part,
|
||||
|
@ -5,6 +7,7 @@ from app.email_utils import (
|
|||
get_email_domain_part,
|
||||
email_belongs_to_alias_domains,
|
||||
can_be_used_as_personal_email,
|
||||
delete_header,
|
||||
)
|
||||
from app.extensions import db
|
||||
from app.models import User, CustomDomain
|
||||
|
@ -55,3 +58,16 @@ def test_can_be_used_as_personal_email(flask_client):
|
|||
CustomDomain.create(user_id=user.id, domain="ab.cd", verified=True)
|
||||
db.session.commit()
|
||||
assert not can_be_used_as_personal_email("hey@ab.cd")
|
||||
|
||||
|
||||
def test_delete_header():
|
||||
msg = EmailMessage()
|
||||
assert msg._headers == []
|
||||
|
||||
msg["H"] = "abcd"
|
||||
msg["H"] = "xyzt"
|
||||
|
||||
assert msg._headers == [("H", "abcd"), ("H", "xyzt")]
|
||||
|
||||
delete_header(msg, "H")
|
||||
assert msg._headers == []
|
||||
|
|
Loading…
Reference in New Issue