
íÂÐZ	  ã               @   sÃ   d  Z  d d l Z d d l Z d d d d d	 d d d d d i Z e j d ƒ e j d ƒ d e j d ƒ d d i Z Gd d „  d e j ƒ Z Gd d „  d e j ƒ Z e	 d k r¿ e j
 ƒ  d S) zTests for josepy.b64.é    Ns   any carnal pleasure.ó   YW55IGNhcm5hbCBwbGVhc3VyZS4ó   =s   any carnal pleasureó   YW55IGNhcm5hbCBwbGVhc3VyZQó   ==s   any carnal pleasuró   YW55IGNhcm5hbCBwbGVhc3Vyó    s   any carnal pleasuó   YW55IGNhcm5hbCBwbGVhc3Us   any carnal pleasó   YW55IGNhcm5hbCBwbGVhcwéû   éï   s   --8éÿ   é   s   __8c               @   sX   e  Z d  Z d Z e d d „  ƒ Z d d „  Z d d „  Z d d	 „  Z d
 d „  Z	 d S)ÚB64EncodeTestzTests for josepy.b64.b64encode.c             C   s   d d l  m } | | ƒ S)Nr   )Ú	b64encode)Ú
josepy.b64r   )ÚclsÚdatar   © r   ú1/usr/lib/python3/dist-packages/josepy/b64_test.pyÚ_call   s    zB64EncodeTest._callc             C   s   |  j  |  j d ƒ d ƒ d  S)Nr   )ÚassertEqualr   )Úselfr   r   r   Ú
test_empty   s    zB64EncodeTest.test_emptyc             C   s=   x6 t  j t ƒ D]% \ } } |  j |  j | ƒ | ƒ q Wd  S)N)ÚsixÚ	iteritemsÚB64_URL_UNSAFE_EXAMPLESr   r   )r   ÚtextÚb64r   r   r   Útest_unsafe_url!   s    zB64EncodeTest.test_unsafe_urlc             C   sC   x< t  j t ƒ D]+ \ } \ } } |  j |  j | ƒ | ƒ q Wd  S)N)r   r   ÚB64_PADDING_EXAMPLESr   r   )r   r   r   Ú_r   r   r   Útest_different_paddings%   s    "z%B64EncodeTest.test_different_paddingsc             C   s   |  j  t |  j d ƒ d  S)Nzsome unicode)ÚassertRaisesÚ	TypeErrorr   )r   r   r   r   Ú"test_unicode_fails_with_type_error)   s    z0B64EncodeTest.test_unicode_fails_with_type_errorN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr   r   r   r!   r$   r   r   r   r   r      s   r   c               @   sp   e  Z d  Z d Z e d d „  ƒ Z d d „  Z d d „  Z d d	 „  Z d
 d „  Z	 d d „  Z
 d d „  Z d S)ÚB64DecodeTestzTests for josepy.b64.b64decode.c             C   s   d d l  m } | | ƒ S)Nr   )Ú	b64decode)r   r+   )r   r   r+   r   r   r   r   0   s    zB64DecodeTest._callc             C   s=   x6 t  j t ƒ D]% \ } } |  j |  j | ƒ | ƒ q Wd  S)N)r   r   r   r   r   )r   r   r   r   r   r   r   5   s    zB64DecodeTest.test_unsafe_urlc             C   sC   x< t  j t ƒ D]+ \ } \ } } |  j |  j | ƒ | ƒ q Wd  S)N)r   r   r   r   r   )r   r   r   r    r   r   r   Útest_input_without_padding9   s    "z(B64DecodeTest.test_input_without_paddingc             C   sG   x@ t  j t ƒ D]/ \ } \ } } |  j |  j | | ƒ | ƒ q Wd  S)N)r   r   r   r   r   )r   r   r   Zpadr   r   r   Útest_input_with_padding=   s    "z%B64DecodeTest.test_input_with_paddingc             C   s   |  j  |  j d ƒ d ƒ d  S)NZYQó   a)r   r   )r   r   r   r   Útest_unicode_with_asciiA   s    z%B64DecodeTest.test_unicode_with_asciic             C   s   |  j  t |  j d ƒ d  S)Nu   Ä…)r"   Ú
ValueErrorr   )r   r   r   r   Útest_non_ascii_unicode_failsD   s    z*B64DecodeTest.test_non_ascii_unicode_failsc             C   s   |  j  t |  j t ƒ  ƒ d  S)N)r"   r#   r   Úobject)r   r   r   r   Ú#test_type_error_no_unicode_or_bytesG   s    z1B64DecodeTest.test_type_error_no_unicode_or_bytesN)r%   r&   r'   r(   r)   r   r   r,   r-   r/   r1   r3   r   r   r   r   r*   -   s   r*   Ú__main__)r   r   )r   r   )r   r   )r   r   )r	   r   )r(   Zunittestr   r   Zint2byter   ZTestCaser   r*   r%   Úmainr   r   r   r   Ú<module>   s   