21 lines
682 B
Python
21 lines
682 B
Python
|
|
from email.message import EmailMessage
|
||
|
|
|
||
|
|
from pneumatube.email_to_smol import EmailToSmolBridge, _single_line
|
||
|
|
|
||
|
|
|
||
|
|
def test_single_line_strips_crlf():
|
||
|
|
assert _single_line("alice@example.org\r\nAccept: forged") == "alice@example.org Accept: forged"
|
||
|
|
|
||
|
|
|
||
|
|
def test_extract_text_plain_message():
|
||
|
|
message = EmailMessage()
|
||
|
|
message.set_content("hello there")
|
||
|
|
assert EmailToSmolBridge.extract_text(message) == "hello there\n"
|
||
|
|
|
||
|
|
|
||
|
|
def test_extract_text_multipart_prefers_plain_part():
|
||
|
|
message = EmailMessage()
|
||
|
|
message.set_content("plain body")
|
||
|
|
message.add_alternative("<p>html body</p>", subtype="html")
|
||
|
|
assert "plain body" in EmailToSmolBridge.extract_text(message)
|