File: //usr/local/lib/python3.10/test/__pycache__/test_binascii.cpython-310.opt-1.pyc
o
�iM � @ s� d Z ddlZddlZddlZddlZddlmZmZmZm Z g d�Z
g d�Zee
ddg ZG dd � d ej
�ZG d
d� de�ZG dd
� d
e�ZG dd� de�ZG dd� dej
�Zedkrbe�� dS dS )zTest the binascii C module.� N)�
bigmemtest�_1G�_4G�warnings_helper)�
b2a_base64�b2a_hex�b2a_hqx�b2a_qp�b2a_uu�hexlify�rlecode_hqx)�
a2b_base64�a2b_hex�a2b_hqx�a2b_qp�a2b_uu� unhexlify�
rledecode_hqx�crc32�crc_hqxc @ s e Zd ZeZdZeeed��7 Zed7 Zdd� Zdd� Zdd � Z e
jed
�dd� �Z
d
d� Zdd� Zdd� Zdd� Ze
jed
�dd� �Zdd� Ze
jed
�dd� �Ze
jed
�dd� �Zdd� Zdd � Zd!d"� Ze
jed
�d#d$� �Zd%d&� Ze
jed
�d'd(� �Zd)d*� Zd+d,� Zd-S ).�BinASCIITests. The quick brown fox jumps over the lazy dog.
� s
Hello world.
c C s | � | j�| _d S �N)� type2test�rawdata�data��self� r �//usr/local/lib/python3.10/test/test_binascii.py�setUp s zBinASCIITest.setUpc C s( | � ttjt�� | � ttjt�� d S r )�
assertTrue�
issubclass�binascii�Error� ExceptionZ
Incompleter r r r �test_exceptions s zBinASCIITest.test_exceptionsc C s6 t D ]}| �ttt|�d�� | �ttt|�� qd S )N�__call__)�
all_functionsr! �hasattr�getattrr# �assertRaises� TypeError)r �namer r r �test_functions# s �zBinASCIITest.test_functions)�categoryc C s d}| j d |� }ttt�D ]d\}}tt|�}tt|�}z|| �|��}|| �|��}W n tyH } z| �d� ||| �� W Y d } ~ nd } ~ ww |dkrQ|\}}
| �
||d� ||||�� | �|t� | �|t� | �
t|�d� q| �t�|d�t� | �t�|�t� d S )N�- �{}/{} conversion raises {!r}r �{}/{} conversion: {!r} != {!r}� r )r �zip�
a2b_functions�
b2a_functionsr* r# r r% �fail�format�assertEqual�assertIsInstance�bytesZ
assertLess�maxr �intr )r �MAX_ALL�raw�fa�fb�a2b�b2a�a�res�err�_r r r �test_returned_value) s,
��
�z BinASCIITest.test_returned_valuec C s� d}g }t dt| j�|�D ]}| �| j||| � �}t�|�}|�|� q
t� }|D ]}| �|�}t�|�}||7 }q+| � || j� d S )N�9 r )
�range�lenr r r# r �appendr; r
r9 )r �
MAX_BASE64�lines�i�brD rE �liner r r �test_base64validA s
zBinASCIITest.test_base64validc
s� d}g }t dt| j�|�D ]}| �| j||| � �}t�|�}|�|� q
t� � d}t d�D ]}||vr:� �|� q/� fdd�}t� }t ||�D ]} | �| �}t�
|�}||7 }qI| �|| j� | �t�
| �� ��d� d S )NrI r s@ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/r c s� � }t | �t |� }t� }| r;|r;t | �t |� |kr'| d | dd � }} n|d |dd � }}|�|� | r;|s|| | S )Nr � )rK � bytearrayrL )rQ ZnoiseZratiorE �c�Zfillersr r �addnoise_ s
�z1BinASCIITest.test_base64invalid.<locals>.addnoise� )rJ rK r r r r# r rL rT �mapr
r9 )
r rM rN rO rP rD ZvalidrW rE rQ r rV r �test_base64invalidP s(
�
zBinASCIITest.test_base64invalidc s� � fdd�}|d� |d� |d� |d� |d� |d� |d � |d
� � fdd�}|d
� |d� |d� |d� |d� |d� |d� d S )Nc sD � � tjd�� t�� �| �� W d � d S 1 sw Y d S )Nz(?i)Incorrect padding)�assertRaisesRegexr# r$ r
r )r r r r �assertIncorrectPaddingw s "�z>BinASCIITest.test_base64errors.<locals>.assertIncorrectPaddings abs ab=� abcs abcdefs abcdef=s abcdefgs a=b=s a
b=c sb t t�dd| ��}dt|� }� �tj|�� t�� �| �� W d � d S 1 s*w Y d S )Ns [^A-Za-z0-9/+]rX z((?i)Invalid.+number of data characters.+) rK �re�sub�strr[ r# r$ r
r )r Zn_data_charsZexpected_errmsg_rer r r �assertInvalidLength� s
�"�z;BinASCIITest.test_base64errors.<locals>.assertInvalidLength� as a=s a==s a===s aaaaas] aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas
A B
C ??DEr )r r\ ra r r r �test_base64errorsu s"