U
    +|j£  ã                   @   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   s6   z|||Ž W n | k
r$   Y d S X t d|  ƒ‚d S )NzDid not raise %s.©ÚAssertionError)Ú	exceptionÚfunctionÚargsÚkwargs© r   úfC:\Users\snmko\Desktop\web_content\django_cbt\venv\Lib\site-packages\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  t D ]Ú} td| ƒdt| ƒfks"t‚td| ƒdks4t‚dD ]D}tdg| | ƒ\}}t|ƒg ks`t‚ttdg| | ƒƒg ks8t‚q8t| ƒ}| d¡dks˜t‚|jddd�dks®t‚t	| ƒ}| d¡dksÈt‚|jddd�dkst‚qt
t  ¡ ƒD ]}t|ƒj|ksìt‚qìd S )Nó    Ú )r   r   é   T)Úfinal)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 )Nó   ï»¿Ã©Ú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   â‚¬ó   Ã©r   r+   Úasciiõ   ÃƒÂ©r)   ó   þÿ éúutf-16beó   ÿþé úutf-16les   þÿé u   î¤€s   ÿþ éó    ézUTF-16BEó   é zUTF-16LEzUTF-16)r   r   r   r   r   r   r   r   Útest_decodeL   s     r8   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   r/   úutf-16r7   r5   r3   r6   )r   r   r   r   r   r   Útest_encodeb   s    r;   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 |¡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   r9   r+   s   helloZhellos   hes   llos   helló   or/   r1   r)   s   ï»¿ó   Ãó   ©ó   au   aï¿½ó   ïs   »¿Ãs   ï»u   Ã¯Â»r2   r4   ó   ÿs   þéó    s   héúx-user-definedu   hïŸ©llor   )r@   r   r   r   Útest_iter_decodek   s€      ÿÿÿ  ÿÿÿ     ÿÿÿ     ÿÿÿ
  ÿÿÿrI   c                   C   sð   d  tg dƒ¡dkst‚d  tdgdƒ¡dks2t‚d  tdgdƒ¡dksLt‚d  tddddgdƒ¡dkslt‚d  tddddgdƒ¡dksŒt‚d  tddddgdƒ¡dks¬t‚d  tddddgd	ƒ¡d
ksÌt‚d  tddddgdƒ¡dksìt‚d S )Nr   r   r   r+   r9   r:   r7   r5   r3   r6   u   hïŸ©ZllorH   s   héllo)r<   r	   r   r   r   r   r   Útest_iter_encode‡   s"           ÿÿÿrJ   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aarH   )r   r   r   r   )ÚencodedÚdecodedr   r   r   Útest_x_user_defined“   s    rM   N)Ú__doc__Ú
__future__r   r   r   r   r   r   r   r	   r
   r   r   r   r   r(   r-   r8   r;   rI   rJ   rM   r   r   r   r   Ú<module>   s   ,			