
    <ey                         d dl Z d dlZd dlZd dlZd dlZd dlmZ dZdZd Z	 G d de j
                  Zedk    r e j                     dS dS )	    N)supports_  Here's a bunch of special=20

=A1=A2=A3=A4=A5=A6=A7=A8=A9
=AA=AB=AC=AD=AE=AF=B0=B1=B2=B3
=B4=B5=B6=B7=B8=B9=BA=BB=BC=BD=BE
=BF=C0=C1=C2=C3=C4=C5=C6
=C7=C8=C9=CA=CB=CC=CD=CE=CF
=D0=D1=D2=D3=D4=D5=D6=D7
=D8=D9=DA=DB=DC=DD=DE=DF
=E0=E1=E2=E3=E4=E5=E6=E7
=E8=E9=EA=EB=EC=ED=EE=EF
=F0=F1=F2=F3=F4=F5=F6=F7
=F8=F9=FA=FB=FC=FD=FE=FF

characters... have fun!
s   Here's a bunch of special 













characters... have fun!
c                 *      fd} j         |_         |S )Nc                 4    |            t           j        t           j        st           j        }t           j        }	 d t           _        d t           _         |            |t           _        |t           _        d S # |t           _        |t           _        w xY wd S N)quoprib2a_qpa2b_qp)self	oldencode	olddecodetestfuncs      '/usr/lib/python3.11/test/test_quopri.pynewtestz)withpythonimplementation.<locals>.newtest0   s    =$(AII* $ $ ) ) !* ))))) )B(As   #A; ;B)__name__)r   r   s   ` r   withpythonimplementationr   /   s.    * * * * *  (GN    c                   \   e Zd Zddddddddd	d
deeffZdZdZed             Z	ed             Z
ed             Zed             Zed             Zed             Zed             Zed             Zed             Z ej                    d             Z ej                    d             ZdS )QuopriTestCase)   hellor   )!   hello
        there
        worldr   )"   hello
        there
        world
r   )s   s	   =81=82=83)s   hello s   hello=20)s   hello	s   hello=09)sl   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs~   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=D8=D9=DA=DB=DC=DD=DE=DFx=
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)L   yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr   )sM   zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzsO   zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz=
zz)s   zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzs   zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz=
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz)s   yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzs   yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz))   hello worlds   hello=20world)s   hello	worlds   hello=09world))r      hello_world)r   s   hello=5Fworldc                 p    | j         D ]-\  }}|                     t          j        |          |           .d S r   )STRINGSassertEqualr   encodestringr
   pes      r   test_encodestringz QuopriTestCase.test_encodestring   E    L 	8 	8DAqV033Q7777	8 	8r   c                 p    | j         D ]-\  }}|                     t          j        |          |           .d S r   )r   r   r   decodestringr   s      r   test_decodestringz QuopriTestCase.test_decodestring   r#   r   c                 `    d\  }}|                      t          j        |          |           d S )N)s   123=fours	   123==four)r   r   r%   )r
   decoded_valueencoded_values      r   test_decodestring_double_equalsz.QuopriTestCase.test_decodestring_double_equals   s6     (C$},];;]KKKKKr   c                     | j         D ]?\  }}|                     t          j        t          j        |                    |           @d S r   )r   r   r   r%   r   r   s      r   test_idempotent_stringz%QuopriTestCase.test_idempotent_string   sT    L 	M 	MDAqV01DQ1G1GHH!LLLL	M 	Mr   c                     | j         D ]k\  }}t          j        |          }t          j                    }t          j        ||d           |                     |                                |           ld S )NF	quotetabs)r   ioBytesIOr   encoder   getvaluer
   r    r!   infpoutfps        r   test_encodezQuopriTestCase.test_encode   ss    L 	2 	2DAq:a==DJLLEM$7777U^^--q1111		2 	2r   c                     | j         D ]i\  }}t          j        |          }t          j                    }t          j        ||           |                     |                                |           jd S r   )r   r0   r1   r   decoder   r3   r4   s        r   test_decodezQuopriTestCase.test_decode   sn    L 	2 	2DAq:a==DJLLEM$&&&U^^--q1111		2 	2r   c                     | j         D ]W\  }}|                     t          j        |d          |           |                     t          j        |          |           Xd S )NTr.   )ESTRINGSr   r   r   r%   r   s      r   test_embedded_wszQuopriTestCase.test_embedded_ws   sk    M 	8 	8DAqV0dCCCQGGGV033Q7777	8 	8r   c                 t    | j         D ]/\  }}|                     t          j        |d          |           0d S NT)header)HSTRINGSr   r   r   r   s      r   test_encode_headerz!QuopriTestCase.test_encode_header   N    M 	E 	EDAqV04@@@!DDDD	E 	Er   c                 t    | j         D ]/\  }}|                     t          j        |d          |           0d S r?   )rA   r   r   r%   r   s      r   test_decode_headerz!QuopriTestCase.test_decode_header   rC   r   c                 L   | j         d         \  }}t          j        t          j        dgt          j        t          j                  }|                     |j        j                   |	                    |          \  }}|
                    d                                          }|
                    d                                          }t          t          |                    D ]$}|                     ||         ||                    %|                     ||           d S )N-mquopristdinstdoutlatin-1)r   
subprocessPopensys
executablePIPE
addCleanuprK   closecommunicater9   
splitlinesrangelenr   )r
   r    r!   processcoutcerris          r   test_scriptencodez QuopriTestCase.test_scriptencode   s   b!A"CNJ#?)3R R R,---((++
d {{9%%0022HHY**,,s4yy!! 	, 	,AT!Wad++++q!!!!!r   c                    | j         d         \  }}t          j        t          j        ddgt          j        t          j                  }|                     |j        j                   |	                    |          \  }}|
                    d          }|
                    d          }|                     |                                |                                           d S )NrG   rH   z-drI   rL   )r   rM   rN   rO   rP   rQ   rR   rK   rS   rT   r9   r   rU   )r
   r    r!   rX   rY   rZ   s         r   test_scriptdecodez QuopriTestCase.test_scriptdecode   s    b!A"CNJ#E)3R R R,---((++
d{{9%%HHY**ALLNN;;;;;r   N)r   
__module____qualname__	DECSAMPLE	ENCSAMPLEr   r<   rA   r   r"   r&   r*   r,   r7   r:   r=   rB   rE   r   requires_subprocessr\   r^    r   r   r   r   A   s       
 		
	 	( !	6	Y
	
	Q	Q 
I_0
Gf
H
H
 8 8 8 8 8 8 L L L M M M 2 2 2 2 2 2 8 8 8
 E E E E E E !W """ " #""  !W ""< < #"< < <r   r   __main__)unittestrO   r0   rM   r   testr   rb   ra   r   TestCaser   r   mainrd   r   r   <module>rj      s                       	&	&  $Q< Q< Q< Q< Q<X& Q< Q< Q<f zHMOOOOO r   