B
    OX                 @   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)Z	exceptionZfunctionargskwargs r   1lib/python3.7/site-packages/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  xt 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| }|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W x&t
t  D ]}t|j|kstqW d S )N     )r   r      T)final)r   r   r   r   r   r   listr	   r
   r   setvaluesr   )Z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   ﻿éZ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   €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    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)inputZfallback_encodingr    Z	_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   hzx-user-definedu   hllo)r   )r/   r   r   r   test_iter_decodek   s.    r7   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%   r+   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        r8   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   )ZencodedZdecodedr   r   r   test_x_user_defined   s    r9   N)__doc__Z
__future__r   r   r   r   r   r   r   r	   r
   r   r   r   r   r$   r'   r*   r,   r7   r8   r9   r   r   r   r   <module>   s   ,			