U
    yc                     @   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   =/tmp/pip-build-0we0fmvo/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stt dd kstt d	jd
kstt djd
kstt djd
kstt djd
kstt dd kst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st|jddddkstt	| }|ddkst|jddddkstqt
t  D ]}t|j|kstqd 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stt d	ddtdfkstt d
ddtdfkstt dddtdfkstt dddtdfkst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stt dddtdfkst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st | dgddkst | dgddkst | dddgddkst | dddgddkst | ddddddgddkst | 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st 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std tddddgddkstd tddddgd	d
kstd tddddgddkstd S )Nr   r   r   r+   r9   r:   r7   r5   r3   r6   u   hZllorH   s   hllo)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   ,			