77import io
88import unittest
99from email import policy , message_from_bytes
10+ from email .message import EmailMessage
1011from email .generator import BytesGenerator
1112from test .test_email import TestEmailBase , parameterize
1213
@@ -23,7 +24,10 @@ def dedent(bstr):
2324
2425
2526@parameterize
26- class TestInversion (TestEmailBase , unittest .TestCase ):
27+ class TestInversion (TestEmailBase ):
28+
29+ policy = policy .default
30+ message = EmailMessage
2731
2832 def msg_as_input (self , msg ):
2933 m = message_from_bytes (msg , policy = policy .SMTP )
@@ -44,6 +48,23 @@ def msg_as_input(self, msg):
4448
4549 }
4650
51+ payload_params = {
52+ 'plain_text' : dict (payload = 'This is a test\n ' * 20 ),
53+ 'base64_text' : dict (payload = (('xy a' * 40 + '\n ' )* 5 ), cte = 'base64' ),
54+ 'qp_text' : dict (payload = (('xy a' * 40 + '\n ' )* 5 ), cte = 'quoted-printable' ),
55+ }
56+
57+ def payload_as_body (self , payload , ** kw ):
58+ msg = self ._make_message ()
59+ msg ['From' ] = 'foo'
60+ msg ['To' ] = 'bar'
61+ msg ['Subject' ] = 'payload round trip test'
62+ msg .set_content (payload , ** kw )
63+ b = bytes (msg )
64+ msg2 = message_from_bytes (b , policy = self .policy )
65+ self .assertEqual (bytes (msg2 ), b )
66+ self .assertEqual (msg2 .get_content (), payload )
67+
4768
4869if __name__ == '__main__' :
4970 unittest .main ()
0 commit comments