
0c@_                 @   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   s>   y | | |   Wn |  k
 r) d  SYn Xt  d |    d  S)NzDid not raise %s.)AssertionError)	exceptionfunctionargskwargs r   =/tmp/pip-build-jynh7p1z/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 s6 t  t  d  j d k sQ t  t  d  j d k sl 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  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 sYt  t  d  d  k sq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  xVt  D]N}  t d |   d t |   f k s4 t  t d |   d k sO t  xs d d d g D]b } t d g | |   \ } } t |  g  k s t  t t d g | |    g  k s_ t  q_ Wt |   } | j d  d k s t  | j d d d d k st  t	 |   } | j d  d k s4t  | j d d d d k s t  q Wx5 t
 t  j    D]! } t |  j | k slt  qlWd  S)N     r   r      finalT)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   sp   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   sz  t  d d  d t d  f k s' t  t  d t d   d t d  f k sT t  t  d d  d t d  f k s{ t  t  d t  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 se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 sOt  t  d d  d t d  f k svt  d  S)Ns   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   s   t  d d  d k s t  t  d d  d k s6 t  t  d d  d k sQ t  t  d d  d k sl t  t  d d  d k s t  t  d d	  d
 k s t  d  S)Nr)   r   s   r   s   ézutf-16s    zutf-16lezutf-16bes    )r   r   r   r   r   r   test_encodeb   s    r.   c              C   sA  d d   }  |  g  d  d k s' t   |  d g d  d k sE t   |  d g d  d k sc t   |  d g d  d	 k s t   |  d
 d g d  d	 k s t   |  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 sGt   |  d d d d d d g d  d k st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 st   |  d d d d d d g d  d k st   |  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   s   r)   s   helloZhellos   hes   llos   hell   os   éu   Ã©s   ﻿és   ﻿s   s      au   a�s   s   s   u   ï»s    s    s   s   s    s   hzx-user-definedu   hllo)r   )r3   r   r   r   test_iter_decodek   s.    !!!!**r6   c               C   sf  d j  t g  d   d k s$ t  d j  t d g d   d k sK t  d j  t d g d   d k sr 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 j  t d d d d g d	   d
 k s2t  d j  t d d d d g d   d k sbt  d  S)Nr   r   r   r)   s   zutf-16s    zutf-16lezutf-16bes    u   hZllozx-user-defineds   hllo)r/   r	   r   r   r   r   r   test_iter_encode   s    $''0000	r7   c              C   s^   d }  d } d }  d } t  |  d  | t d  f k s? t  t | d  |  k sZ 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    'r:   N)__doc__
__future__r   r   r   r   r   r   r   r	   r
   r   r   r   r   r'   r+   r-   r.   r6   r7   r:   r   r   r   r   <module>   s   @			