Changeset View
Changeset View
Standalone View
Standalone View
swh/web/inbound_email/tests/test_utils.py
- This file was moved from swh/web/tests/inbound_email/test_utils.py.
Show First 20 Lines • Show All 313 Lines • ▼ Show 20 Lines | ( | ||||
[b"this is HTML", b"This is a multi-part message in MIME format."], | [b"this is HTML", b"This is a multi-part message in MIME format."], | ||||
id="multipart_alternative_recursive", | id="multipart_alternative_recursive", | ||||
), | ), | ||||
), | ), | ||||
) | ) | ||||
def test_get_message_plaintext( | def test_get_message_plaintext( | ||||
filename: str, expected_parts: List[bytes], expected_absent: List[bytes] | filename: str, expected_parts: List[bytes], expected_absent: List[bytes] | ||||
): | ): | ||||
with open_binary("swh.web.tests.inbound_email.resources", filename) as f: | with open_binary("swh.web.inbound_email.tests.resources", filename) as f: | ||||
message = email.message_from_binary_file(f, policy=email.policy.default) | message = email.message_from_binary_file(f, policy=email.policy.default) | ||||
assert isinstance(message, EmailMessage) | assert isinstance(message, EmailMessage) | ||||
plaintext = utils.get_message_plaintext(message) | plaintext = utils.get_message_plaintext(message) | ||||
assert plaintext is not None | assert plaintext is not None | ||||
if len(expected_parts) == 1: | if len(expected_parts) == 1: | ||||
assert plaintext == expected_parts[0] | assert plaintext == expected_parts[0] | ||||
else: | else: | ||||
for part in expected_parts: | for part in expected_parts: | ||||
assert part in plaintext | assert part in plaintext | ||||
for part in expected_absent: | for part in expected_absent: | ||||
assert part not in plaintext | assert part not in plaintext |