@@ -1474,6 +1474,35 @@ def test_binary_body_with_encode_noop(self):
14741474 self .assertEqual (msg .get_payload (), '\uFFFD ' * len (bytesdata ))
14751475 self .assertEqual (msg2 .get_payload (decode = True ), bytesdata )
14761476
1477+ def test_binary_body_with_encode_quopri (self ):
1478+ # Issue 14360.
1479+ bytesdata = b'\xfa \xfb \xfc \xfd \xfe \xff '
1480+ msg = MIMEApplication (bytesdata , _encoder = encoders .encode_quopri )
1481+ self .assertEqual (msg .get_payload (), '=FA=FB=FC=FD=FE=FF=20' )
1482+ self .assertEqual (msg .get_payload (decode = True ), bytesdata )
1483+ self .assertEqual (msg ['Content-Transfer-Encoding' ], 'quoted-printable' )
1484+ s = BytesIO ()
1485+ g = BytesGenerator (s )
1486+ g .flatten (msg )
1487+ wireform = s .getvalue ()
1488+ msg2 = email .message_from_bytes (wireform )
1489+ self .assertEqual (msg .get_payload (), '=FA=FB=FC=FD=FE=FF=20' )
1490+ self .assertEqual (msg2 .get_payload (decode = True ), bytesdata )
1491+ self .assertEqual (msg2 ['Content-Transfer-Encoding' ], 'quoted-printable' )
1492+
1493+ def test_binary_body_with_encode_base64 (self ):
1494+ bytesdata = b'\xfa \xfb \xfc \xfd \xfe \xff '
1495+ msg = MIMEApplication (bytesdata , _encoder = encoders .encode_base64 )
1496+ self .assertEqual (msg .get_payload (), '+vv8/f7/\n ' )
1497+ self .assertEqual (msg .get_payload (decode = True ), bytesdata )
1498+ s = BytesIO ()
1499+ g = BytesGenerator (s )
1500+ g .flatten (msg )
1501+ wireform = s .getvalue ()
1502+ msg2 = email .message_from_bytes (wireform )
1503+ self .assertEqual (msg .get_payload (), '+vv8/f7/\n ' )
1504+ self .assertEqual (msg2 .get_payload (decode = True ), bytesdata )
1505+
14771506
14781507# Test the basic MIMEText class
14791508class TestMIMEText (unittest .TestCase ):
0 commit comments