Ë
    ojË  ã                  ó†   — d dl mZ d dlZd dlZd dlmZmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ  G d„ dej                   «      Zy)	é    )ÚannotationsN)ÚBytesIOÚStringIO)ÚIOÚAnyStrÚCallable)Úbounce)Úunittestc                  óH   — e Zd ZdZdd„Zdd„Zdd„Z	 	 	 	 	 	 	 	 d	d„Zdd„Zy)
ÚBounceTestsz#
    Bounce message generation
    c                ó   — t        j                  t        d«      dd«      \  }}}| j                  |d«       | j                  |d«       t        j
                  j                  «       }|j                  t        |j                  d«      «      «      }| j                  |d   d«       | j                  |d   d	«       | j                  |d
   d«       y)zN
        L{twisted.mail.bounce.generateBounce} can accept L{unicode}.
        zRFrom: Moshe Zadka <moshez@example.com>
To: nonexistent@example.org
Subject: test

úmoshez@example.comúnonexistent@example.orgó    ó   moshez@example.comúutf-8ÚToÚFromúpostmaster@example.orgÚsubjectú)Returned Mail: see transcript for detailsN)	r	   ÚgenerateBouncer   ÚassertEqualÚemailÚparserÚParserÚparseÚdecode©ÚselfÚfromAddressÚtoÚsÚemailParserÚmesss         ú?/usr/lib/python3/dist-packages/twisted/mail/test/test_bounce.pyÚtest_bounceMessageUnicodez%BounceTests.test_bounceMessageUnicode   sÂ   € ô $×2Ñ2Üðóð !Ø%ó
Ñˆ�R˜ð 	×Ñ˜ cÔ*Ø×Ñ˜Ð2Ô3Ü—l‘l×)Ñ)Ó+ˆØ× Ñ ¤¨!¯(©(°7Ó*;Ó!<Ó=ˆØ×Ñ˜˜d™Ð%9Ô:Ø×Ñ˜˜f™Ð'?Ô@Ø×Ñ˜˜i™Ð*UÕVr   c                ó   — t        j                  t        d«      dd«      \  }}}| j                  |d«       | j                  |d«       t        j
                  j                  «       }|j                  t        |j                  d«      «      «      }| j                  |d   d«       | j                  |d   d	«       | j                  |d
   d«       y)zL
        L{twisted.mail.bounce.generateBounce} can accept L{bytes}.
        óR   From: Moshe Zadka <moshez@example.com>
To: nonexistent@example.org
Subject: test

r   ó   nonexistent@example.orgr   r   r   r   r   r   r   r   N)
r	   r   r   r   r   r   r   r   r   r   r   s         r&   Útest_bounceMessageBytesz#BounceTests.test_bounceMessageBytes+   sÂ   € ô $×2Ñ2Üðóð "Ø&ó
Ñˆ�R˜ð 	×Ñ˜ cÔ*Ø×Ñ˜Ð2Ô3Ü—l‘l×)Ñ)Ó+ˆØ× Ñ ¤¨!¯(©(°7Ó*;Ó!<Ó=ˆØ×Ñ˜˜d™Ð%9Ô:Ø×Ñ˜˜f™Ð'?Ô@Ø×Ñ˜˜i™Ð*UÕVr   c                óF  — t        j                  t        d«      ddd«      \  }}}| j                  |d«       | j                  |d«       t        j
                  j                  «       }|j                  t        |j                  d«      «      «      }| j                  |d   d«       | j                  |d	   d
«       | j                  |d   d«       | j                  |j                  «       «       |j                  «       }| j                  |d   j                  «       d«       y)z\
        Pass a custom transcript message to L{twisted.mail.bounce.generateBounce}.
        r)   r   r*   zCustom transcriptr   r   r   r   r   r   r   r   r   zCustom transcript
N)r	   r   r   r   r   r   r   r   r   r   Ú
assertTrueÚis_multipartÚget_payload)r    r!   r"   r#   r$   r%   Úpartss          r&   Ú"test_bounceMessageCustomTranscriptz.BounceTests.test_bounceMessageCustomTranscriptC   s  € ô $×2Ñ2Üðóð "Ø&Øó
Ñˆ�R˜ð 	×Ñ˜ cÔ*Ø×Ñ˜Ð2Ô3Ü—l‘l×)Ñ)Ó+ˆØ× Ñ ¤¨!¯(©(°7Ó*;Ó!<Ó=ˆØ×Ñ˜˜d™Ð%9Ô:Ø×Ñ˜˜f™Ð'?Ô@Ø×Ñ˜˜i™Ð*UÔVØ�‰˜×)Ñ)Ó+Ô,Ø× Ñ Ó"ˆØ×Ñ˜˜q™×-Ñ-Ó/Ð1FÕGr   c                óp  — t        j                   |||z   «      dd«      \  }}}t        j                  j	                  «       }|j                  t        |j                  d«      «      «      }| j                  |d   d«       | j                  |d   d«       | j                  |d   d«       | j                  |j                  «       «       |j                  «       }	|	d	   j                  «       }
t        |t        «      r|j                  d«      }n|}| j                  |
d
   j                  «       dz   |«       y)zU
        Pass a really big message to L{twisted.mail.bounce.generateBounce}.
        r   r   r   r   r   r   r   r   é   r   ú
N)r	   r   r   r   r   r   r   r   r   r-   r.   r/   Ú
isinstanceÚbytes)r    ÚheaderÚmessageÚioTyper!   r"   r#   r$   r%   r0   ÚinnerMessageÚmessageTexts               r&   Ú_bounceBigMessagezBounceTests._bounceBigMessage_   s  € ô $×2Ñ2Ù�6˜GÑ#Ó$Ð&:Ð<Uó
Ñˆ�R˜ô —l‘l×)Ñ)Ó+ˆØ× Ñ ¤¨!¯(©(°7Ó*;Ó!<Ó=ˆØ×Ñ˜˜d™Ð%9Ô:Ø×Ñ˜˜f™Ð'?Ô@Ø×Ñ˜˜i™Ð*UÔVØ�‰˜×)Ñ)Ó+Ô,Ø× Ñ Ó"ˆØ˜Q‘x×+Ñ+Ó-ˆÜ�gœuÔ%Ø!Ÿ.™.¨Ó1‰Kà!ˆKØ×Ñ˜ a™×4Ñ4Ó6¸Ñ=¸{ÕKr   c                óŽ   — d}| j                  |ddz  t        «       | j                  |j                  d«      ddz  t        «       y)zj
        L{twisted.mail.bounce.generateBounce} with big L{unicode} and
        L{bytes} messages.
        r)   s
   Test test
i'  r   z
More test
N)r<   r   r   r   )r    r7   s     r&   Útest_bounceBigMessagez!BounceTests.test_bounceBigMessagev   sB   € ð
ˆð 	×Ñ˜v ~¸Ñ'=¼wÔGØ×Ñ˜vŸ}™}¨WÓ5°}ÀuÑ7LÌhÕWr   N)ÚreturnÚNone)r7   r   r8   r   r9   zCallable[[AnyStr], IO[AnyStr]]r?   r@   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   r+   r1   r<   r>   © r   r&   r   r      sI   „ ñóWó0Wó0Hð8LØðLØ'-ðLØ7UðLà	óLô.Xr   r   )Ú
__future__r   Úemail.messager   Úemail.parserÚior   r   Útypingr   r   r   Útwisted.mailr	   Útwisted.trialr
   ÚTestCaser   rE   r   r&   ú<module>rN      s5   ðõ #ã Û ß  ß 'Ñ 'å Ý "ôtX�(×#Ñ#õ tXr   