@@ -810,6 +810,16 @@ def test_unicode_body_defaults_to_utf8_encoding(self):
810810            w4kgdGVzdGFiYwo= 
811811            """ ))
812812
813+     def  test_string_payload_with_base64_cte (self ):
814+         msg  =  email .message_from_string (textwrap .dedent ("""\  
815+ 
816+ 
817+         SGVsbG8uIFRlc3Rpbmc= 
818+         """ ), policy = email .policy .default )
819+         self .assertEqual (msg .get_payload (decode = True ), b"Hello. Testing" )
820+         self .assertDefectsEqual (msg ['content-transfer-encoding' ].defects , [])
821+ 
822+ 
813823
814824# Test the email.encoders module 
815825class  TestEncoders (unittest .TestCase ):
@@ -2352,6 +2362,40 @@ def test_missing_header_body_separator(self):
23522362        self .assertDefectsEqual (msg .defects ,
23532363                                [errors .MissingHeaderBodySeparatorDefect ])
23542364
2365+     def  test_string_payload_with_extra_space_after_cte (self ):
2366+         # https://github.com/python/cpython/issues/98188 
2367+         cte  =  "base64 " 
2368+         msg  =  email .message_from_string (textwrap .dedent (f"""\  
2369+ { cte } 
2370+ 
2371+         SGVsbG8uIFRlc3Rpbmc= 
2372+         """ ), policy = email .policy .default )
2373+         self .assertEqual (msg .get_payload (decode = True ), b"Hello. Testing" )
2374+         self .assertDefectsEqual (msg ['content-transfer-encoding' ].defects , [])
2375+ 
2376+     def  test_string_payload_with_extra_text_after_cte (self ):
2377+         msg  =  email .message_from_string (textwrap .dedent ("""\  
2378+ 
2379+ 
2380+         SGVsbG8uIFRlc3Rpbmc= 
2381+         """ ), policy = email .policy .default )
2382+         self .assertEqual (msg .get_payload (decode = True ), b"Hello. Testing" )
2383+         cte  =  msg ['content-transfer-encoding' ]
2384+         self .assertDefectsEqual (cte .defects , [email .errors .InvalidHeaderDefect ])
2385+ 
2386+     def  test_string_payload_with_extra_space_after_cte_compat32 (self ):
2387+         cte  =  "base64 " 
2388+         msg  =  email .message_from_string (textwrap .dedent (f"""\  
2389+ { cte } 
2390+ 
2391+         SGVsbG8uIFRlc3Rpbmc= 
2392+         """ ), policy = email .policy .compat32 )
2393+         pasted_cte  =  msg ['content-transfer-encoding' ]
2394+         self .assertEqual (pasted_cte , cte )
2395+         self .assertEqual (msg .get_payload (decode = True ), b"Hello. Testing" )
2396+         self .assertDefectsEqual (msg .defects , [])
2397+ 
2398+ 
23552399
23562400# Test RFC 2047 header encoding and decoding 
23572401class  TestRFC2047 (TestEmailBase ):
0 commit comments