ϪfddlmZddlZddlZddlmZmZddlm Z m Z m Z ddl m Z ddlmZGddej Zy) ) annotationsN)BytesIOStringIO)IOAnyStrCallable)bounce)unittestcHeZdZdZddZddZddZ d dZddZy) BounceTestsz# Bounce message generation ctjtddd\}}}|j|d|j|dtj j }|jt|jd}|j|dd|j|dd |j|d d y ) zN L{twisted.mail.bounce.generateBounce} can accept L{unicode}. zRFrom: Moshe Zadka To: nonexistent@example.org Subject: test moshez@example.comnonexistent@example.orgmoshez@example.comutf-8ToFrompostmaster@example.orgsubject)Returned Mail: see transcript for detailsN) r generateBouncer assertEqualemailparserParserparsedecodeself fromAddresstos emailParsermesss ?/usr/lib/python3/dist-packages/twisted/mail/test/test_bounce.pytest_bounceMessageUnicodez%BounceTests.test_bounceMessageUnicodes$22   ! %   R c* 23ll))+   !((7*;!<= d%9: f'?@ i*UVrctjtddd\}}}|j|d|j|dtj j }|jt|jd}|j|dd|j|dd |j|d d y ) zL L{twisted.mail.bounce.generateBounce} can accept L{bytes}. RFrom: Moshe Zadka To: nonexistent@example.org Subject: test rnonexistent@example.orgrrrrrrrrN) r rrrrrrrrrrs r&test_bounceMessageBytesz#BounceTests.test_bounceMessageBytes+s$22   " &   R c* 23ll))+   !((7*;!<= d%9: f'?@ i*UVrcFtjtdddd\}}}|j|d|j|dtj j }|jt|jd}|j|dd|j|d d |j|d d |j|j|j}|j|d jdy)z\ Pass a custom transcript message to L{twisted.mail.bounce.generateBounce}. r)rr*zCustom transcriptrrrrrrrrrzCustom transcript N) r rrrrrrrrr assertTrue is_multipart get_payload)r r!r"r#r$r%partss r&"test_bounceMessageCustomTranscriptz.BounceTests.test_bounceMessageCustomTranscriptCs$22   " &    R c* 23ll))+   !((7*;!<= d%9: f'?@ i*UV ))+,  " q--/1FGrcptj|||zdd\}}}tjj }|j t |jd}|j|dd|j|dd|j|dd|j|j|j} | d j} t|tr|jd} n|} |j| d jd z| y ) zU Pass a really big message to L{twisted.mail.bounce.generateBounce}. rrrrrrrrr N)r rrrrrrrrr-r.r/ isinstancebytes) r headermessageioTyper!r"r#r$r%r0 innerMessage messageTexts r&_bounceBigMessagezBounceTests._bounceBigMessage_s $22 6G# $&:rr&r r sIW0W0H8LL'-L7UL L. Xrr ) __future__r email.messager email.parseriorrtypingrrr twisted.mailr twisted.trialr TestCaser rErr&rNs5# ''"tX(##tXr