3
ûâde£  ã               @   sˆ   d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZ dd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )z²

    webencodings.tests
    ~~~~~~~~~~~~~~~~~~

    A basic test suite for Encoding.

    :copyright: Copyright 2012 by Simon Sapin
    :license: BSD, see LICENSE for details.

é    )Úunicode_literalsé   )	ÚlookupÚLABELSÚdecodeÚencodeÚiter_decodeÚiter_encodeÚIncrementalDecoderÚIncrementalEncoderÚUTF8c             O   s4   y|||Ž W n | k
r"   d S X t d|  ƒ‚d S )NzDid not raise %s.)ÚAssertionError)Ú	exceptionÚfunctionÚargsÚkwargs© r   ú=/tmp/pip-build-red6nood/pip/pip/_vendor/webencodings/tests.pyÚassert_raises   s
    r   c               C   s  t dƒjdkst‚t dƒjdks$t‚t dƒjdks6t‚t dƒjdksHt‚t dƒjdksZt‚t dƒjdkslt‚t dƒjdks~t‚t dƒd ksŽt‚t dƒd ksžt‚t d	ƒjd
ks°t‚t dƒjd
ksÂt‚t dƒjd
ksÔt‚t dƒjd
ksæt‚t dƒd ksöt‚t dƒd k�st‚d S )Nzutf-8zUtf-8zUTF-8Úutf8zutf8 z 
utf8	Úu8u   utf-8Â zUS-ASCIIzwindows-1252z
iso-8859-1Úlatin1ZLATIN1zlatin-1u   LATÄ°N1)r   Únamer   r   r   r   r   Útest_labels   s    r   c              C   s  xæt D ]Þ} td| ƒdt| ƒfks$t‚td| ƒdks6t‚xLdD ]D}tdg| | ƒ\}}t|ƒg ksdt‚ttdg| | ƒƒg ks<t‚q<W t| ƒ}|jdƒdksžt‚|jddd�dks´t‚t	| ƒ}|jdƒdksÎt‚|jddd�dkst‚qW x&t
t jƒ ƒD ]}t|ƒj|ksöt‚qöW d S )	Nó    Ú r   r   é   T)Úfinal)r   r   r   )r   r   r   r   r   r   Úlistr	   r
   r   ÚsetÚvaluesr   )ÚlabelÚrepeatÚoutputÚ_ÚdecoderÚencoderr   r   r   r   Útest_all_labels0   s    

 r'   c               C   sT   t ttddƒ t ttddƒ t ttg dƒ t ttg dƒ t ttdƒ t ttdƒ d S )Ns   ï»¿Ã©Úinvalidõ   Ã©)r   ÚLookupErrorr   r   r   r	   r
   r   r   r   r   r   Útest_invalid_labelC   s    r+   c               C   s¶  t ddƒdtdƒfkst‚t dtdƒƒdtdƒfks8t‚t ddƒdtdƒfksRt‚t dtƒdtdƒfkslt‚t ddƒdtdƒfks†t‚t d	dƒdtdƒfks t‚t d
dƒdtdƒfksºt‚t ddƒdtdƒfksÔt‚t ddƒdtdƒfksît‚t ddƒdtdƒfk�s
t‚t ddƒdtdƒfk�s&t‚t ddƒdtdƒfk�sBt‚t ddƒdtdƒfk�s^t‚t ddƒdtdƒfk�szt‚t ddƒdtdƒfk�s–t‚t ddƒdtdƒfk�s²t‚d S )Nó   €r   u   â‚¬s   Ã©r   r)   Úasciiu   ÃƒÂ©s   ï»¿Ã©s   þÿ ézutf-16bes   ÿþé zutf-16les   þÿé u   î¤€s   ÿþ és    ézUTF-16BEs   é zUTF-16LEzUTF-16)r   r   r   r   r   r   r   r   Útest_decodeL   s     r.   c               C   sp   t ddƒdkst‚t ddƒdks$t‚t ddƒdks6t‚t ddƒdksHt‚t ddƒdksZt‚t dd	ƒd
kslt‚d S )Nr)   r   ó   ér   s   Ã©zutf-16s   é zutf-16lezutf-16bes    é)r   r   r   r   r   r   Útest_encodeb   s    r0   c              C   sŽ  dd„ } | g dƒdkst ‚| dgdƒdks.t ‚| dgdƒdksBt ‚| dgdƒd	ksVt ‚| d
dgdƒd	kslt ‚| ddgdƒd	ks‚t ‚| dgdƒdks–t ‚| dgdƒdksªt ‚| dddgdƒdksÂt ‚| dddgdƒdksÚt ‚| ddddddgdƒdksøt ‚| dgdƒdk�st ‚| dgdƒdk�s$t ‚| dgdƒdk�s:t ‚| dgdƒdk�sPt ‚| ddddddgdƒdk�spt ‚| dddgd ƒd!k�sŠt ‚d S )"Nc             S   s   t | |ƒ\}}dj|ƒS )Nr   )r   Újoin)ÚinputÚfallback_encodingr#   Ú	_encodingr   r   r   Úiter_decode_to_stringl   s    z/test_iter_decode.<locals>.iter_decode_to_stringr   r   r   r/   r)   s   helloZhellos   hes   llos   helló   os   Ã©u   ÃƒÂ©s   ï»¿Ã©s   ï»¿ó   Ãó   ©ó   au   aï¿½ó   ïs   »¿Ãs   ï»u   Ã¯Â»s   þÿ és   ÿþé ó   ÿs   þéó    s   hézx-user-definedu   hïŸ©llo)r   )r5   r   r   r   Útest_iter_decodek   s.    r=   c               C   sð   dj tg dƒƒdkst‚dj tdgdƒƒdks2t‚dj tdgdƒƒdksLt‚dj tddddgdƒƒdkslt‚dj tddddgdƒƒdksŒt‚dj tddddgdƒƒdks¬t‚dj tddddgd	ƒƒd
ksÌt‚dj tddddgdƒƒdksìt‚d S )Nr   r   r   r)   r/   zutf-16s   é zutf-16lezutf-16bes    éu   hïŸ©Zllozx-user-defineds   héllo)r1   r	   r   r   r   r   r   Útest_iter_encode‡   s        r>   c              C   s@   d} d}d} d}t | dƒ|tdƒfks*t‚t|dƒ| ks<t‚d S )Ns   2,OÙ#ËÉ»tÏ¨Êu   2,OïŸ™#ïŸ‹ïŸ‰ïž»tïŸ�ïž¨ïŸŠs   aaZaazx-user-defined)r   r   r   r   )ÚencodedÚdecodedr   r   r   Útest_x_user_defined“   s    rA   N)Ú__doc__Ú
__future__r   r   r   r   r   r   r   r	   r
   r   r   r   r   r'   r+   r.   r0   r=   r>   rA   r   r   r   r   Ú<module>   s   ,			