
    [                         S SK r S SKrS SKrS SKrSr " S S\R                  5      r\S:X  a  \R                  " 5         gg)    Nidna2008c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)IDNACodecTests   c                 n    SSK Jn  UR                  5       U l        U R                  R	                  5         g )N   )	test_idna) r	   	IDNATests	idnatestssetUp)selfr	   s     9platform/gsutil/third_party/idna/tests/test_idna_codec.pyr   IDNACodecTests.setUp   s%    ",,.    c                     U R                  [        R                  " [        5      R                  [
        R                  R                  5        g N)assertIscodecslookup
CODEC_NAMEincrementalencoderidnacodecIncrementalEncoderr   s    r   	testCodecIDNACodecTests.testCodec   s)    fmmJ/BBDJJDaDabr   c                 8    U R                   R                  S S9  g )Nc                 8    [         R                  " U [        5      $ r   )r   decoder   objs    r   <lambda>1IDNACodecTests.testDirectDecode.<locals>.<lambda>       fmmC6Tr   )r!   r   test_decoder   s    r   testDirectDecodeIDNACodecTests.testDirectDecode       ""*T"Ur   c                 :    U R                   R                  S SS9  g )Nc                 ,    U R                  [        5      $ r   )r!   r   r"   s    r   r$   3IDNACodecTests.testIndirectDecode.<locals>.<lambda>       cjj6Lr   Tr!   skip_strr'   r   s    r   testIndirectDecode!IDNACodecTests.testIndirectDecode   s    ""*LW["\r   c                 8    U R                   R                  S S9  g )Nc                 8    [         R                  " U [        5      $ r   )r   encoder   r"   s    r   r$   1IDNACodecTests.testDirectEncode.<locals>.<lambda>   r&   r   r6   r   test_encoder   s    r   testDirectEncodeIDNACodecTests.testDirectEncode   r+   r   c                 :    U R                   R                  S SS9  g )Nc                 ,    U R                  [        5      $ r   )r6   r   r"   s    r   r$   3IDNACodecTests.testIndirectEncode.<locals>.<lambda>    r/   r   T)r6   
skip_bytesr9   r   s    r   testIndirectEncode!IDNACodecTests.testIndirectEncode   s    ""*LY]"^r   c                 <    S nU R                   R                  USS9$ )Nc                     [        U [        5      (       a  [        U S5      n [        R                  " U 5      n[
        R                  " [        5      " U5      nUR                  5       $ )Nascii)	
isinstancestrbytesioBytesIOr   	getreaderr   readr#   bufferstreams      r   r!   /IDNACodecTests.testStreamReader.<locals>.decode#   sI    #s##C)ZZ_F%%j1&9F;;= r   Tr0   r'   )r   r!   s     r   testStreamReaderIDNACodecTests.testStreamReader"   s#    	! ~~))$)GGr   c                 :    S nU R                   R                  US9$ )Nc                     [         R                  " 5       n[        R                  " [        5      " U5      nUR                  U 5        UR                  5         UR                  5       $ r   )rI   rJ   r   	getwriterr   writeflushgetvaluerM   s      r   r6   /IDNACodecTests.testStreamWriter.<locals>.encode-   sD    ZZ\F%%j1&9FLLLLN??$$r   r8   r9   )r   r6   s     r   testStreamWriterIDNACodecTests.testStreamWriter,   s!    	% ~~)))88r   c           	         SnU HF  u  p#U R                  SR                  [        R                  " S U 5       [        5      5      U5        MH     [        R
                  " [        5      " 5       nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  SS	5      S
5        UR                  5         U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  SS	5      S5        g )N)z
python.orgs
   python.org)zpython.org.s   python.org.)u   pythön.orgs   xn--pythn-mua.org)u   pythön.org.s   xn--pythn-mua.org.r
   c              3   :   #    U  H  n[        U/5      v   M     g 7fr   )rH   ).0cs     r   	<genexpr>8IDNACodecTests.testIncrementalDecoder.<locals>.<genexpr>B   s     *Gw!5!::ws   s   xn--xams	   ple-9ta.ou	   äxample.s   rgr   Torgs   rg.zorg.)assertEqualjoinr   
iterdecoder   getincrementaldecoderr!   reset)r   incremental_testsdecodedencodeddecoders        r   testIncrementalDecoder%IDNACodecTests.testIncrementalDecoder6   s_   
 !2G))*Gw*GTU !2 ..z:<NN 		
 	NN 		
 	.3T2E:NN 		
 	NN 		
 	/8T2B7r   c           	         SnU H?  u  p#U R                  SR                  [        R                  " U[        5      5      U5        MA     [        R
                  " [        5      " 5       nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  SS5      S5        UR                  5         U R                  UR                  S5      S5        U R                  UR                  S	5      S
5        U R                  UR                  SS5      S5        g )Nr]   r   u   äxz	ample.orgs   xn--xample-9ta.r
   Ts   orgz
ample.org.s   xn--xample-9ta.org.)rd   re   r   
iterencoder   getincrementalencoderr6   rh   )r   ri   rj   rk   encoders        r   testIncrementalEncoder%IDNACodecTests.testIncrementalEncoderf   s    
 !2GSXXf&7&7&LMwW !2 ..z:<0#646HID16:0#657MND137r   )r   N)__name__
__module____qualname____firstlineno__r   r   r)   r2   r;   rA   rQ   rZ   rm   rs   __static_attributes__ r   r   r   r      s;    cV]V_H9.8`8r   r   __main__)
r   rI   unittest
idna.codecr   r   TestCaser   ru   mainrz   r   r   <module>r      sE     	  
n8X&& n8b zMMO r   