ó
´¼÷Xc           @  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 „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d S(   u²   

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

    A basic test suite for Encoding.

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

iÿÿÿÿ(   t   unicode_literalsi   (	   t   lookupt   LABELSt   decodet   encodet   iter_decodet   iter_encodet   IncrementalDecodert   IncrementalEncodert   UTF8c         O  s:   y | | | Ž  Wn |  k
 r% d  SXt  d |  ƒ ‚ d  S(   Nu   Did not raise %s.(   t   AssertionError(   t	   exceptiont   functiont   argst   kwargs(    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   assert_raises   s
    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(   Nu   utf-8u   Utf-8u   UTF-8u   utf8u   utf8 u    
utf8	u   u8u   utf-8Â u   US-ASCIIu   windows-1252u
   iso-8859-1u   latin1u   LATIN1u   latin-1u   LATÄ°N1(   R   t   nameR
   t   None(    (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_labels   s    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 t	 ƒd k st ‚ t
 |  ƒ } | j d ƒ d k s4t ‚ | j d d t	 ƒd k s t ‚ q Wx5 t t  j ƒ  ƒ D]! } t | ƒ j | k slt ‚ qlWd  S(   Nt    u    i    i   i   t   final(   R   R   R   R
   R   R   t   listR   R   t   TrueR   t   sett   valuesR   (   t   labelt   repeatt   outputt   _t   decodert   encoderR   (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_all_labels0   s    ',!%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   ï»¿Ã©u   invalidu   Ã©(   R   t   LookupErrorR   R   R   R   R   R   (    (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_invalid_labelC   s    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   €u   latin1u   â‚¬s   Ã©u   utf8u   Ã©u   asciiu   ÃƒÂ©s   ï»¿Ã©s   þÿ éu   utf-16bes   ÿþé u   utf-16les   þÿé u   î¤€s   ÿþ ét    éu   UTF-16BEs   é u   UTF-16LEu   UTF-16(   R   R   R
   R	   (    (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_decodeL   s     '-'''''''''''''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(   Nu   Ã©u   latin1s   éu   utf8s   Ã©u   utf-16s   é u   utf-16leu   utf-16beR"   (   R   R
   (    (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_encodeb   s    c          C  s>  d „  }  |  g  d ƒ d k s$ t  ‚ |  d g d ƒ d k sB t  ‚ |  d g d ƒ d k s` 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 sDt  ‚ |  d d d d d d g d ƒ d k sq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(   Nu    (   R   t   join(   t   inputt   fallback_encodingR   t	   _encoding(    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   iter_decode_to_stringl   s    u   latin1u    R   s   éu   Ã©t   hellou   hellot   het   llot   hellt   os   Ã©u   ÃƒÂ©s   ï»¿Ã©s   ï»¿s   Ãs   ©t   au   aï¿½s   ïs   »¿Ãs   ï»u   Ã¯Â»s   þÿ és   ÿþé s   ÿs   þét    s   héu   x-user-definedu   hïŸ©llo(   R
   (   R)   (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_iter_decodek   s.    	!!!!**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   u   latin1u    u   Ã©s   éu   utf-16s   é u   utf-16leu   utf-16beR"   u   hïŸ©u   llou   x-user-defineds   héllo(   R%   R   R
   (    (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_iter_encode‡   s    $''0000	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ïŸïž¨ïŸŠt   aau   aau   x-user-defined(   R   R   R
   R   (   t   encodedt   decoded(    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   test_x_user_defined“   s    'N(   t   __doc__t
   __future__R    R   R   R   R   R   R   R   R   R   R	   R   R   R   R!   R#   R$   R1   R2   R6   (    (    (    s;   /tmp/pip-build-g7Urym/pip/pip/_vendor/webencodings/tests.pyt   <module>   s   @											