File: //usr/local/lib/python3.7/test/__pycache__/multibytecodec_support.cpython-37.opt-1.pyc
B
��g�8 � @ sx d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
G dd� d�ZG dd� dej�Z
d d
� ZdS )� N)�
HTTPException)�support)�BytesIOc @ s� e Zd ZdZdZdZdZdZdZdZ dZ
dd� Zdd � Zd
d� Z
dd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� ZdS ),�TestBase� N� r u �c C sX | j d krt�| j�| _ | j j| _| j j| _| j j| _| j j| _ | j j
| _
| j j| _d S )N)�codec�codecs�lookup�encoding�encode�decode�streamreader�reader�streamwriter�writer�incrementalencoder�incrementaldecoder)�self� r �7/usr/local/lib/python3.7/test/multibytecodec_support.py�setUp s
zTestBase.setUpc C s� g }x8| j D ].}|�d�}|�� }dd� |D �}|�|� qW xPt|� D ]D\}}| �|�d }| �||�d�� | jrH| �|| �|�d � qHW d S )N�
c S s g | ]}|d �qS )r r )�.0�liner r r �
<listcomp>* s z-TestBase.test_chunkcoding.<locals>.<listcomp>r zutf-8) �tstring�split�pop�append�zipr
�assertEqual�
roundtriptestr )r Z
tstring_lines�b�linesZlastZnative�utf8�ur r r �test_chunkcoding$ s
zTestBase.test_chunkcodingc C s� x�| j D ]�\}}}t|t�r$| j}n| j}|r�|||�d }|| jkr~| �t|�tkt|�� | �||d|| j |||f � q�| �t|�tkt|�� | �||d|| j |||f � q| �
t|||� qW d S )Nr z%a.decode(%r, %r)=%a != %az%a.encode(%r, %r)=%a != %a)�
codectests�
isinstance�bytesr
r �
assertTrue�type�strr! r �assertRaises�UnicodeError)r �source�scheme�expected�func�resultr r r �test_errorhandle2 s$
zTestBase.test_errorhandlec C s0 | j r| �d� d}| �| �|d�d d� d S )Nz$encoding contains full ISO 10646 mapu ଓଣୠ nd eggs�xmlcharrefreplacer s ଓଣୠ nd eggs)�has_iso10646�skipTestr! r )r �sr r r �test_xmlcharrefreplaceI s
zTestBase.test_xmlcharrefreplacec sj | j r| �d� ddlm� � fdd�}t�d|� | jrF| j\}}nd}d}| �| �|d�d |� d S ) Nz$encoding contains full ISO 10646 mapr )�codepoint2namec s| t | t�std| ��g }xP| j| j| j� D ]:}t|�� krV|�d� t|� � q.|�dt|� � q.W d�|�| jfS )Nzdon't know how to handle %rz&%s;z&#%d;r ) r) �UnicodeEncodeError� TypeError�object�start�end�ordr �join)�exc�l�c)r; r r �xmlcharnamereplaceY s
z>TestBase.test_customreplace_encode.<locals>.xmlcharnamereplaceztest.xmlcharnamereplaceu «ℜ» = 〈ሴ〉s* «ℜ» = ⟨ሴ⟩) r7 r8 Z
html.entitiesr; r �register_error�xmlcharnametestr! r )r rF ZsinZsoutr )r; r �test_customreplace_encodeS s
z"TestBase.test_customreplace_encodec C s>