Skip to content

Commit b929f75

Browse files
committed
try to repro
1 parent b2566d8 commit b929f75

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

Lib/test/test_email/gh_113494.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import email, email.policy
2+
3+
4+
email_raw_1 = """Content-Type: multipart/mixed; boundary="==="
5+
6+
--===
7+
Content-Type: message/plain
8+
9+
您0123456789012.3456789
10+
11+
--===--
12+
""".encode()
13+
14+
email_raw_2 = """Content-Type: multipart/mixed; boundary="==="
15+
16+
--===
17+
Content-Type: message/plain
18+
19+
您0123456789012.34567890
20+
21+
--===--
22+
""".encode()
23+
24+
message_1 = email.message_from_bytes(email_raw_1, policy=email.policy.SMTPUTF8)
25+
message_2 = email.message_from_bytes(email_raw_2, policy=email.policy.SMTPUTF8)
26+
print(message_1)
27+
print(message_2)

Lib/test/test_email/test_email.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,35 @@ def test_as_bytes_policy(self):
369369
g.flatten(msg)
370370
self.assertEqual(fullrepr, s.getvalue())
371371

372+
def test_roundtrip(self) -> None:
373+
"""Tests for gh-113594 to check that a message can be roundtripped
374+
without crashing or losing information.
375+
"""
376+
email_raw_1 = """Content-Type: multipart/mixed; boundary="==="
377+
378+
--===
379+
Content-Type: message/plain
380+
381+
您0123456789012.3456789
382+
383+
--===--
384+
""".encode()
385+
386+
email_raw_2 = """Content-Type: multipart/mixed; boundary="==="
387+
388+
--===
389+
Content-Type: message/plain
390+
391+
您0123456789012.34567890
392+
393+
--===--
394+
""".encode()
395+
396+
message1 = email.message_from_bytes(email_raw_1, policy=email.policy.SMTPUTF8)
397+
print(message1)
398+
message2 = email.message_from_bytes(email_raw_2, policy=email.policy.SMTPUTF8)
399+
print(message2)
400+
372401
# test_headerregistry.TestContentTypeHeader.bad_params
373402
def test_bad_param(self):
374403
msg = email.message_from_string("Content-Type: blarg; baz; boo\n")

0 commit comments

Comments
 (0)