
    daf                         d dl Z d dlmZ d dlmZ d dlmZ  G d de      Z G d de      Z G d	 d
e      Z	 G d de      Z
 G d de      Z G d de      Zedk(  r e j                          yy)    N)_encoded_words)errors)TestEmailBasec                   (    e Zd Zg fdZd Zd Zd Zy)TestDecodeQc                 |    t        j                  |      \  }}| j                  ||       | j                  ||       y N)_ewdecode_qassertEqualassertDefectsEqualselfsource	ex_result
ex_defectsresultdefectss         >/root/Python-3.12.4/Lib/test/test_email/test__encoded_words.py_testzTestDecodeQ._test	   4    ,,v.+4    c                 (    | j                  dd       y )N   foobarr   r   s    r   test_no_encodedzTestDecodeQ.test_no_encoded   s    

9i(r   c                 L    | j                  dd       | j                  dd       y )Ns   foo=20bar=20   foo bar s   foo_bar_r   r   s    r   test_spaceszTestDecodeQ.test_spaces   s    

?K0

;,r   c                 (    | j                  dd       y )Ns   foo=20=20=21=2Cbars
   foo  !,barr   r   s    r   test_run_of_encodedzTestDecodeQ.test_run_of_encoded   s    

(-8r   N)__name__
__module____qualname__r   r   r    r"    r   r   r   r      s    24 5
)-9r   r   c                   4    e Zd Zg fdZd Zd Zd Zd Zd Zy)TestDecodeBc                 |    t        j                  |      \  }}| j                  ||       | j                  ||       y r	   )r
   decode_br   r   r   s         r   r   zTestDecodeB._test   r   r   c                 (    | j                  dd       y )Ns   Zm9v   foor   r   s    r   test_simplezTestDecodeB.test_simple    s    

7F#r   c                     | j                  ddt        j                  g       | j                  ddt        j                  g       y )Ns   dmk   vis   dg   vr   r   InvalidBase64PaddingDefectr   s    r   test_missing_paddingz TestDecodeB.test_missing_padding#   s4    

656#D#D"EF

5$!B!B CDr   c                 H    | j                  ddt        j                  g       y )Ns   dmk===r/   r   r   InvalidBase64CharactersDefectr   s    r   test_invalid_characterz"TestDecodeB.test_invalid_character)   s    

=%&*N*N)OPr   c                 f    | j                  ddt        j                  t        j                  g       y )Ns   dmkr/   r   r   r6   r2   r   s    r   &test_invalid_character_and_bad_paddingz2TestDecodeB.test_invalid_character_and_bad_padding,   s*    

:uv'K'K'-'H'H'J 	Kr   c                 H    | j                  ddt        j                  g       y )Ns   abcde)r   r   InvalidBase64LengthDefectr   s    r   test_invalid_lengthzTestDecodeB.test_invalid_length0   s    

8X(H(H'IJr   N)	r#   r$   r%   r   r-   r3   r7   r:   r=   r&   r   r   r(   r(      s'    24 5
$EQKKr   r(   c                   z    e Zd Zd Zddg fdZd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestDecodec                    | j                  t              5  t        j                  d       d d d        | j                  t              5  t        j                  d       d d d        | j                  t              5  t        j                  d       d d d        | j                  t              5  t        j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   UxY w# 1 sw Y   y xY w)Nz
=?badone?=z=? z=?utf-8?X?somevalue?=)assertRaises
ValueErrorr
   decodeKeyErrorr   s    r   test_wrong_format_input_raisesz)TestDecode.test_wrong_format_input_raises6   s    z* 	%JJ|$	%z* 	JJt	z* 	JJrN	x( 	0JJ./	0 	0	% 	%	 		 		0 	0s/   C	C<C&/C2CC#&C/2C;us-asciirA   c                     t        j                  |      \  }}}}	| j                  ||       | j                  ||       | j                  ||       | j                  |	|       y r	   )r
   rD   r   r   )
r   r   r   charsetlangr   rescharlds
             r   r   zTestDecode._test@   sX    **V,T1af%w'D!7+r   c                 (    | j                  dd       y )Nz=?us-ascii?q?foo?=foor   r   s    r   test_simple_qzTestDecode.test_simple_qG       

'/r   c                 (    | j                  dd       y )Nz=?us-ascii?b?dmk=?=vir   r   s    r   test_simple_bzTestDecode.test_simple_bJ       

($/r   c                 (    | j                  dd       y )Nz=?us-ascii?Q?foo?=rP   r   r   s    r   test_q_case_ignoredzTestDecode.test_q_case_ignoredM   rR   r   c                 (    | j                  dd       y )Nz=?us-ascii?B?dmk=?=rT   r   r   s    r   test_b_case_ignoredzTestDecode.test_b_case_ignoredP   rV   r   c                 *    | j                  ddd       y )Nz!=?latin-1?q?=20F=fcr=20Elise=20?=u    Für Elise zlatin-1r   r   s    r   test_non_trivial_qzTestDecode.test_non_trivial_qS   s    

6	Rr   c                 j    | j                  dj                  dd      dt        j                  g       y )Ns   =?us-ascii?q?=20foo?=rG   surrogateescapeu    foor   )r   rD   r   UndecodableBytesDefectr   s    r   test_q_escaped_bytes_preservedz)TestDecode.test_q_escaped_bytes_preservedV   s6    

/66z7HJ$;;< 	 	>r   c                     | j                  dj                  dd      dt        j                  t        j                  g       y )Ns   =?us-ascii?b?dmk?=rG   r^   rT   r_   )r   rD   r   r6   r2   r   s    r   ,test_b_undecodable_bytes_ignored_with_defectz7TestDecode.test_b_undecodable_bytes_ignored_with_defect\   sA    

,33J3DF88557 	 	8r   c                 J    | j                  ddt        j                  g       y )Nz=?us-ascii?b?dmk===?=rT   r_   r5   r   s    r   (test_b_invalid_bytes_ignored_with_defectz3TestDecode.test_b_invalid_bytes_ignored_with_defectd   s&    

.$BBC 	 	Er   c                 h    | j                  ddt        j                  t        j                  g       y )Nz=?us-ascii?b?dmk?=rT   r_   r9   r   s    r   &test_b_invalid_bytes_incorrect_paddingz1TestDecode.test_b_invalid_bytes_incorrect_paddingi   s0    

+88557 	 	8r   c                 J    | j                  ddt        j                  g       y )Nz=?us-ascii?b?dmk?=rT   r_   r1   r   s    r   test_b_padding_defectz TestDecode.test_b_padding_defectp   s&    

'%@@A 	 	Cr   c                 ,    | j                  ddd       y )Nz=?us-ascii*jive?q?test?=testjiverJ   r   r   s    r   test_nonnull_langzTestDecode.test_nonnull_langu   s    

-vF
Cr   c                 N    | j                  ddj                  dd      dg        y )N=?unknown-8bit?q?foo=ACbar?=   foobarasciir^   unknown-8bitrI   r   )r   rD   r   s    r   test_unknown_8bit_charsetz$TestDecode.test_unknown_8bit_charsetx   s-    

1 ''1BC+ 	 	!r   c                 l    | j                  ddj                  dd      dt        j                  g       y )Nz=?foobar?q?foo=ACbar?=rq   rr   r^   foobarrt   r   rD   r   CharsetErrorr   s    r   test_unknown_charsetzTestDecode.test_unknown_charset~   s6    

+ ''1BC%$112	 	 	4r   c                 l    | j                  ddj                  dd      dt        j                  g       y )Nu   =?utf-8?q?foo=ACbar?=rq   rr   r^   u   utf-8rt   rx   r   s    r   !test_invalid_character_in_charsetz,TestDecode.test_invalid_character_in_charset   s6    

< ''1BC6$112	 	 	4r   c                 ,    | j                  ddd       y )Nz=?utf-8?q?=C3=89ric?=u   Éricutf-8rI   r   r   s    r   test_q_nonasciizTestDecode.test_q_nonascii   s    

*" 	 	$r   N)r#   r$   r%   rF   r   rQ   rU   rX   rZ   r\   ra   rc   re   rg   ri   rn   ru   rz   r|   r   r&   r   r   r?   r?   4   sd    0 -7R ,0000S>8E
8C
D!44$r   r?   c                   $    e Zd Zd Zd Zd Zd Zy)TestEncodeQc                 N    | j                  t        j                  |      |       y r	   )r   r
   encode_q)r   srcexpecteds      r   r   zTestEncodeQ._test   s    c*H5r   c                 (    | j                  dd       y )Nr   rw   r   r   s    r   test_all_safezTestEncodeQ.test_all_safe   s    

9h'r   c                 (    | j                  dd       y )Nr   foo_bar_r   r   s    r   r    zTestEncodeQ.test_spaces   s    

;
+r   c                 (    | j                  dd       y )Ns
   foo  ,,barzfoo__=2C=2Cbarr   r   s    r   test_run_of_encodablesz"TestEncodeQ.test_run_of_encodables   s    

="23r   N)r#   r$   r%   r   r   r    r   r&   r   r   r   r      s    6(,4r   r   c                       e Zd Zd Zd Zy)TestEncodeBc                 N    | j                  t        j                  d      d       y )Nr,   Zm9vr   r
   encode_br   s    r   r-   zTestEncodeB.test_simple   s    f-v6r   c                 N    | j                  t        j                  d      d       y )Nr/   zdmk=r   r   s    r   test_paddingzTestEncodeB.test_padding   s    e,f5r   N)r#   r$   r%   r-   r   r&   r   r   r   r      s    76r   r   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)
TestEncodec                 R    | j                  t        j                  ddd      d       y )NrP   r~   q=?utf-8?q?foo?=r   r
   encoder   s    r   test_qzTestEncode.test_q   s     E7C8:KLr   c                 R    | j                  t        j                  ddd      d       y )NrP   r~   bz=?utf-8?b?Zm9v?=r   r   s    r   test_bzTestEncode.test_b   s     E7C8:LMr   c                 P    | j                  t        j                  dd      d       y )NrP   r~   r   r   r   s    r   test_auto_qzTestEncode.test_auto_q   s    E735FGr   c                 P    | j                  t        j                  dd      d       y )Nzvi.r~   z=?utf-8?q?vi=2E?=r   r   s    r    test_auto_q_if_short_mostly_safez+TestEncode.test_auto_q_if_short_mostly_safe   s    E735HIr   c                 P    | j                  t        j                  dd      d       y )Nz.....r~   z=?utf-8?b?Li4uLi4=?=r   r   s    r   test_auto_b_if_enough_unsafez'TestEncode.test_auto_b_if_enough_unsafe   s    GW57MNr   c                 P    | j                  t        j                  dd      d       y )Nzvi.vi.vi.vi.vi.r~   z =?utf-8?b?dmkudmkudmkudmkudmku?=r   r   s    r   test_auto_b_if_long_unsafez%TestEncode.test_auto_b_if_long_unsafe   s!    $5w?;	=r   c                 P    | j                  t        j                  dd      d       y )Nzvi vi vi.vi r~   z=?utf-8?q?vi_vi_vi=2Evi_?=r   r   s    r   test_auto_q_if_long_mostly_safez*TestEncode.test_auto_q_if_long_mostly_safe   s     NG<5	7r   c                 N    | j                  t        j                  d      d       y )NrP   r   r   r   s    r   test_utf8_defaultzTestEncode.test_utf8_default   s    E*,=>r   c                 R    | j                  t        j                  dd      d       y )NrP   rl   rm   z=?utf-8*jive?q?foo?=r   r   s    r   	test_langzTestEncode.test_lang   s    E79OPr   c                 R    | j                  t        j                  dd      d       y )Nu	   foobarrs   r   rp   r   r   s    r   test_unknown_8bitzTestEncode.test_unknown_8bit   s     NNK7	9r   N)r#   r$   r%   r   r   r   r   r   r   r   r   r   r   r&   r   r   r   r      s:    MNHJO=7?Q9r   r   __main__)unittestemailr   r
   r   test.test_emailr   r   r(   r?   r   r   r   r#   mainr&   r   r   <module>r      sy     '  )9- 9$K- K6[$ [$|4- 46- 6!9 !9H zHMMO r   