
    [                         d dl Z d dlZd dlZd dlZdZ G d dej                        Zedk(  r ej                          yy)    Nidna2008c                   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)IDNACodecTestsc                 n    ddl m} |j                         | _        | j                  j	                          y )N   )	test_idna) r   	IDNATests	idnatestssetUp)selfr   s     9platform/gsutil/third_party/idna/tests/test_idna_codec.pyr   zIDNACodecTests.setUp   s%    ",,.    c                     | j                  t        j                  t              j                  t
        j                  j                         y N)assertIscodecslookup
CODEC_NAMEincrementalencoderidnacodecIncrementalEncoderr   s    r   	testCodeczIDNACodecTests.testCodec   s)    fmmJ/BBDJJDaDabr   c                 >    | j                   j                  d        y )Nc                 6    t        j                  | t              S r   )r   decoder   objs    r   <lambda>z1IDNACodecTests.testDirectDecode.<locals>.<lambda>       fmmC6Tr   )r   r   test_decoder   s    r   testDirectDecodezIDNACodecTests.testDirectDecode       ""*T"Ur   c                 @    | j                   j                  d d       y )Nc                 ,    | j                  t              S r   )r   r   r   s    r   r!   z3IDNACodecTests.testIndirectDecode.<locals>.<lambda>       cjj6Lr   Tr   skip_strr#   r   s    r   testIndirectDecodez!IDNACodecTests.testIndirectDecode   s    ""*LW["\r   c                 >    | j                   j                  d        y )Nc                 6    t        j                  | t              S r   )r   encoder   r   s    r   r!   z1IDNACodecTests.testDirectEncode.<locals>.<lambda>   r"   r   r/   r   test_encoder   s    r   testDirectEncodezIDNACodecTests.testDirectEncode   r&   r   c                 @    | j                   j                  d d       y )Nc                 ,    | j                  t              S r   )r/   r   r   s    r   r!   z3IDNACodecTests.testIndirectEncode.<locals>.<lambda>    r)   r   T)r/   
skip_bytesr1   r   s    r   testIndirectEncodez!IDNACodecTests.testIndirectEncode   s    ""*LY]"^r   c                 B    d }| j                   j                  |d      S )Nc                     t        | t              rt        | d      } t        j                  |       } t        j                  t              |      }|j                         S )Nascii)	
isinstancestrbytesioBytesIOr   	getreaderr   readr    bufferstreams      r   r   z/IDNACodecTests.testStreamReader.<locals>.decode#   sH    #s#C)ZZ_F1V%%j1&9F;;= r   Tr*   r#   )r   r   s     r   testStreamReaderzIDNACodecTests.testStreamReader"   s#    	! ~~))$)GGr   c                 @    d }| j                   j                  |      S )Nc                     t        j                         } t        j                  t              |      }|j                  |        |j                          |j                         S r   )r>   r?   r   	getwriterr   writeflushgetvaluerB   s      r   r/   z/IDNACodecTests.testStreamWriter.<locals>.encode-   sF    ZZ\F1V%%j1&9FLLLLN??$$r   r0   r1   )r   r/   s     r   testStreamWriterzIDNACodecTests.testStreamWriter,   s!    	% ~~)))88r   c           	         d}|D ]E  \  }}| j                  dj                  t        j                  d |D        t                    |       G  t        j
                  t                     }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  dd	      d
       |j                          | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  dd	      d       y )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   4   K   | ]  }t        |g        y wr   )r=   ).0cs     r   	<genexpr>z8IDNACodecTests.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   testIncrementalDecoderz%IDNACodecTests.testIncrementalDecoder6   sc   
 !2GW))*Gw*GTU !2 ;&..z:<NN 		
 	NN 		
 	.3T2E:NN 		
 	NN 		
 	/8T2B7r   c           	      z   d}|D ]>  \  }}| j                  dj                  t        j                  |t                    |       @  t        j
                  t                     }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  dd      d       |j                          | j                  |j                  d      d       | j                  |j                  d	      d
       | j                  |j                  dd      d       y )NrN   r   u   äxz	ample.orgs   xn--xample-9ta.r	   Ts   orgz
ample.org.s   xn--xample-9ta.org.)rT   rU   r   
iterencoder   getincrementalencoderr/   rX   )r   rY   rZ   r[   encoders        r   testIncrementalEncoderz%IDNACodecTests.testIncrementalEncoderf   s    
 !2GWSXXf&7&7&LMwW !2 ;&..z:<0#646HID16:0#657MND137r   N)__name__
__module____qualname__r   r   r%   r,   r3   r7   rE   rL   r]   rb    r   r   r   r      s;    cV]V_H9.8`8r   r   __main__)
r   r>   unittest
idna.codecr   r   TestCaser   rc   mainrf   r   r   <module>rl      sG     	  
n8X&& n8b zHMMO r   