HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_bytes.cpython-310.pyc
o

�i0�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlZddlZddlmZmZddlmZejjrYdd�Znd	d�ZGd
d�d�ZGdd
�d
�ZGdd�dee
j�ZGdd�dee
j�ZGdd�de
j�ZGdd�de
j�ZGdd�dejj �Z!Gdd�de!e
j�Z"Gdd�de!e
j�Z#Gdd�d�Z$Gdd�de%�Z&Gd d!�d!e'�Z(Gd"d#�d#e'�Z)Gd$d%�d%e$e
j�Z*Gd&d'�d'e$e
j�Z+e,d(kr�e
�-�dSdS))z�Unit tests for the bytes and bytearray types.

XXX This is a mess.  Common tests should be unified with string_tests.py (and
the latter should be modernized).
�N)�
import_helper)�warnings_helper)�bigaddrspacetest�MAX_Py_ssize_t)�assert_python_failurecst����fdd��}|S)Ncs@t�dtf���|i|��Wd�S1swYdS�N��rZcheck_warnings�BytesWarning)�args�kw��func��,/usr/local/lib/python3.10/test/test_bytes.py�wrappers$�z%check_bytes_warnings.<locals>.wrapper)�	functools�wraps)rrrr
r�check_bytes_warningssrcCs|S�Nrr
rrrr$�c@seZdZddd�Zdd�ZdS)�	IndexablercCs
||_dSr��value)�selfrrrr�__init__)�
zIndexable.__init__cCs|jSrr�rrrr�	__index__+szIndexable.__index__N)r)�__name__�
__module__�__qualname__rrrrrrr(s
rc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zedd��Zdd�Zdd�Zedd ��Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Z d9d:�Z!d;d<�Z"d=d>�Z#d?d@�Z$dAdB�Z%dCdD�Z&dEdF�Z'dGdH�Z(dIdJ�Z)dKdL�Z*dMdN�Z+dOdP�Z,dQdR�Z-dSdT�Z.dUdV�Z/dWdX�Z0dYdZ�Z1d[d\�Z2d]d^�Z3d_d`�Z4dadb�Z5dcdd�Z6dedf�Z7dgdh�Z8didj�Z9dkdl�Z:dmdn�Z;dodp�Z<dqdr�Z=dsdt�Z>dudv�Z?dwdx�Z@dydz�ZAd{d|�ZBd}d~�ZCdd��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�S)��
BaseBytesTestcCs.|��}|�t|�|j�|�|j|j�dSr)�	type2test�assertEqual�type�	__class__�r�brrr�test_basics1szBaseBytesTest.test_basicscCsH|�d�}tjtjfD]}||�}|�||�|�t|�t|��qdS�N�abcd)r#�copy�deepcopyr$r%�r�aZcopy_methodr(rrr�	test_copy6s
�zBaseBytesTest.test_copycs�|���|�t��d�|�t�fdd��|�t�fdd��|�t�fdd��|�t�fdd��|�t�fdd��|�t�fdd��|�t�fd	d��|�t�fd
d��|�t�fdd��|�t�fdd��|�t�fd
d��dS)Nrc��dS�Nrrr�r(rr�<lambda>@�z3BaseBytesTest.test_empty_sequence.<locals>.<lambda>cr1�N�rrr3rrr4Ar5cs
�tjSr��sys�maxsizerr3rrr4B�
cs�tjdSr6r8rr3rrr4C�cs�ddS�N�
�drrr3rrr4D�cr1�N���rrr3rrr4Er5cr1)N���rrr3rrr4Fr5cs�tjSrr8rr3rrr4Gr@c��tjdSr6r8rr3rrr4H�crD)N�r8rr3rrr4IrEcs�ddSr=rrr3rrr4Jr<)r#r$�len�assertRaises�
IndexErrorrrr3r�test_empty_sequence=sz!BaseBytesTest.test_empty_sequencecCs|�td��}|�t|�d�|�t|�ttd���|�dh�}|�|d�|�ddh�}|�t|�ddh�|�ttd���}|�t|�d�|�t|�ttd���|�dd	�td�D��}|�t|�d
�|�t|�ttd��ddd��Gd
d�d�}|�|��}|�|d�dS)N��*�*�+�-)rNrO)rOrNcss�|]	}|dr|VqdS)rFNr��.0�irrr�	<genexpr>]s�z3BaseBytesTest.test_from_iterable.<locals>.<genexpr>�r7rFc@�eZdZdd�ZdS)z+BaseBytesTest.test_from_iterable.<locals>.ScSsd|S)N�r7rF�r)rrRrrr�__getitem__c�z7BaseBytesTest.test_from_iterable.<locals>.S.__getitem__N)rr r!rXrrrr�Sb�rZ�)r#�ranger$rG�list�assertIn�tuple�iter)rr(rZrrr�test_from_iterableLs "z BaseBytesTest.test_from_iterablecCsT|�ttd���}|�t|�d�|�t|�ttd���|�d�}|�|d�dS�NrKrVr\)r#r`r]r$rGr^r'rrr�test_from_tuplehs

zBaseBytesTest.test_from_tuplecCsX|�ttd���}|�t|�d�|�t|�ttd���|�gd��}|�|d�dSrc)r#r^r]r$rGr'rrr�test_from_listps
zBaseBytesTest.test_from_listcs\G�fdd�d�}|�|�g�|�t��d�G�fdd�d�}|�g�|�t��d�dS)Nc�eZdZ�fdd�ZdS)z0BaseBytesTest.test_from_mutating_list.<locals>.Xc����dS�NrL��clearr�r/rrr{�z:BaseBytesTest.test_from_mutating_list.<locals>.X.__index__N�rr r!rrrkrr�Xz�rnrMcrf)z0BaseBytesTest.test_from_mutating_list.<locals>.Ycst��dkr��|�dS)N��rL)rG�appendrrkrrr�s
z:BaseBytesTest.test_from_mutating_list.<locals>.Y.__index__Nrmrrkrr�Y�rorrs�****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************�r$�bytes)rrnrrrrkr�test_from_mutating_listxsz%BaseBytesTest.test_from_mutating_listcCsd|�t�td�td�td�g�}|�t|�gd��|�t|jtd�g�|�t|jtd�g�dS)Nr7���rr7rvrwrBrK)r#rr$r^rH�
ValueErrorr'rrr�test_from_index�s�zBaseBytesTest.test_from_indexcCsb|�t�dgd���}|�|d�|�d�}|�|d�Gdd�dt�}|�|�|d��d�dS)N�BrVr\c@rU)z)BaseBytesTest.test_from_buffer.<locals>.BcSst�r)�	TypeErrorrrrrr�rz3BaseBytesTest.test_from_buffer.<locals>.B.__index__Nrmrrrrr{�r[sfoobar)r#�arrayr$rt)rr/r{rrr�test_from_buffer�s
zBaseBytesTest.test_from_buffercCs�|�|�d�d�|�|�d�d�|�|�d�d�|�t|jd�|�|�dd	�d
�|�|�d
�d
�|�t|jtjd�dS)Nr�r7��srB�0�ascii�0)r$r#rHry�
OverflowErrorr9r:rrrr�test_from_ssize�szBaseBytesTest.test_from_ssizecCs&|�t|jd�Gdd�d�}|�t|jdg�|�t|jdg�|�t|jdg�|�t|j|�g�|jt|jdd�|jt|jdd�|�t|jd	d�|�t|jd
d�|jt|jd	dd�|jt|jd
dd�|�t|jd�|jt|jddd�|�t|jdd�|�t|jddd
�dS)Ngc@�eZdZdS)z5BaseBytesTest.test_constructor_type_errors.<locals>.CN�rr r!rrrr�C��r�r�r�)�encoding�ignore)�errorsrrrsasciisignore)rHr|r#)rr�rrr�test_constructor_type_errors�s z*BaseBytesTest.test_constructor_type_errorscCs�|�t|jdg�|�t|jtjg�|�t|jtjdg�|�t|jtjdg�|�t|jddg�|�t|jdg�|�t|jdg�|�t|jtjg�|�t|jtjdg�|�t|jddg�dS)NrBr7rFr>r?rKi)rHryr#r9r:rrrr�test_constructor_value_errors�sz+BaseBytesTest.test_constructor_value_errorsc	CsDt}|�ttf|j|�z	t|d�WdSttfy!YdSw)N�)rrHr��MemoryErrorr#�	bytearray)r�sizerrr�test_constructor_overflow�s�z'BaseBytesTest.test_constructor_overflowcCsXGdd�d�}|�t|j|��|�t|j|�g�Gdd�d�}|�t|j|��dS)Nc@rU)z9BaseBytesTest.test_constructor_exceptions.<locals>.BadIntcS�dddS�Nr7rrrrrrr��zCBaseBytesTest.test_constructor_exceptions.<locals>.BadInt.__index__Nrmrrrr�BadInt�r[r�c@rU)z>BaseBytesTest.test_constructor_exceptions.<locals>.BadIterablecSr�r�rrrrr�__iter__�r�zGBaseBytesTest.test_constructor_exceptions.<locals>.BadIterable.__iter__N)rr r!r�rrrr�BadIterable�r[r�)rH�ZeroDivisionErrorr#)rr�r�rrr�test_constructor_exceptions�s
z)BaseBytesTest.test_constructor_exceptionscCs|�gd��}|�gd��}|�ddg�}|�||�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�dS)NrVr7rW)r#r$�
assertTrue�assertFalse)r�b1�b2�b3rrr�test_compare�s&zBaseBytesTest.test_comparecCs�|�|�d�dkd�|�|�d�dkd�|�|�d�dkd�|�|�d�dkd�|�|��t�kd�|�|��t�kd�dS)Nsabc�abcFsabcsabcsabcT)r$r#�strrrrr�test_compare_to_str�s��z!BaseBytesTest.test_compare_to_strcCs<tttd��}|�|�}tt|��}|��|�||�dS)N�Hello)r^�map�ordr#�reversed�reverser$)r�inputr(�outputrrr�
test_reverseds

zBaseBytesTest.test_reversedcsP�fdd�}|d�}��|dd�|d����|dd�|d����|dd�|d	����|dd�|d
����|dd�|d
����|dd�|d
����|dd
�|d����|dd
�|d����|d
d�|d	����|dd�|d
����|dd�|d
����|dd�|d
����|dd�|d��dS)Ncs��tt|��Sr)r#r�r���srrr�by
sz'BaseBytesTest.test_getslice.<locals>.by�Hello, worldr�r�r7Zello�z, �world�r?���i����������)r$�rr�r(rrr�
test_getsliceszBaseBytesTest.test_getslicecCs�ttd��}|�|�}ddddddtjddd	d
f}|D]#}|D]}|dd�D]}|�||||�|�||||���q'qqdS)Nrwrr7rW�r?rBrC���r�)r^r]r#r9r:r$)r�Lr(�indices�start�stop�steprrr�test_extended_getslice s
(���z$BaseBytesTest.test_extended_getslicec	Csrd}dD]}|�||�}|�||�|�|���q|�t|j|d�|�|dd�}|�||�|dd�d��dS)N�Hello world
ሴ噸骼��utf-8zutf-16�latin-1r����r�)r#r$�encoderH�UnicodeEncodeError�r�sample�encr(rrr�
test_encoding+s zBaseBytesTest.test_encodingcCs�d}dD]}|�||�}|�|�|�|�qd}|�|d�}|�t|jd�|�|�dd�d�|�|jddd�d�|�|�d	���d
�dS)Nr�r�uHello world
€þÿr�r�r�zHello world
)r�r�s☃u☃)r#r$�decoderH�UnicodeDecodeErrorr�rrr�test_decode4s�zBaseBytesTest.test_decodecCsdd}d}t�d|jj�d|�d|�d|�d|�d|�d	|�d
��}tddd
|�}|�|jd|�dS)NzBoom, Shaka Laka, Boom!)r��utf8�latin1z0
            import sys
            type2test = z
            encodings = zr

            for data in ('', 'short string'):
                try:
                    type2test(data, encoding=z�)
                except LookupError:
                    pass
                else:
                    sys.exit(21)

                for encoding in encodings:
                    try:
                        type2test(data, encoding=encoding, errors=a>)
                    except LookupError:
                        pass
                    else:
                        sys.exit(22)

            for data in (b'', b'short string'):
                data = type2test(data)
                print(repr(data))
                try:
                    data.decode(encoding=z�)
                except LookupError:
                    sys.exit(10)
                else:
                    sys.exit(23)

                try:
                    data.decode(errors=z�)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

                for encoding in encodings:
                    try:
                        data.decode(encoding=encoding, errors=z�)
                    except LookupError:
                        pass
                    else:
                        sys.exit(25)

            sys.exit(10)
        z-X�devz-cr>)�textwrap�dedentr#rrr$�rc)r�invalid�	encodings�code�procrrr�test_check_encoding_errorsBs&����� �(
�0z(BaseBytesTest.test_check_encoding_errorscCsb|�d�}|�||���|�d�}|�||�dgd��|�d�}|�||�dgd��dS)Nrr>i')r#r$r'rrr�
test_from_intzs


zBaseBytesTest.test_from_intcsx|�d��|�d��|���d�|��td�d�|�td��d�|�t�fdd��|�t�fdd��dS)N�abc�def�abcdefsdefabccs�dS)N�defrr)r�rrr4�r5z+BaseBytesTest.test_concat.<locals>.<lambda>csd�S)Nr�rr)r�rrr4�r5)r#r$rtrHr|rr)r�r�r�test_concat�s

zBaseBytesTest.test_concatc	s�d|�d�fD]f�|��dd�|��dd�|��dd�|�t�fdd��|�t�fd	d��|�ttf��
�tj}Wd�n1sLwY|�ttf��
�tj9�Wd�n1shwYqdS)
Nr�rW�	abcabcabcrrrBcs�dS�Ng��Q�	@rrr3rrr4�r5z+BaseBytesTest.test_repeat.<locals>.<lambda>csd�Sr�rrr3rrr4�r5)r#r$rHr|r�r�r9r:�r�crr3r�test_repeat�s����zBaseBytesTest.test_repeatcCs*|�|�d�d|�td�gd��dS)N�xr?�x)r$r#r�rrrr�test_repeat_1char�s*zBaseBytesTest.test_repeat_1charcst|�d��|�td���|�ttd����|�d��|�t�fdd��|�t�fdd��|�t�fdd��|�t�fdd��|�t�fd	d��|�t�fd
d��tt	fD]Z}|�|d���|�|d���|�|d
���|�|d���|�|d���|�|d���|�|d���|�|d���|�|d���|�|d���|�|d���q]dS)Nr�r/��c�d�vS)N�,rrr3rrr4�r5z-BaseBytesTest.test_contains.<locals>.<lambda>cr�rArrr3rrr4�r5cstjd�vSr6r8rr3rrr4�r<csd�vSrrrr3rrr4�r5csttd���vS�Nr/)�floatr�rr3rrr4�rEcr�r�rrr3rrr4�r5r�a�b�c�ab�bc�ac�dsdabsabd)
r#r_r��intZassertNotInrHryr|rtr��r�frr3r�
test_contains�s.
�zBaseBytesTest.test_containsc	Cs�|�t|jj�|�t|jjd�|�|j�d�|���tgd��}|�|j�d�|�|�|j�d�|�|�|j�d�|�dD]}|�|j�|�|���qCdD]}|�t|jj|�qT|�|j�d	�d
�|�t|jjd�|�t|jjd�|�t|jjd
�|�t|jjd�|�t|jjd�|�t|jjd�dD]*\}}|�t��}|j�|�Wd�n1s�wY|�d|t|j	��q�dS)Nr7r��rN�0�1a2B30z  1A 2B  30   z
 1A
2B	30z	

 u…   
Z0000ss1Br/Zrtz1a b cd�z12      34))z12 x4 56rW)z12 3x 56r�)z12 xy 56rW)u	12 3ÿ 56r�zat position %s)
rHr|r#�fromhexr$r�ryr_r��	exception)rr(r��data�pos�cmrrr�test_fromhex�s0
��zBaseBytesTest.test_fromhexcCs~|�t|jj�|�t|jjd�|�|�d���d�|�tgd����d�|�|�d���d�|�td���d�dS)Nr7rrr�Z1a2b30�+0)rHr|r#�hexr$r��
memoryviewrrrr�test_hex�szBaseBytesTest.test_hexcCs�|�d�}|�|��d�|�t��
|�d�Wd�n1s"wY|�t��
|�d�Wd�n1s<wY|�|�dd�d�|�t��|�dd�Wd�n1sawY|�t��
|�d�Wd�n1s{wY|�t��
|�d�Wd�n1s�wY|�t��
|�d	�Wd�n1s�wY|�t��|�td
��Wd�n1s�wY|�|�dd�d�|�|�d�d�|�|�d
�d�|�|�d�d�|�|�d�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�d�d�|�|�d�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�d}|�|�dd �d!�dS)"Ns��Zb901efr�xx�:r�ÿ����rKr�zb901efr��zb901ef�rWr����zb9:01:ef�$zb9$01$efr7rBrFzb9:01ef�*rCzb901*efs {sworldishelloi0�.�zC7b7305000000776f.726c646902000000.730500000068656c.6c6f690100000030)r#r$rrHryr|�chr)rZthree_bytesrrrr�test_hex_separator_basics�sR
�������z'BaseBytesTest.test_hex_separator_basicscCs$|�tdd��}|�|��d�dS)N�Z�_Z
5a5b5c5d5e�r#r]r$r)rZ
five_bytesrrr�test_hex_separator_five_bytessz+BaseBytesTest.test_hex_separator_five_bytescCs|�dd�tdd�D��}|�|��d�|�|�dd�d�|�|�dd	�d
�|�|�dd�d
�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�dS)Ncss�|]}|dVqdS)rWNr�rQr�rrrrS
��z=BaseBytesTest.test_hex_separator_six_bytes.<locals>.<genexpr>r7r�Z0306090c0f12rz03.06.09.0c.0f.12� rFz0306 090c 0f12�-rWz
030609-0c0f12r	r�z
0306:090c0f12r�z
03:06090c0f12�r�_r�Z
030609_0c0f12rz
0306090c:0f12�@r�z
0306090c0f@12i����i����r)rZ	six_bytesrrr�test_hex_separator_six_bytes	sz*BaseBytesTest.test_hex_separator_six_bytescCs|�|�d��g�d�|�|�d��dg�d�dgddgddggd�fD]2}tt|j|��}|�|�d��|�d�|�|�d��t|��d�|�|�d��t|��d�q&|�d�j}|�|dd	g�d
�|�|td�d	g�d
�|�|dtd	�g�d
�|�|td�d	g�d
�|�|dtd	�g�d
�dgd}ddd
}|�||�|�dgd}dd}|�|�d��|�|�|�	t
|�d�jd�|�	t
��|td�ddg�Wd�n1s�wY|�	t
��|td�ddg�Wd�dS1�swYdS)Nrr�r�r�r�r�)r�r�r�s.:scdsab.:cdi��s.:abci��� Zcdsef)r$r#�joinr^r�r`rarr�rHr|)rZlstZdot_join�seqZexpectedrrr�	test_joins4

�$�zBaseBytesTest.test_joincCs|�d�}d}d}d}|�|�d�d�|�|�d�d�|�|�d	�d
�|�|�|�d�|�|�|�d
�|�|�dd�d�|�|�dd�d�|�|�dd
d�d
�|�|�ddd�d
�|�|�|d�d�|�|�|d�d�|�|�|d
d�d
�|�|�|dd�d
�dS)N�mississippi�i�p�w�ir��ssrF�wrr�pr7rWr��	)r#r$�count)rr(rR�p�wrrr�
test_count7s"
zBaseBytesTest.test_countcCs�|�d�}|�|���d��|�|�d��|�|�d��|�|�d��|�|�d��|�|�d��|�t��}|�dg�Wd�n1sMwYt|j�}|�d|�|�d|�dS)	N�hello�anythingshel�hshellowshartr`)	r#r��
startswithr�rHr|r�r�r_�rr(r�excrrr�test_startswithNs
�
zBaseBytesTest.test_startswithcCs�|�d�}|�t��d��|�|�d��|�|�d��|�|�d��|�|�d��|�|�d��|�t��}|�dg�Wd�n1sLwYt|j�}|�	d|�|�	d|�dS)	Nr3r4sllo�oswhellosnortr`)
r#r�r��endswithr�rHr|r�r�r_r7rrr�
test_endswith\s
�
zBaseBytesTest.test_endswithcCs|�d�}d}d}|�|�d�d�|�|�d�d�|�|�d�d�|�|�|�d	�|�|�|�d�|�|�dd
�d�|�|�dd	d�d�|�|�dd	d
�d�|�|�|d
�d�|�|�|d	d
�d	�|�|�|d	d
�d�ddtjd	fD]}|�td|j|�q~dS)Nr&r'r)r+rFr,rB�
mississippianr7rWr�r�rrKzbyte must be in range\(0, 256\))r#r$�findr9r:�assertRaisesRegexry)rr(rRr1�indexrrr�	test_findjs(
��zBaseBytesTest.test_findcCs�|�d�}d}d}|�|�d�d�|�|�d�d�|�|�d�d�|�|�|�d	�|�|�|�d�|�|�dd
�d�|�|�ddd�d
�|�|�|dd
�d�|�|�|d
d�d�|�|�|dd
�d�dS)Nr&r'r)r+r�r,rBr=r>rWrrrFr7r.r�)r#r$�rfind�rr(rRr1rrr�
test_rfind�s
zBaseBytesTest.test_rfindcCs�|�d�}d}d}|�|�d�d�|�t|jd�|�t|jd�|�|�|�d�|�t|j|�|�|�dd	�d
�|�|�ddd�d�|�t|jddd	�|�|�|d�d�|�|�|dd	�d�|�t|j|dd	�dS)
Nr&r'r)r+rFr,r=r7rWr�r�r)r#r$r@rHryrCrrr�
test_index�s
zBaseBytesTest.test_indexcCs�|�d�}d}d}|�|�d�d�|�t|jd�|�t|jd�|�|�|�d�|�t|j|�|�|�dd	�d�|�|�dd
d�d�|�|�|d
d	�d
�|�|�|d	d�d�|�t|j|d
d	�dS)Nr&r'r)r+r�r,r=r>rWrrrFr7r.r�)r#r$�rindexrHryrCrrr�test_rindex�s
zBaseBytesTest.test_rindexcCs�|�d�}|}|d}|�|d�|�|d�|�||u�|�d�}|d}|�|d�|�t|�|j�|�d�}|d}|�|d�|�t|�|j�dS�	Ns
hello, %b!�worlds
hello, world!s%s / 100 = %d%%)sseventy-nine�Osseventy-nine / 100 = 79%s
hello,%b!s
hello,world!�r#r$r��assertIsr%)rr(�origr/rrr�test_mod��


zBaseBytesTest.test_modcCs�|�d�}|}|d;}|�|d�|�|d�|�||u�|�d�}|d;}|�|d�|�t|�|j�|�d�}|d;}|�|d�|�t|�|j�dSrHrK)rr(rMrrr�	test_imod�rOzBaseBytesTest.test_imodcCsV|�t��t�|�d�Wd�n1swY|�|�d��d�t�dS)Nr�z%r)rHr|�objectr#rL�__rmod__�NotImplementedrrrr�	test_rmod�s�zBaseBytesTest.test_rmodcCs6|�d�}|�|�dd�d�|�|�dd�d�dS)Nr&r*r�smassassappar+r�s	mixixippi)r#r$�replacer'rrr�test_replace�s
zBaseBytesTest.test_replacecCs|�t|�d�jdd�dS)N�a b� r)rHr|r#rUrrrr�test_replace_int_error��z$BaseBytesTest.test_replace_int_errorcC�0|�t|�d�jd�|�t|�d�jd�dS�NrWr�rHr|r#�split�rsplitrrrr�test_split_string_error��z%BaseBytesTest.test_split_string_errorcCr[�NrWrXr]rrrr�test_split_int_error�raz"BaseBytesTest.test_split_int_errorcCsFdD]}|�|�}|�|��|g�q|�d�}|�|��dg�dS)N)sabsabsabsab�		

�)r#r$r^r'rrr�test_split_unicodewhitespace�s


z*BaseBytesTest.test_split_unicodewhitespacecCs |�d�}|�|��dg�dS)Nrdre)r#r$r_r'rrr�test_rsplit_unicodewhitespace�s
z+BaseBytesTest.test_rsplit_unicodewhitespacecCs2|�d�}|�|�d�d�|�|�d�d�dS)Nr&r+)smir+sissippir,)r&rr)r#r$�	partitionr'rrr�test_partition�s
zBaseBytesTest.test_partitioncCsD|�d�}|�|�d�d�|�|�d�d�|�|�d�d�dS)Nr&r+)smissir+sippir*)s
mississippr*rr,)rrr&)r#r$�
rpartitionr'rrr�test_rpartitions
zBaseBytesTest.test_rpartitioncCr[r\�rHr|r#rhrjrrrr�test_partition_string_error
raz)BaseBytesTest.test_partition_string_errorcCr[rbrlrrrr�test_partition_int_errorraz&BaseBytesTest.test_partition_int_errorcCsNttjd�D]}dD]}|�|�}t�||�}t�|�}|�||�qqdS�Nr7)rr�r�s�ab�s�)r]�pickle�HIGHEST_PROTOCOLr#�dumps�loadsr$)r�protor(Zps�qrrr�
test_picklings

��zBaseBytesTest.test_picklingcCs�ttjd�D]W}dD]R}t|�|��}}t|�|��}t�||�}t�|�}|�t	|�t	|��|�t|�|�t�|�}|sBqt
|�t�||�}t�|�}|�t|�|dd��qqdSro)r]rprqrar#r^rrrsr$r%�next)rrtr(�itZitorgr�drrr�test_iterator_picklings"


��z$BaseBytesTest.test_iterator_picklingcCsX|�|�d��td��d�|�|�d��td��d�|�|�d��td��d�dS)Nr�r�r�r�r�)r$r#�stripr�lstrip�rstriprrrr�test_strip_bytearray,s z"BaseBytesTest.test_strip_bytearraycC�F|�t|�d�jd�|�t|�d�jd�|�t|�d�jd�dS)Nr�Zac�rHr|r#r{r|r}rrrr�test_strip_string_error1�z%BaseBytesTest.test_strip_string_errorcCr)Ns abc rXr�rrrr�test_strip_int_error6r�z"BaseBytesTest.test_strip_int_errorcC�:|�d�}ttfD]}|�|�d|d��|�d��q	dS)Nr�r��-s--abc--)r#rtr�r$�center�rr(Z	fill_typerrr�test_center;�
��zBaseBytesTest.test_centercCr�)Nr�r�r�sabc----)r#rtr�r$�ljustr�rrr�
test_ljustBr�zBaseBytesTest.test_ljustcCr�)Nr�r�r�s----abc)r#rtr�r$�rjustr�rrr�
test_rjustIr�zBaseBytesTest.test_rjustcCsL|�t|�d�jdd�|�t|�d�jdd�|�t|�d�jdd�dS)Nr�r�rX)rHr|r#r�r�r�rrrr�test_xjust_int_errorPsz"BaseBytesTest.test_xjust_int_errorcs4|�d��|��fdd�tt���D�gd��dS)NsA��cs g|]}t�||d���qS�r7)r�rPr3rr�
<listcomp>Ws z*BaseBytesTest.test_ord.<locals>.<listcomp>)r�A�rTrw)r#r$r]rGrrr3r�test_ordUs
�zBaseBytesTest.test_ordcCs`d}|�|j�dd�|�d}|�|j�dd�|�|�t|jjdd�|�t|jjdd�dS)	Ns	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`xyzdefghijklmnopqrstuvwxyz{|}~�����������������������������������������������������������������������������������������������������������������������������r��xyzs	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������xyzs���sxyzqr�r�)r$r#�	maketransrHryr|)rZ
transtablerrr�test_maketransZszBaseBytesTest.test_maketranscCs�|�d�}|�d�}|�d�}|�d�}|�d�}|�d|�|d��|�d|�|dd��|�d|�|dd��|�d	|�|dd��|�d|�|d��|�d|�|dd��|�d|�|dd��|�d	|�|dd��|�d|�|d��|�d|�|dd��|�d|�|dd��|�d	|�|dd��|�d|�|d��|�d|�|dd��|�d|�|dd��|�d	|�|dd��|�d|�|d��|�d
|�|dd��|�d
|�|dd��|�d	|�|dd��|�d|�|d��|�d|�|dd��|�d|�|dd��|�d|�|dd��|�d|�|d��|�d|�|dd��|�d|�|dd��|�d|�|dd��dS)
Nr3�lr5r�r:rFrWrCrr7TF)	r#r$r>rBr@rFr/r;r6)rr(�l�hr��orrr�test_none_argumentsbsB




z!BaseBytesTest.test_none_argumentscCsV|�d�}|j|j|j|j|jfD]}|�t|d�|�t|d�|�t|d�qdS)Nr3rBrKi')r#r/r>r@rBrFrHry)rr(�methodrrr�(test_integer_arguments_out_of_byte_range�s
�z6BaseBytesTest.test_integer_arguments_out_of_byte_rangec	Cs�|�d�}|�d�}|�td|j|ddd�|�td|j|ddd�|�td|j|ddd�|�td|j|ddd�|�td|j|ddd�|�td|j|ddd�|�td	|j	|ddd�dS)
Nr3r�z\bfind\bz	\brfind\bz	\bindex\bz
\brindex\bz	\bcount\bz\bstartswith\bz\bendswith\b)
r#r?r|r>rBr@rFr/r6r;)rr(r�rrr�*test_find_etc_raise_correct_error_messages�s.

�������z8BaseBytesTest.test_find_etc_raise_correct_error_messagescCs(tj�|t|j�tj�|t|j�dSr)�test�supportZcheck_free_after_iteratingrar#r�rrrr�test_free_after_iterating�sz'BaseBytesTest.test_free_after_iteratingcCs4|�d�}ttd��}td�|td�<|�t|j�|�t|jdd�|�t|jttd���|�|d�}|�	|d�|�
||j�|�|�}|�|d�}|�	||�|�	|d�|�|d�}|�	|d	�|�dd
�}|�	|d�|j|dd�}|�	|d�|j|dd�}|�	|d	�|jdd
d�}|�	|d�dS)
Nr3rK�er�rwrsheller�shee�eshllo)�delete)r#r�r]r�rHr|�	translateryrtr$�assertIsInstance)rr(Zrosettar�ryrrr�test_translate�s.

zBaseBytesTest.test_translatecCs�t�d�}|�d�}|�t��|�|d�Wd�n1s wY|�t��|�|d�Wd�n1s;wY|�|�|d�d�dS)N�	_testcapi)rLrCr7rrL)r�
import_moduler#rHrIZsequence_getitemr$)rr��objrrr�test_sq_item�s

��zBaseBytesTest.test_sq_itemN)Krr r!r)r0rJrbrdrerurzr~r�r�r�rr�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�rrrrr!r%r2r9r<rArDrErGrNrPrTrVrYr`rcrfrgrirkrmrnrvrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr"/s�




	8	
%%+r"c@s@eZdZeZdd�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
S)�	BytesTestcCsBd}d}|�t|��
|dWd�dS1swYdS)N�pythonz'byte indices must be integers or slicesr/)r?r|�rr(�msgrrr�test_getitem_error�s

"�zBytesTest.test_getitem_errorcCsRt�ttj�}t|ddd��}|�t|jd�Wd�dS1s"wYdS)N�rbr)�	bufferingr)�os�open�__file__�O_RDONLYrHr|�readinto)r�fdr�rrr�test_buffer_is_readonly�s"�z!BytesTest.test_buffer_is_readonlycCsGdd�d�}|�t|��d�Gdd�d�}|�tt|��Gdd�d�}|�tt|��Gdd�d�}|�t|��d�Gdd�dt�}|�t|d	��d�|�t|d	�d
�d�Gdd�d�}|�t|��d�|�tt|���t�|�t|��d�|�tt|���t�dS)
Nc@rU)� BytesTest.test_custom.<locals>.AcS�dS�Nr�rrrrr�	__bytes__�r�*BytesTest.test_custom.<locals>.A.__bytes__N�rr r!r�rrrr�A�r[r�r�c@r�)r�Nr�rrrrr��r@c@rU)r�cSsdSrrrrrrr��rr�Nr�rrrrr��r[c@�eZdZdd�Zdd�ZdS)r�cSr�)Nr�rrrrrr��rr�cSr�rhrrrrrr�rz*BytesTest.test_custom.<locals>.A.__index__N)rr r!r�rrrrrr��sr�c@rU)r�cSr�r�rrrrrr��rr�Nr�rrrrr��r[u€z
iso8859-15��c@rU)r�cSstd�Sr�)�OtherBytesSubclassrrrrr��rYr�Nr�rrrrr��r[)	r$rtrHr|r�rLr%r��
BytesSubclass)rr�rrr�test_custom�s zBytesTest.test_customcsrt�d�}t�d�}ddlm}m}ddlm}m}m}m}m	}	m
}
m}|j}|f|_
||_|�|d�d�|�|dd�d	�|�|d
|d��d�|�|d
|td���d
�|�|d
|d��d�|�|d|d�|d�|	d��d�|�|d|d�|d�|	d��d�|�|d|d�|d�|	d��d�|�|d|d��d�|�|d|d ��d!�|�|d"|d#��d$�|�|�}
tjd%kr�d&�d|
���fd'd(�}nd)d(�}d*}|�|d+||��d,||��d-��|�|d.|d/��d0�|	d�j}d1||jtfd1||jtfd2||jtfd2||jtfd3||jtfd4|
|jtfd4|
|jtfd5|	|tfd6|||ff	D]\}}}}|�||||��||��d-��f�q,|�|d7d8�d8�|�|d9d:�d;�|�|d<�d=�|�|d>�d?�|�|d@|tdA���dB�|�|dC�dD�|�|d=�d=�|�|dE|d�|d��dF�|�t |dG|d��|�t |dG|dH��|�|dI�dI�|�|dDdI�dI�dS)JN�ctypesr�r)�	pythonapi�	py_object)�c_int�c_uint�c_long�c_ulong�c_size_t�	c_ssize_t�c_char_psformats
Hello %s !rIs
Hello world !sc=%csc=�@sc=@rwsc=�sd=%d ld=%ld zd=%zdr7rFrWs
d=1 ld=2 zd=3rBrCr�sd=-1 ld=-2 zd=-3su=%u lu=%lu zu=%zu�{i�isu=123 lu=456 zu=789si=%isi=123i����si=-123sx=%xi�
sx=abc�ntz0x%0{}Xcs�|Srr��ptr�Z
ptr_formatrr�
ptr_formatter7rYz1BytesTest.test_from_format.<locals>.ptr_formattercSsd|S)Nz%#xrr�rrrr�;rYi�ͫsptr=%pzptr=r�ss=%sscstrss=cstrs%ds%lds%lus%zds%zus%ps%5sr�s%.3sr�r�s%%�%s[%%]s[%]s%%%crs%_s%%ss%ssx=%i y=%sx=2 y=%s%crKr)!rr�r�r�r�r�r�r�r�r�r�r��PyBytes_FromFormat�argtypesZrestyper$r�Zsizeofr��name�formatr�rZINT_MINr�ZINT_MAXZLONG_MINZLONG_MAXZ	ULONG_MAXZPY_SSIZE_T_MINZPY_SSIZE_T_MAXrHr�)rr�r�r�r�r�r�r�r�r�r�r�r�Z
sizeof_ptrr�r�Zsize_maxZ	formatstrZctypes_typerZpy_formatterrr�r�test_from_formats�

$
��������������

��


�
���
�
��
��
�
�
��zBytesTest.test_from_formatcCs�Gdd�dt�}gd�}|�t|�d�|�tt||��Gdd�dt�}|�td�d�|�tt|d��Gd	d
�d
t�}|�td�d�|�tt|d��Gdd
�d
t�}td�|d�}}|�t|�d�|�tt|�dS)Nc@�eZdZdZdS)z7BytesTest.test_bytes_blocking.<locals>.IterationBlockedNr�rrrr�IterationBlockedw�r�)rr7rFrWsc@r�)z1BytesTest.test_bytes_blocking.<locals>.IntBlockedNr�rrrr�
IntBlocked�r�r�rWsc@r�)z;BytesTest.test_bytes_blocking.<locals>.BytesSubclassBlockedNr�rrrr�BytesSubclassBlocked�r�r�r�c@r�)z4BytesTest.test_bytes_blocking.<locals>.BufferBlockedNr�rrrr�
BufferBlocked�r�r�)r^r$rtrHr|r�r�)rr�rRr�r�r��ba�bbrrr�test_bytes_blockingvszBytesTest.test_bytes_blockingcCsPd}d}|�t|�t|��|�t|�t|��|�t|�t|d��|�t|�t|d��|�t|�t|d��|�t|�td|��|�t|�t|d��Gdd�dt�}|d	�}|�t|�t|��|�t|�t|d��|�t|�t|d��|�t|�t|d��|�t|�td|��|�t|�t|d��dS)
Ns123abc1@s456zyx-+rrr7rFc@r�)z5BytesTest.test_repeat_id_preserving.<locals>.SubBytesNr�rrrr�SubBytes�r�r�sqwerty())r$�id�assertNotEqualrt)rr/r(r�r�rrr�test_repeat_id_preserving�s"z#BytesTest.test_repeat_id_preservingN)rr r!rtr#r�r�r�r�r�r�rrrrr��s!rr�c@s:eZdZeZdd�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Z d9d:�Z!d;d<�Z"e#j$j%d=d>��Z&d?d@�Z'e#j(j)j*Z*dAdB�Z+dCdD�Z,dEdF�Z-dGS)H�
ByteArrayTestcCsFtd�}d}|�t|��
|dWd�dS1swYdS)Nr��,bytearray indices must be integers or slicesr/�r�r?r|r�rrrr���

"�z ByteArrayTest.test_getitem_errorcCsFtd�}d}|�t|��
d|d<Wd�dS1swYdS)Nr�r�Zpythonr/r�r�rrr�test_setitem_error�r�z ByteArrayTest.test_setitem_errorcCs|�ttt��dSr)rHr|�hashr�rrrr�test_nohash��zByteArrayTest.test_nohashcCsnd}|ddt|�}t��}z�t|d��
}|�|�Wd�n1s&wYt|d��}td�}|�|�}Wd�n1sDwY|�|t|��|�t|�t|��t|d��
}|�|�Wd�n1spwYt|d��}|�|�	�|�Wd�n1s�wYWzt
�|�WdSty�YdSwzt
�|�Wwty�Yww)NsHello world
r���wbr�)
rG�tempfile�mktempr��writer�r�r$r^�readr��remove�OSError)rZshort_sampler�Ztfnr�r(�nrrr�test_bytearray_api�s<��������z ByteArrayTest.test_bytearray_apicCs\td�}|�|��d�|�|d�td�}|��|�|d�t�}|��|�|�dS)Nr3sollehshello1s1olleh)r�r$r�r�r'rrr�test_reverse�szByteArrayTest.test_reversecCsttd�}|��|�|d�td�}|��|�|d�td�}|�td��|��|�td��|�|d�dS)Nr�r�rr0r-)r�rjr$rqr�r'rrr�
test_clear�szByteArrayTest.test_clearcCs�td�}|��}|�|d�td�}|��}|�|d�td�}|��}|�||�|�||�|�td��|�|d�|�|d�dS)Nr�rryr+)r�r,r$�assertIsNotrqr�)rr(r�rrrr0�szByteArrayTest.test_copycCs4dd�}|d�}|�t�d|�|d�|d�g�dS)NcSsttt|��Sr)r�r�r�r�rrrr��z&ByteArrayTest.test_regexps.<locals>.byr�s\w+r�r�)r$�re�findallr�rrr�test_regexpss$zByteArrayTest.test_regexpscCs>tgd��}d|d<|�|tgd���d|d<|�|tgd���td�|d	<|�|tgd
���zd	|d<|�d�Wn	tyFYnwzd	|d
<|�d�Wn	ty[Ynwzd|d	<|�d�Wn	typYnwz
td�|d	<|�d�Wn	ty�Ynwzd|d	<|�d�WdSty�YdSw)NrVr?r7)r7r?rWr�rB)r7r?r�r>r)r>r?r�rWzDidn't raise IndexErrori����rKzDidn't raise ValueErrorzDidn't raise TypeError)r�r$r�failrIryr|r'rrr�test_setitem	sJ�����zByteArrayTest.test_setitemcCsbttd��}|d=|�|ttdd���|d=|�|ttdd���|d=|�|tgd���dS)Nr>rr7rBr.r�)r7rFrWr�rr�r)r�r]r$r'rrr�test_delitem+szByteArrayTest.test_delitemc	Csttd��}|�t|�ttd���tgd��|dd�<|�|tgd���|dd�=|�|tgd���tgd��|dd�<|�|ttd���td	d
g�|dd�<|�|tgd
���gd�|dd�<|�|ttd���gd�|dd�<|�|tgd���d|dd�<|�|tgd���td�|dd�<|�|tgd���g|dd�<|�|tgd���dddtd�ddddgddgggf	D]}|�t��||dd�<Wd�n1s�wYq�gd�dd gfD]}|�t��||dd�<Wd�n	1�swYq�dS)!Nr>)r7r7r7r7r7rr�)
r7r7r7r7r7r�rr�rr.r�)r�rr�rr.)rr7rFrWr�r?�er�r�)rr7rFr?rr�rr.)rWr�r�rrW)rLrLrL)
rr7rFrLrLrLrWr�r�rr�rr.sfoo)rr7rF�f�or	)rr	r	rr	r	r�)rr	r	r	r	gP����KDr�gffffff@r/r(r�r�)rvrwrKi���i(#)	r�r]r$r^rr�rHr|ry)rr(�elemrrr�
test_setslice4sB
������zByteArrayTest.test_setslicecCsvttd��}|�t|�ttd���|dd�=|�t|�ttdd���|�tdd��|�t|�ttdd���dS)Nr?r>�n)r�r]r$r^�extendr'rrr�test_setslice_extend\s
z"ByteArrayTest.test_setslice_extendcCs,td�}|��|dd�=|td�7}~dS)Nr>r7rF)r��poprtr'rrr�test_fifo_overrunes

zByteArrayTest.test_fifo_overruncCs2td�}t�|�}|dd�=|�t�|�|�dS)Nr>r7)r�r9�	getsizeof�assertLessEqual)rr(r�rrr�test_del_expandns

zByteArrayTest.test_del_expandcCs�dddddddd>tjddd	d
f}|D]O}|D]J}|dd�D]A}ttd��}t|�}||||�}|��|||||�<|||||�<|�|t|��||||�=||||�=|�|t|��qqqdS)Nrr7rWr�r�iMrBrCr�i���rw)r9r:r^r]r�r�r$)rr�r�r�r�r�r(rrrr�test_extended_set_del_sliceus&����z)ByteArrayTest.test_extended_set_del_slicecCs@ttd��}||dd�<|�|tttd��ttd����dS)NrKr)r�r]r$r^r'rrr�test_setslice_trap�s(z ByteArrayTest.test_setslice_trapcCs|td�}|}|d7}|�|d�|�||�|�||�|d7}|�|d�z|d7}Wn
ty6YdSw|�d�dS)Nr�r�r�r�s	abcdefxyzrz'bytes += unicode didn't raise TypeError)r�r$rLr|r�rr(r�rrr�test_iconcat�s�zByteArrayTest.test_iconcatcC�<td�}|}|d9}|�|d�|�||�|�||�dS)Nr�rWr��r�r$rLrrrr�test_irepeat��zByteArrayTest.test_irepeatcCr)Nr�r?sdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrrrrr�test_irepeat_1char�rz ByteArrayTest.test_irepeat_1charcCsdt�}|��}|�|d�|g}td�D]}|d7}|��}|�|t|��||vr/|�|�qdS)Nrr?r�)r��	__alloc__ZassertGreaterEqualr]�
assertGreaterrGrq)rr(�allocr$rRrrr�
test_alloc�s
��zByteArrayTest.test_alloccsft����fdd�}��|����t��ttdd�����t��d����}��|t���dS)Nc	3s~�tdd�D]6}|Vt��}��|ttdt|�d�����t��t|����t��|����}��|t���qdS)Nr7r?)r]r^r$rGrrr)rRr/r�r(rrr�g�s��z(ByteArrayTest.test_init_alloc.<locals>.gr7r?�c)r�rr$r^r]rGrr)rr"rrr!r�test_init_alloc�s	zByteArrayTest.test_init_alloccCs�d}t|�}|�|�|�|||�|�|dd�|�td�}|�tt|d��|�dd�|dD��|�||d�|�|dd�|�td�}|�ttt|d���|�||d�|�|dd�|�td�}|�ttt|d���|�||d�|�|dd�|�td�}|�t|jgd	��|�t|jgd
��|�t	|�d�td�}|�t
td��g�|�|d
�dS)Nr3r�r�css�|]}t|�VqdSr)r�rrrrrS�rz,ByteArrayTest.test_extend.<locals>.<genexpr>�2r�)rr7rFrK)rr7rFrBrr/r�)r�r
r$r�r�rar^rHryrGrr�)rrMr/rrr�test_extend�s2
zByteArrayTest.test_extendcstd����td��|��d���td��|��d�|�t�fdd��|�t�fdd��|�t�fdd����td	����td
��|��d�|�t�fdd����ttd
���|��d�tgd��}|�d�|�|tgd���|�d�|�|tddg��dS)Nr3r�shelosheocs��td��S)Nr�)r�r�rr3rrr4�r<z+ByteArrayTest.test_remove.<locals>.<lambda>c�
��d�S)Ni��r�rr3rrr4�r;cr()Nr�r)rr3rrr4�r;r�r�r�cr()Nr�r)rr3rrr4�r;r�r)�~r�rT�r�)r*rTr+r+r*rT)	r�r�r�r$rHryr|rrtr�rr3r�test_remove�s&

zByteArrayTest.test_removecs�td��|����td��|���d�td��|���d�td��|�t�fdd��|�td	d��|�td
���d�dS)NrIryrr1rCr�cr()Nr>)rrr3rrr4r;z(ByteArrayTest.test_pop.<locals>.<lambda>cS�
t���Sr)r�rrrrrr4r;rrw)r�r$rr�rHrIrrr3r�test_popszByteArrayTest.test_popcCs|�tdd��dS)NcSr-r)r��sortrrrrr4
r;z+ByteArrayTest.test_nosort.<locals>.<lambda>)rH�AttributeErrorrrrr�test_nosortr�zByteArrayTest.test_nosortcs�td����td��|��d�|���d�d�t����td��|�t��d�|�t�fdd��t����ttd���|��d	�dS)
Nshellr�r3r?r�r7cr()Nr:)rqrr3rrr4r;z+ByteArrayTest.test_append.<locals>.<lambda>�A)r�rqr�r$rGrHr|rrrr3r�test_appendszByteArrayTest.test_appendcs�td����dtd����dtd����dtd����dtd��|��d�|�t�fdd	��t����d
ttd���|��d�dS)
Nsmssssppr7rRr�rCrpr&cs��dd�S)Nr�1)�insertrr3rrr4#r@z+ByteArrayTest.test_insert.<locals>.<lambda>rr�r2)r�r5r�r$rHr|rrrr3r�test_insertszByteArrayTest.test_insertcCsRtd�}|�||�ddd��tdd�td�D��}td�}|�||�|��dS)Nr�scdercSsg|]}|�qSrrrPrrrr�.rEz-ByteArrayTest.test_copied.<locals>.<listcomp>rKr)r�r�rUr]r�)rr(�tr�rrr�test_copied(s
zByteArrayTest.test_copiedcCs�td��d�\}}}|�|d�|�|d�|�||�|d7}|�|d�td��d�\}}}|�|d�|�|d�td��d�\}}}|�|d�|�|d�|�||�|d7}|�|d�td��d�\}}}|�|d�|�|d�dS)Nr��yr�!)r�rhr$r�rj)rr/r(r�rrr�0test_partition_bytearray_doesnt_share_nullstring2s$z>ByteArrayTest.test_partition_bytearray_doesnt_share_nullstringcs
ttd���t��}�fdd�}|d��dd�}|�t|d�|��|�|�t|d�|��|�|�t|d�|��|�|�t�jd�|��|�|�t�j�d�|��|��fdd	�}|�t|�|��|��fd
d�}|�t|�|��|�dS)Nr>cs"t|dd|d��dd�<dS)Nr7rFrB)r])r�r3rr�resizeNs"z3ByteArrayTest.test_resize_forbidden.<locals>.resize�r.rr7cs
�d=dSr6rrr3rr�delitem]rz4ByteArrayTest.test_resize_forbidden.<locals>.delitemcsd�ddd�<dS)Nrr7rBrFrrr3rr�delslicebsz5ByteArrayTest.test_resize_forbidden.<locals>.delslice)r�r]rrH�BufferErrorr$rr�)r�vr<rMr>r?rr3r�test_resize_forbiddenGs*z#ByteArrayTest.test_resize_forbiddencCs ddlm}|�t|t��dS)Nr)�getbuffer_with_null_view)r�rCrHr@r�)rrCrrr�test_obsolete_write_lockgsz&ByteArrayTest.test_obsolete_write_lockc	Cs�td�}td�}ttjd�D]�}t|�}t�||f|�}t�|�\}}||dd�<|�t	|�t	|��|�t|�|�t
|�t�||f|�}t�|�\}}||dd�<|�t	|�t	|��|�t|�|dd��tdt|��D]}t
|�qrt�||f|�}t�|�\}}||dd�<|�t	|�t	|��|�t|�|t|�d��|�t
t
|�t�||f|�}t�|�\}}||dd�<|�t|�g�qdS)Nr�sqwertyr7)r�r^r]rprqrarrrsr$r%rwrGrH�
StopIteration)	rrMrrtZitorigryrxr(rRrrr�test_iterator_pickling2ls8
�z%ByteArrayTest.test_iterator_pickling2cCs4td�}t|�}t|�|��|�t|�g�dS)Nr�)r�rarwrjr$r^)rr�rxrrr�test_iterator_length_hint�s
z'ByteArrayTest.test_iterator_length_hintcCsLtd�}d|dd�<|d}|d}|�|d�|�||�|�|d�dS)Nr�r�rFr7rWsxcsxcxcxc�r�r$)rr(r�r�rrr�test_repeat_after_setslice�sz(ByteArrayTest.test_repeat_after_setslicec	sG�fdd�d�}|�d��&td��|�t��
|��d<Wd�n1s(wYWd�n1s7wY|�d��7t�d�}td��|�t��|��d|��Wd�n1scwYWd�dSWd�dS1s{wYdS)Ncrf)z/ByteArrayTest.test_mutating_index.<locals>.Boomcrgr2rirr3rrr�rlz9ByteArrayTest.test_mutating_index.<locals>.Boom.__index__Nrmrr3rr�Boom�rorJZ
tp_as_mappingsNow you see me...rZtp_as_sequencer�)ZsubTestr�rHrIrr�Zsequence_setitem)rrJr�rr3r�test_mutating_index�s"���
��"�z!ByteArrayTest.test_mutating_indexN).rr r!r�r#r�r�r�r�r�r�r0rrrrrrrrrrrrr r$r'r,r.r1r3r6r8r;rBr�r�Zcpython_onlyrDrFZ
list_testsZ
CommonTestZtest_exhausted_iteratorrGrIrKrrrrr��sN"	(		


 

$	
r�c@s�eZdZedd��Zedd��Zdd�Zejj	dd��Z
d	d
�Zedd��Zd
d�Z
dd�Zdd�Zdd�Ze�ejjd�dd��ZdS)�AssortedBytesTestcCs�ttfD]:}|�|t��d�|�|tdg��d�|�|tgd���d�|�|d�d�|�|d�d	�|�|d
�d�qdS)N�bytearray(b'')rzbytearray(b'\x00')rxzbytearray(b'\x00\x01\xfe\xff')r�zb'abc'�'zb"'"s'"zb'\'"')r��reprr$r�r�rrr�
test_repr_str�s��zAssortedBytesTest.test_repr_strc	Cs�dtd�fD]:}|�t|�t|��|�t|d�t|��|�tdt�t|�j	���
t|d�Wd�n1s;wYqdS)Nr�rz\b%s\br�)
r�r$r�r�r?r|r�escaper%rr'rrr�test_format�s����zAssortedBytesTest.test_formatcCs�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�dtd�kd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�|�td�dkd�dS)Nr�Tr�Frsrrrr�test_compare_bytes_to_bytearray�s0z1AssortedBytesTest.test_compare_bytes_to_bytearraycCsH|�tj�|�tj�d�tj�|�tj�|�tj�d�tj�dS)Nz
bytearray(zbytes()ZassertIsNotNoner��__doc__r�r6rtrrrr�test_doc�szAssortedBytesTest.test_doccCs,td�}t|�}t|�}|�|t|��dS)NsHello world
����)rtrr�r$)rr��bufr(rrr�test_from_bytearray�sz%AssortedBytesTest.test_from_bytearraycCsp|�td�d�|�td�d�|�td�d�|�ttd��d�|�ttd��d�|�ttd��d	�dS)
Nrzb''r�zb'x'rzb'\x80'rMzbytearray(b'x')zbytearray(b'\x80'))r$r�r�rrrr�test_to_str�szAssortedBytesTest.test_to_strcCsRgd�}|D]
\}}|�|t|d��qtdd�D]
}|�ttdt|��qdS)N))sWonderful spamzWonderful spam)sWonderful spam toozWonderful spam too)s��uª€)s\xaa\x00\000\200z\xaa\x00\000\200r�rTrKzb"%s")r$r�r]rH�SyntaxError�evalr)rZtestsr(r�r�rrr�test_literals
��zAssortedBytesTest.test_literalcC�|�d�td��ddg�dS�NrWr"r�r�)r$r^rrrrr�test_split_bytearray�z&AssortedBytesTest.test_split_bytearraycCr\r])r$r_rrrrr�test_rsplit_bytearrayr_z'AssortedBytesTest.test_rsplit_bytearraycCst�}|�|�dd�|�dS)Nr)r�r�rUr'rrr�test_return_selfsz"AssortedBytesTest.test_return_selfz4BytesWarning is needed for this test: use -bb optioncCsJdd�}|��ddkWd�n1swY|��ddkWd�n1s-wY|��ddkWd�n1sDwY|��ddkWd�n1s[wY|��td�dkWd�n1stwY|��dtd�kWd�n1s�wY|��td�dkWd�n1s�wY|��dtd�kWd�n1s�wY|��ddkWd�n1s�wY|��ddkWd�n1s�wY|��ddkWd�n	1�swY|��
ddkWd�dS1�swYdS)NcSst�dtf�Srr	rrrr�
bytes_warningrz5AssortedBytesTest.test_compare.<locals>.bytes_warningrrr�r�r�)rrbrrrr�sJ
�
�
�
�����
�
�
�
$�zAssortedBytesTest.test_compareN)rr r!rrPrRrSr�r�Zrequires_docstringsrUrWrXr[r^r`ra�unittestZ
skipUnlessr9�flagsrbr�rrrrrL�s&






�rLc@r�)�BytearrayPEP3137TestcCst|�Srrc)rr�rrr�marshalIrYzBytearrayPEP3137Test.marshalcCs�|�d�}dD]}t||�}|d�}|�||�|�|||d�qdD]}t|�}|�||�|�|||d�q$|�d�}|�|g�}|�||�|�||�dS)Ns1234)�zfillr�r�r�rWz" returned self on a mutable object)zval.split()[0]zval.rsplit()[0]zval.partition(b".")[0]zval.rpartition(b".")[2]zval.splitlines()[0]zval.replace(b"", b"")z! returned val on a mutable objectr)rg�getattrr$r�rZr#)r�valZmethnamer�Znewval�expr�seprrr�test_returns_new_copyLs$

��
z*BytearrayPEP3137Test.test_returns_new_copyN)rr r!rgrmrrrrrfHsrfcs eZdZ�fdd�ZdZ�ZS)�FixedStringTestcs&t|t�r
|�|�d��St��|�S)Nr�)�
isinstancer�r#r��super�fixtype)rr��r&rrrqds
zFixedStringTest.fixtypeT)rr r!rqZcontains_bytes�
__classcell__rrrrrrncsrnc@�eZdZeZdS)�ByteArrayAsStringTestN)rr r!r�r#rrrrrukr�ruc@rt)�BytesAsStringTestN)rr r!rtr#rrrrrvnr�rvc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�SubclassTestcCs�|�t|j|j��|�|��|j�d\}}|�|�|�|�}}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||�|�||||�|�||||�|�||||�|�|d|dk�dS)N)r+�efghr�)r��
issubclassr#�basetyper�r�r$)rr/r(Z_aZ_brrr�
test_basictszSubclassTest.test_basiccCs`|�d�}|���|g�}|�||�|�t|�|jt|��|�dg�}|�t|�|j�dSr*)r#rzr#r�rLr%)r�s1�s2Zs3rrrr%�s
zSubclassTest.test_joincCs�|�d�}d|_|�d�|_ttjd�D]A}t�t�||��}|�t	|�t	|��|�
||�|�
|j|j�|�
|j|j�|�
t|�t|��|�
t|j�t|j��qdS)Nr+r>rxr7)r#r��yr]rprqrsrrr�r�r$r%)rr/rtr(rrr�test_pickle�s
�zSubclassTest.test_picklecCs�|�d�}d|_|�d�|_tjtjfD]<}||�}|�t|�t|��|�||�|�|j|j�|�|j|j�|�t|�t|��|�t|j�t|j��qdS)Nr+r>rx)	r#r�r~r,r-r�r�r$r%r.rrrr0�s
�zSubclassTest.test_copycs��j�d�}��|d���t|��j�G�fdd�d�j�}|�d�}��|d���t|�|���|jd�G�fdd�d�j�}|�d�}��|d���t|�|���|jd�dS)Nr�rcrf)z%SubclassTest.test_fromhex.<locals>.B1cs�j�||�}d|_|S�N�bar)rz�__new__�foo)�clsr�merrrr��sz-SubclassTest.test_fromhex.<locals>.B1.__new__N)rr r!r�rrrr�B1�ror�r�crf)z%SubclassTest.test_fromhex.<locals>.B2cs.�jtur�jj|g|�Ri|��d|_dSr�)rzrtrr�)r�r�kwargsrrrr�s

z.SubclassTest.test_fromhex.<locals>.B2.__init__N�rr r!rrrrr�B2�ror�)r#r�r$rLr%rzr�)rr(r�r�rrrr�s

zSubclassTest.test_fromhexN)rr r!r{r%rr0rrrrrrwrs


rwc@r�)�ByteArraySubclassNr�rrrrr��r�r�c@r�)r�Nr�rrrrr��r�r�c@r�)r�Nr�rrrrr��r�r�c@seZdZeZeZdd�ZdS)�ByteArraySubclassTestcCsNGdd�dt�}|dd�}|ddd�}|�|d�|ddd�}|�|d�dS)Nc@seZdZddd�ZdS)z:ByteArraySubclassTest.test_init_override.<locals>.subclassr7c_stj|g|�Ri|��dSr)r�r)r��newargrr�rrrr�rZzCByteArraySubclassTest.test_init_override.<locals>.subclass.__init__Nr�r�rrrr�subclass�sr�r�r+)�source)r�r�rH)rr�r�rrr�test_init_override�s
z(ByteArraySubclassTest.test_init_overrideN)rr r!r�rzr�r#r�rrrrr��sr�c@seZdZeZeZdS)�BytesSubclassTestN)rr r!rtrzr�r#rrrrr��sr��__main__).rTr}r�rr9r,rrpr�r�rdZtest.supportr�rrZtest.string_testsZtest.list_testsrrZtest.support.script_helperrrerbrrr"ZTestCaser�r�rLrfZstring_testsZBaseTestrnrurvrwr�r�rtr�r�r�r�r�mainrrrr�<module>sh
-W]�