import pdb from email.message import EmailMessage def test_encoding(s: str, expected: bytes): m = EmailMessage() m['Subject'] = s header = bytes(m) print('Original: "' + s + '"') print('Expected:', expected) print('Actual: ', header) print('-- pass --' if header == expected else '-- fail--') print('') test_encoding('Hello Wörld! Hello Wörld! Hello Wörld! Hello Wörld!Hello Wörld!', b'Subject: Hello =?utf-8?q?W=C3=B6rld!_Hello_W=C3=B6rld!_Hello_W=C3=B6rld!?=\n Hello =?utf-8?q?W=C3=B6rld!Hello_W=C3=B6rld!?=\n\n') test_encoding('Hello Wörld! Hello Wörld! Hello Wörlds123! Hello Wörld!Hello Wörld!', b'Subject: Hello =?utf-8?q?W=C3=B6rld!_Hello_W=C3=B6rld!_Hello_W=C3=B6rlds123!?=\n Hello =?utf-8?q?W=C3=B6rld!Hello_W=C3=B6rld!?=\n\n') test_encoding('Hello-Wörld!-Hello-Wörld!-Hello-Wörlds123! Hello Wörld!Hello Wörld!', b'Subject: =?utf-8?q?Hello-W=C3=B6rld!-Hello-W=C3=B6rld!-Hello-W=C3=B6rlds123!?=\n Hello =?utf-8?q?W=C3=B6rld!Hello_W=C3=B6rld!?=\n\n') test_encoding('Hello-Wörld!-Hello-Wörld!-Hello-Wörlds123!-Hello Wörld!Hello Wörld!', b'Subject: =?utf-8?q?Hello-W=C3=B6rld!-Hello-W=C3=B6rld!-Hello-W=C3=B6rlds123!?=\n =?utf-8?q?-Hello_W=C3=B6rld!Hello_W=C3=B6rld!?=\n\n') test_encoding('123456789 123456789 123456789 123456789 123456789 123456789 123456789 Hello Wörld!', b'Subject: 123456789 123456789 123456789 123456789 123456789 123456789 123456789\n Hello =?utf-8?q?W=C3=B6rld!?=\n\n') test_encoding('123456789 123456789 123456789 123456789 Hello Wörld! 123456789 123456789 123456789 123456789 123456789 123456789', b'Subject: 123456789 123456789 123456789 123456789 Hello =?utf-8?q?W=C3=B6rld!?=\n 123456789 123456789 123456789 123456789 123456789 123456789\n\n') test_encoding('123456789 123456789 Hello Wörld! Hello Wörld! 123456789-123456789 123456789 Hello Wörld! 123456789 123456789', b'Subject: 123456789 123456789 Hello =?utf-8?q?W=C3=B6rld!_Hello_W=C3=B6rld!?=\n 123456789-123456789 123456789 Hello =?utf-8?q?W=C3=B6rld!?= 123456789\n 123456789\n\n')