403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.18
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_io.cpython-313.pyc
�

��i2���:
�SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKJrJr SSKJrJr SSKJr SSKJrJrJr SSKJrJrJrJ r J!r! SSK"J#r# SSK$r$SSK%r%SSK&r'SSK(r(S	r)"S
S\(RT5r+S
r-\
R\"\/"\S5S5r0"SS5r1"SS5r2"SS\2\%Rf5r4"SS\2\'Rf5r5"SS\25r6"SS\6\%Rf5r7"SS\6\'Rf5r8"SS\65r9"S S!\9\%Rf5r:"S"S#\9\'Rf5r;"S$S%\65r<"S&S'\<\%Rf5r="S(S)\<\'Rf5r>"S*S+\65r?"S,S-\?\%Rf5r@"S.S/\?\'Rf5rA"S0S15rB"S2S3\B\%R�5rD"S4S5\B\'R�5rE"S6S75rF"S8S9\F\%R�5rG"S:S;\F\'R�5rH"S<S=\B5rI"S>S?\I\%R�5rJ"S@SA\I\'R�5rK"SBSC5rL"SDSE\L\%Rf5rM"SFSG\L\'Rf5rN"SHSI\
R�5rP"SJSK\P5rQ\R�"SLSM\
R�55rS"SNSO\P5rT\R�"SPSQ\
R�55rU"SRSS5rV"STSU5rW"SVSW\
R�\V5rX"SXSY\X\W5rY"SZS[\X5rZ"S\S]\
R�\V5r["S^S_\[\W5r\"S`Sa\[5r]"SbSc\
R�5r^"SdSe\^5r_"SfSg\^5r`"ShSi\X\[5ra"SjSk\a\W5rb"SlSm\a5rc"SnSo\$R�5reSprf"SqSr\
R�5rg"SsSt\
R�5rh"SuSv\%R�5riSwrj"SxSy\h5rk"SzS{\h5rl"S|S}\
R�5rm"S~S\m5rn"S�S�\m5ro"S�S�\
R�5rp"S�S�\p5rq"S�S�\p5rr\
R�"\R�S�:HS�5"S�S�\
R�55ru"S�S�\u5rv"S�S�\u5rwS�rx\yS�:Xa\
R�"5 gg!\,a Sr)GN}f=f)�zUnit tests for the io module.�N)�deque�UserList)�cycle�count)�support)�assert_python_ok�assert_python_failure�run_python_until_end)�
import_helper�is_apple�	os_helper�threading_helper�warnings_helper)�FakePathc��[U0UD6n[5n[R"U[	U55 U[U5R
S5SS&U$)z?Create a bytes-like object having no string or sequence methods�BN)�bytes�EmptyStruct�ctypes�resize�len�
memoryview�cast)�pos�kw�data�objs    �!C:\Python313\\Lib\test\test_io.py�	bytesliker9sH���c� �R� ���m���
�
�c�3�t�9�%�'+�
�3����S�!�!�$��
�c��\rSrSrSrg)r�@�N��__name__�
__module__�__qualname__�__firstlineno__�__static_attributes__r#r rrr@s��r rc�B�[R"S[U0UD65$)N�b)�arrayr)rrs  rrr6s���{�{�3��s� 1�b� 1�2�2r c�n�[[SSS9nURsSSS5 $!,(df   g=f)z(Get the default TextIOWrapper chunk size�r�latin-1��encodingN)�open�__file__�_CHUNK_SIZE)�fs r�_default_chunk_sizer6Ds#��	
�h��i�	0�A��}�}�
1�	0�	0�s�&�
4�alarmztest requires signal.alarm()c��\rSrSrSrSrg)�BadIndex�Nc��SS- g�N�rr#��selfs r�	__index__�BadIndex.__index__O�	��	�!�r r#N)r%r&r'r(r@r)r#r rr9r9Ns��r r9c�\�\rSrSrSrSSjrSrSrSrSr	Sr
S	rS
rSr
SS
jrSrg)�MockRawIOWithoutRead�RziA RawIO implementation without read(), so as to exercise the default
RawIO.read() which calls readinto().c�N�[U5Ul/UlSUlSUlg�Nr)�list�_read_stack�_write_stack�_reads�_extraneous_reads)r?�
read_stacks  r�__init__�MockRawIOWithoutRead.__init__Vs&���
�+���������!"��r c�`�URR[U55 [U5$�N)rJ�appendrr�r?r+s  r�write�MockRawIOWithoutRead.write\s#����� � ��q��*��1�v�
r c��g�NTr#r>s r�writable�MockRawIOWithoutRead.writable`���r c��g�N�*r#r>s r�fileno�MockRawIOWithoutRead.filenocs��r c��grWr#r>s r�readable�MockRawIOWithoutRead.readablefrZr c��grWr#r>s r�seekable�MockRawIOWithoutRead.seekableirZr c��grGr#�r?r�whences   r�seek�MockRawIOWithoutRead.seekl���r c��grGr#r>s r�tell�MockRawIOWithoutRead.tellorkr c�^�U=RS-
sl[U5nURSnUcURS	g[U5n[U5U::aURS	X1SU&U$USUUSS&X2SURS'U$![a U=RS-
slgf=fr<)rKrrI�
IndexErrorrL)r?�buf�max_lenr�ns     r�readinto�MockRawIOWithoutRead.readintors������q����c�(��	��#�#�A�&�D��<�� � ��#����I���t�9���� � ��#����G��H��(�7�^�C��F�"&�x�.�D���Q���N���	��"�"�a�'�"��	�s�B
�
B,�+B,Nc��U$rQr#)r?rs  r�truncate�MockRawIOWithoutRead.truncate�s���
r )rLrIrKrJ)r#rQ)r%r&r'r(�__doc__rNrTrXr^rardrirmrtrwr)r#r rrDrDRs9��,�#���������*r rDc��\rSrSrSrg)�CMockRawIOWithoutRead�r#Nr$r#r rr{r{����r r{c��\rSrSrSrg)�PyMockRawIOWithoutRead�r#Nr$r#r rrr�r}r rc��\rSrSrSSjrSrg)�	MockRawIO�Nc��U=RS-
slURRS5$! U=RS-
slg=f)Nr=rr )rKrI�poprL�r?rss  r�read�MockRawIO.read�sG�����q���	��#�#�'�'��*�*��	��"�"�a�'�"��s	�2�Ar#rQ�r%r&r'r(r�r)r#r rr�r��s��r r�c��\rSrSrSrg)�
CMockRawIO�r#Nr$r#r rr�r��r}r r�c��\rSrSrSrg)�PyMockRawIO�r#Nr$r#r rr�r��r}r r�c�P^�\rSrSrU4SjrSU4SjjrSrSrU4SjrSr	U=r
$)	�MisbehavedRawIO�c�(>�[TU]U5S-$�N�)�superrT)r?r+�	__class__s  �rrT�MisbehavedRawIO.write�s����w�}�Q��!�#�#r c�(>�[TU]U5S-$r�)r�r�)r?rsr�s  �rr��MisbehavedRawIO.read�s����w�|�A���"�"r c��g)Ni����r#rgs   rri�MisbehavedRawIO.seek�rZr c��g)Ni8���r#r>s rrm�MisbehavedRawIO.tell�rZr c�>>�[TU]U5 [U5S-$)N�)r�rtr)r?rqr�s  �rrt�MisbehavedRawIO.readinto�s���
������3�x�!�|�r r#rQ)r%r&r'r(rTr�rirmrtr)�
__classcell__�r�s@rr�r��s!���$�#����r r�c��\rSrSrSrg)�CMisbehavedRawIO�r#Nr$r#r rr�r��r}r r�c��\rSrSrSrg)�PyMisbehavedRawIO�r#Nr$r#r rr�r��r}r r�c�.^�\rSrSrU4SjrSrSrU=r$)�SlowFlushRawIO�c�V>�[TU]5 [R"5UlgrQ)r�rN�	threading�Event�in_flush)r?r�s �rrN�SlowFlushRawIO.__init__�s���
����!���)��
r c�d�URR5 [R"S5 g)Ng�?)r��set�time�sleepr>s r�flush�SlowFlushRawIO.flush�s���
�
�����
�
�4�r )r�)r%r&r'r(rNr�r)r�r�s@rr�r��s���*��r r�c��\rSrSrSrg)�CSlowFlushRawIO��r#Nr$r#r rr�r��r}r r�c��\rSrSrSrg)�PySlowFlushRawIO��r#Nr$r#r rr�r��r}r r�c��\rSrSrSrSrSrg)�CloseFailureIO��rc�@�UR(d
SUl[eg�Nr=��closed�OSErrorr>s r�close�CloseFailureIO.close�s���{�{��D�K��M�r )r�N)r%r&r'r(r�r�r)r#r rr�r��s��
�F�r r�c��\rSrSrSrg)�CCloseFailureIO��r#Nr$r#r rr�r��r}r r�c��\rSrSrSrg)�PyCloseFailureIO��r#Nr$r#r rr�r��r}r r�c�D^�\rSrSrU4SjrSU4SjjrU4SjrSrU=r$)�
MockFileIO��c�2>�/Ul[TU]	U5 grQ)�read_historyr�rN�r?rr�s  �rrN�MockFileIO.__init__�s������
����r c�>�[TU]U5nURRUcS5 U$[	U55 U$rQ)r�r�r�rRr)r?rs�resr�s   �rr��MockFileIO.read�s>����g�l�1�o����� � ����C��
�;>�c�(�C��
r c�\>�[TU]U5nURRU5 U$rQ)r�rtr�rR)r?r+r�r�s   �rrt�MockFileIO.readinto�s+����g��q�!����� � ��%��
r )r�rQ)	r%r&r'r(rNr�rtr)r�r�s@rr�r��s�����
�r r�c��\rSrSrSrg)�CMockFileIO��r#Nr$r#r rr�r��r}r r�c��\rSrSrSrg)�PyMockFileIO��r#Nr$r#r rr�r��r}r r�c�,�\rSrSrSrSrSrSrSrg)�MockUnseekableIO��c��g�NFr#r>s rrd�MockUnseekableIO.seekable�s��r c�$�URS5e�Nznot seekable��UnsupportedOperation�r?�argss  rri�MockUnseekableIO.seek�����'�'��7�7r c�$�URS5er�r�r�s  rrm�MockUnseekableIO.tell�r�r c�$�URS5er�r�r�s  rrw�MockUnseekableIO.truncate�r�r r#N)	r%r&r'r(rdrirmrwr)r#r rr�r��s���8�8�8r r�c�,�\rSrSr\R
rSrg)�CMockUnseekableIO�r#N)r%r&r'r(�ior�r)r#r rr�r��s���2�2�r r�c�,�\rSrSr\R
rSrg)�PyMockUnseekableIO�r#N)r%r&r'r(�pyior�r)r#r rr�r�s���4�4�r r�c�4^�\rSrSrU4SjrSrSrSrU=r$)�MockCharPseudoDevFileIOic�$>�[TU]U5 grQ)r�rNr�s  �rrN� MockCharPseudoDevFileIO.__init__	s���
����r c��grGr#r�s  rri�MockCharPseudoDevFileIO.seekrkr c��grGr#r�s  rrm�MockCharPseudoDevFileIO.tellrkr r#)	r%r&r'r(rNrirmr)r�r�s@rr�r�s���
���r r�c��\rSrSrSrg)�CMockCharPseudoDevFileIOir#Nr$r#r rrrr}r rc��\rSrSrSrg)�PyMockCharPseudoDevFileIOir#Nr$r#r rrrr}r rc�H�\rSrSrSrSrSrSrSrSSjr	Sr
S	rS
rg)
�MockNonBlockWriterIOic� �/UlSUlgrQ)rJ�
_blocker_charr>s rrN�MockNonBlockWriterIO.__init__s�����!��r c�Z�SRUR5n/URSS&U$�Nr )�joinrJ)r?�ss  r�pop_written� MockNonBlockWriterIO.pop_writtens+���H�H�T�&�&�'��!����!���r c��Xlg)z'Block when a given char is encountered.N)r	)r?�chars  r�block_on�MockNonBlockWriterIO.block_on$s��!�r c��grWr#r>s rra�MockNonBlockWriterIO.readable(rZr c��grWr#r>s rrd�MockNonBlockWriterIO.seekable+rZr c��grGr#rgs   rri�MockNonBlockWriterIO.seek.s��r c��grWr#r>s rrX�MockNonBlockWriterIO.writable2rZr c�>�[U5nSnUR(aJURUR5nUS:�a URR	USU5 U$SUlgURR	U5 [
U5$![
a N2f=f)N���r)rr	�indexrJrR�
ValueErrorr)r?r+rss   rrT�MockNonBlockWriterIO.write5s����!�H�������
 ��G�G�D�.�.�/���q�5��%�%�,�,�Q�r��U�3��H�*.�D�&����� � ��#��1�v�
���
��
�s�B�
B�B)r	rJN�r)
r%r&r'r(rNrrrardrirXrTr)r#r rrrs*��"��
"�����r rc�,�\rSrSr\R
rSrg)�CMockNonBlockWriterIOiIr#N)r%r&r'r(r��BlockingIOErrorr)r#r rr$r$Is
���(�(�Or r$c�,�\rSrSr\R
rSrg)�PyMockNonBlockWriterIOiLr#N)r%r&r'r(r�r%r)r#r rr'r'Ls
���*�*�Or r'c���\rSrSrSrSrSrS:SjrSrSr	Sr
\R"\
RS	5\R"\"\S
5S5S55rS
rSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%S r&S!r'S"r(S#r)S$r*S%r+S&r,S'r-S(r.S)r/S*r0S+r1S,r2S-r3S.r4S/r5S0r6S1r7S2r8S3r9S4r:S5r;S6r<\=R|"5S75r?S8r@g9);�IOTestiPc�L�[R"[R5 grQ�r
�unlink�TESTFNr>s r�setUp�IOTest.setUpR�������)�)�*r c�L�[R"[R5 grQr+r>s r�tearDown�IOTest.tearDownUr0r c��URURS5S5 URS5 URUR5S5 UR	S5 URURS5S5 URUR	S5S5 URURS5S5 URUR5S5 URUR	SS5S5 URUR5S5 [S5nURURU5S	5 S
USS&URUR	S5S5 URURS5S5 URUR	SS5S
5 URUR5S
5 URURS5S5 URUR5S
5 UR
[URS5 g)Nsblah.r�rsHello.�rr=s	 world


�	s	*********�hr��
��)�assertEqualrTrwrmri�	bytearray�assertRaises�	TypeError)r?r5�buffers   r�	write_ops�IOTest.write_opsXs����������*�A�.�	�
�
�1�
��������1�%�	���q�	��������*�A�.���������A�&��������+�Q�/��������1�%��������A���*��������1�%��?�+����������!�,���q�	���������A�&����������*��������A���+��������2�&�������B���,��������2�&����)�Q�V�V�S�1r c��URS5nURUS5 [U5nURURU5S5 UR[	U5S5 [S5nURURU5S5 UR[
U5S5 URUSSS5 URURS5S5 URURS5S5 URURS	5S
5 URUR[S55S5 URURSS5S
5 URURS5S5 URURS5S
5 URUR[55S5 URURSS	5S5 URURS5S5 URUR5S5 UR[URS5 U(a�URS5 URUR5S5 URS
5 URUR5S5 URUR5S
5 URS5 [S5nURURU5S5 UR[	U5S5 gg)Nr�shellos worlr��d
r��hello world
r=r �xi����r5sworld�
r:sworld
)r�r;rrtrr<rrirmr=r>�	readinto1)r?r5�bufferedrs    r�read_ops�IOTest.read_opspsl���v�v�a�y������x�(�����������D�)�1�-�����t��h�/���|��������D�)�1�-�����T��A�&�����b�q��6�*���������A�&���������%5�6���������C�(�������I�d�O�4�a�8��������A���*���������H�-���������C�(�������I�K�0�!�4��������A���*���������H�-��������2�&����)�Q�V�V�S�1��
�F�F�1�I����Q�V�V�X�'7�8�
�F�F�1�I����Q�V�V�X�z�2����Q�V�V�X�s�+�
�F�F�1�I��Q�<�D����Q�[�[��.��2����U�4�[�(�3�r lc�D�UR5(deUR5(deURURUR5UR5 URUR5UR5 URURS5S5 URUR5URS-5 URURSS5URS-5 URUR5URS-5 URUR5URS-5 URURSS5URS-5 URURURS-5URS-5 URUR5URS-5 URURSS5URS-5 URURSS5UR5 URURS5S5 g![
[4a URS5 GN9f=f)	Nzno largefile support�xxx�rr=r�rrF)rarXr;ri�LARGE�
OverflowErrorr �skipTestrmrTrwr��r?r5s  r�large_file_ops�IOTest.large_file_ops�s����z�z�|�|��|��z�z�|�|��|�	2����Q�V�V�D�J�J�/����<�	
�������4�:�:�.���������!�,��������4�:�:��>�2��������A���
�
�Q��7��������t�z�z�A�~�6��������4�:�:��>�2��������1��t�z�z�A�~�6�������D�J�J��N�3�T�Z�Z�!�^�D��������4�:�:��>�2��������1��t�z�z�A�~�6��������A���
�
�3���������D�)���z�*�	2��M�M�0�1�	2�s�5I:�:!J�Jc��URnUR[RSSS9nUR	XR
5 UR	XR5 SSS5 UR[RS5nUR	XR
5 UR	XR5 SSS5 UR[RSSS9nUR	XR
5 UR	XR5 SSS5 UR[RSSS9nUR	XRS5 UR	XRS	/5 SSS5 UR[RS5nUR	XRS5 UR	XRS	/5 SSS5 UR[RS
SS9nUR	XRS5 UR	XRS/5 UR	XRS
UR5 UR	XRSUR5 SSS5 g!,(df   GN?=f!,(df   GN�=f!,(df   GN�=f!,(df   GNW=f!,(df   GN=f!,(df   g=f)N�w�utf-8r0�wbr��	buffering�rbsblahsblah
r.�blahzblah
r=r)r�r2r
r-r=r��readlinerT�
writelinesri�SEEK_CUR�SEEK_END)r?�exc�fps   r�test_invalid_operations�IOTest.test_invalid_operations�s$���'�'��
�Y�Y�y�'�'��w�Y�
?�2����c�7�7�+����c�;�;�/�@��Y�Y�y�'�'��
.�"����c�7�7�+����c�;�;�/�/��Y�Y�y�'�'���Y�
;�r����c�7�7�+����c�;�;�/�<��Y�Y�y�'�'���Y�
;�r����c�8�8�W�5����c�=�=�9�+�>�<��Y�Y�y�'�'��
.�"����c�8�8�W�5����c�=�=�9�+�>�/��Y�Y�y�'�'��w�Y�
?�2����c�8�8�V�4����c�=�=�8�*�=����c�7�7�A�t�}�}�=����c�7�7�B��
�
�>�@�
?�@�
?��/�
.��<�
;��<�
;��/�
.��@�
?�sH�7J�7J-�)7J?�:K�):K#�
BK5�
J*�-
J<�?
K�
K �#
K2�5
L�%fstat() of a pipe fd is not supported�pipe�requires os.pipe()c�^�U4SjnU4SjnU4SjnU4SjnU4SjnU4SjnU4SjnU4SjnUS	4US
4US4US4US
4US4US4US4TRS
4TRS
44
n	U	GH�up�TRU
5 U
"5nSU;n
TRUR	5U
5 SU;nTRUR5U5 [
UTR5(aSnO;[
UTRTR45(aSnOTRS5 SU;aUR5 O TR[UR5 U
(a"URS5 UR5 OATR[URS5 TR[UR5 U(aURW5 O!TR[URW5 [ R"R%S5(aU
X4;aSSS5 SSS5 GM�SU;nTRUR'5U5 U(a"UR)5 UR+S5 OATR[UR(5 TR[UR*S5 U(a)U(a"UR-5 UR-S5 OATR[UR,5 TR[UR,S5 SSS5 SSS5 GM� g!,(df   N=f!,(df   GM=f)Nc�>�[R"5up[R"U5 TRUS5$)Nr.)�osrfr��FileIO)r.rVr?s  �r�pipe_reader�3IOTest.test_optional_abilities.<locals>.pipe_reader�s,����W�W�Y�F�Q��H�H�Q�K��;�;�q�#�&�&r c�6>�[R"5upTR[RU5 [R
"[RUS4S9nUR5 TRUR5 TRUS5$)N�d��targetr�rV)
rjrf�
addCleanupr�r��Threadr��startr
rk)r.rV�threadr?s   �r�pipe_writer�3IOTest.test_optional_abilities.<locals>.pipe_writer�sf����W�W�Y�F�Q��O�O�B�H�H�a�(��%�%�R�W�W�A�s�8�D�F��L�L�N��O�O�F�K�K�(��;�;�q�#�&�&r c�B>�TRTR55$rQ)�BufferedReaderr�r>s�r�buffered_reader�7IOTest.test_optional_abilities.<locals>.buffered_reader������&�&�t�'<�'<�'>�?�?r c�B>�TRTR55$rQ)�BufferedWriterr�r>s�r�buffered_writer�7IOTest.test_optional_abilities.<locals>.buffered_writer�r|r c�B>�TRTR55$rQ)�BufferedRandom�BytesIOr>s�r�buffered_random�7IOTest.test_optional_abilities.<locals>.buffered_random�s����&�&�t�|�|�~�6�6r c�`>�TRTR5TR55$rQ)�BufferedRWPairr�r>s�r�buffered_rw_pair�8IOTest.test_optional_abilities.<locals>.buffered_rw_pair�s-����&�&�t�'<�'<�'>��%�%�'�)�
)r c�b>�"U4SjSTR5nTRU"5S5$)Nc�r>�\rSrSrYRR
rYRRrSrg)�MIOTest.test_optional_abilities.<locals>.text_reader.<locals>.UnseekableReaderi�r#N)r%r&r'r(�BufferedIOBaserXrTr)r>s�r�UnseekableReaderr��s%����.�.�7�7���+�+�1�1�r r��ascii�r��
TextIOWrapper)r�r?s �r�text_reader�3IOTest.test_optional_abilities.<locals>.text_reader�s.���
2�4�#8�#8�
2��%�%�&6�&8�'�B�Br c�b>�"U4SjSTR5nTRU"5S5$)Nc�r>�\rSrSrYRR
rYRRrSrg)�MIOTest.test_optional_abilities.<locals>.text_writer.<locals>.UnseekableWriteri�r#N)r%r&r'r(r�rar�r)r>s�r�UnseekableWriterr��s%����.�.�7�7���*�*�/�/�r r�r�r�)r�r?s �r�text_writer�3IOTest.test_optional_abilities.<locals>.text_writer�s.���
0�4�#8�#8�
0��%�%�&6�&8�'�B�Br �fr�fwr.rV�rws�rw�3�3zUnknown base classr5r=�winrr)r��StringIO�subTestr;rarX�
isinstance�
TextIOBaser��	RawIOBase�failr^r=r�r�rT�sys�platform�
startswithrdrmrirw)r?rlrvrzrr�r�r�r��tests�test�	abilitiesrrarXrrds`                r�test_optional_abilities�IOTest.test_optional_abilities�s����	'�
	'�	@�	@�	7�	)�	C�	C��$��+�t�!4�
�c�"�_�c�$:�
�e�$�'7��&>�
�#���c� 2�
�\�\�5�!�D�M�M�5�#9�
��"'��T����d�#�T�V�s��)�+��� � ������:��)�+��� � ������:��c�4�?�?�3�3��D���d�&9�&9�4�>�>�%J�K�K��D��I�I�2�3��)�#��J�J�L��%�%�g�s�z�z�:���H�H�Q�K��H�H�J��%�%�g�s�x�x��;��%�%�g�s�x�x�8���I�I�d�O��%�%�g�s�y�y�$�?��<�<�*�*�5�1�1�d�#�?2�72��C&,�#�#�D�)�+��� � ������:���H�H�J��H�H�Q�K��%�%�g�s�x�x�8��%�%�g�s�x�x��;����L�L�N��L�L��O��%�%�g�s�|�|�<��%�%�g�s�|�|�Q�?�c&,�#�#�"'�%+�V��#�#�s2�?M,�F+M�2M,�DM�M,�
M)�%M,�,
M<	c	�8�SnUR[URUSSS9 [US5n[R
"5 [R"S[5 UR[URUSSS9 SSS5 g!,(df   g=f)NzfoobarrVrWr0r��ignore)r=r r2r�warnings�catch_warnings�simplefilter�DeprecationWarning)r?�fn_with_NUL�bytes_fns   r�test_open_handles_NUL_chars�"IOTest.test_open_handles_NUL_chars,sv�� �����*�d�i�i��c�G��T���g�.��
�
$�
$�
&��!�!�(�,>�?����j�$�)�)�X�s�W��U�'�
&�
&�s�=B�
Bc��UR[RSSS9nURUR	5S5 URUR5S5 URUR
5S5 URU5 SSS5 UR[RSSS9nURUR	5S5 URUR5S5 URUR
5S5 URU5 SSS5 g!,(df   N�=f!,(df   g=f)NrXrrYFTr[�	r2r
r-r;rarXrdr@rJrRs  r�test_raw_file_io�IOTest.test_raw_file_io5s���
�Y�Y�y�'�'���Y�
;�q����Q�Z�Z�\�5�1����Q�Z�Z�\�4�0����Q�Z�Z�\�4�0��N�N�1��	<�
�Y�Y�y�'�'���Y�
;�q����Q�Z�Z�\�4�0����Q�Z�Z�\�5�1����Q�Z�Z�\�4�0��M�M�!��	<�
;�<�
;��
<�
;�s�A2D4�9A2E�4
E�
Ec��UR[RS5nURUR	5S5 URUR5S5 URUR
5S5 URU5 SSS5 UR[RS5nURUR	5S5 URUR5S5 URUR
5S5 URUS5 SSS5 g!,(df   N�=f!,(df   g=f)NrXFTr[r�rRs  r�test_buffered_file_io�IOTest.test_buffered_file_ioAs���
�Y�Y�y�'�'��
.�!����Q�Z�Z�\�5�1����Q�Z�Z�\�4�0����Q�Z�Z�\�4�0��N�N�1��	/�
�Y�Y�y�'�'��
.�!����Q�Z�Z�\�4�0����Q�Z�Z�\�5�1����Q�Z�Z�\�4�0��M�M�!�T�"�	/�
.�/�
.��
/�
.�s�A2D7�;A3E�7
E�
Ec��UR[RS5nURS5 SSS5 UR[RS5nUR	UR5S5 UR	URS5S5 UR	URS5S5 UR	URS	5S
5 UR	UR5S5 UR	URS5S5 UR
[UR
S
5 SSS5 UR[RSSS9nUR
[UR
S
5 SSS5 g!,(df   GNg=f!,(df   Nj=f!,(df   g=f)NrXs"abc
def
xyzzy
foobar
another liner[�abc
rG�def
r��xy�szzy
sfoobar
sanother lineg333333@r.rWr0)r2r
r-rTr;r]r=r>rRs  r�
test_readline�IOTest.test_readlineMs=��
�Y�Y�y�'�'��
.�!�
�G�G�@�A�/�
�Y�Y�y�'�'��
.�!����Q�Z�Z�\�8�4����Q�Z�Z��^�X�6����Q�Z�Z��]�E�2����Q�Z�Z��]�H�5����Q�Z�Z�\�?�;����Q�Z�Z��-��?����i����S�9�/��Y�Y�y�'�'��w�Y�
?�1����i����S�9�@�
?�/�
.��
.�
.��@�
?�s$�F�C&F%�("F6�
F"�%
F3�6
Gc�z�"SSUR5nUR[[4[U"55 g)Nc��\rSrSrSrSrg)�+IOTest.test_readline_nonsizeable.<locals>.Ri^c��grQr#r>s rr]�4IOTest.test_readline_nonsizeable.<locals>.R.readline_���r r#N)r%r&r'r(r]r)r#r r�Rr�^���
r r�)�IOBaser=r>�
StopIteration�next�r?r�s  r�test_readline_nonsizeable� IOTest.test_readline_nonsizeable[s-��	����	�	
���9�m�4�d�A�C�@r c�z�"SSUR5nUR[U"5RS5 g)Nc��\rSrSrSrSrg)�'IOTest.test_next_nonsizeable.<locals>.Rifc��grQr#r>s r�__next__�0IOTest.test_next_nonsizeable.<locals>.R.__next__gr�r r#N)r%r&r'r(r�r)r#r rr�r�fr�r r�r=)r�r=r>�	readlinesr�s  r�test_next_nonsizeable�IOTest.test_next_nonsizeablecs,��	����	�	
���)�Q�S�]�]�A�6r c���UR5nURU5 UR5nURUS5 URU5nUR	US5 g)NrET)r�r@�getvaluer;rJ)r?r5rs   r�test_raw_bytes_io�IOTest.test_raw_bytes_ioksQ���L�L�N�����q���z�z�|������/�0��L�L�����
�
�a��r c��[RSSS:Xd[(a$[R"SSUR
-5 UR
[RSS5nURU5 SSS5 UR
[RS5nURU5 SSS5 g!,(df   NI=f!,(df   g=f)NrNr��	largefilez-test requires %s bytes and a long time to run�w+br)
r�r�rr�requiresrOr2r
r-rSrRs  r�test_large_file_ops�IOTest.test_large_file_opsss����<�<����u�$�������?�$�*�*�L�
N��Y�Y�y�'�'���
2�a�����"�3�
�Y�Y�y�'�'��
/�1�����"�0�
/�3�
2��
/�
/�s�(B=�"C�=
C�
Cc���SH�nUR[RSU5nURS5 SSS5 UR	WR
S5 UR[RSU5nSS- SSS5 UR
S5 M� g!,(df   Np=f!,(df   N5=f![a  UR	UR
S5 M�f=f)N)rrorXrMTr=rz1/0 didn't raise an exception)r2r
r-rTr;r�r��ZeroDivisionError)r?�bufsizer5s   r�test_with_open�IOTest.test_with_open�s����G����9�+�+�T�7�;�q������<����Q�X�X�t�,�
;��Y�Y�y�/�/��w�?�1��a�C�@�
�	�	�9�:� �;�;��@�?��$�
1�� � ����4�0�
1�s5�B#�!C�?B4�C�#
B1	�4
C	�>C�&C/�.C/c��UR[RS5nURS5 SSS5 UR[RSSS9nUR	UR5S5 SSS5 UR[RS5nUR	UR5S5 SSS5 UR[RSSS	9nUR
UR5S5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Ny=f!,(df   g=f)
NrXrM�abrrYrN�arWr0)r2r
r-rTr;rm�
assertGreaterrRs  r�test_append_mode_tell�IOTest.test_append_mode_tell�s���
�Y�Y�y�'�'��
.�!�
�G�G�F�O�/�
�Y�Y�y�'�'���Y�
;�q����Q�V�V�X�q�)�<�
�Y�Y�y�'�'��
.�!����Q�V�V�X�q�)�/�
�Y�Y�y�'�'��w�Y�
?�1����q�v�v�x��+�@�
?�
/�
.��
;�
;��
.�
.��
?�
?�s/�D�!D&�#!D7�+!E�
D#�&
D4�7
E�
Ec�^�/m"U4SjSUR5n[R"S[45 U"[R
S5nUR
S5 A[R"5 URT/SQ5 UR[R
S5nURUR5S5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nc�H>^�\rSrSrUU4SjrUU4SjrUU4SjrSrU=r$)�(IOTest.test_destructor.<locals>.MyFileIOi�c�l>�TRS5 [TU]nU"5 g![a gf=fr��rRr��__del__�AttributeError�r?r5r��records  ��rr��0IOTest.test_destructor.<locals>.MyFileIO.__del__��8����
�
�a� �����A��C��&������
&�
3�3c�D>�TRS5 [TU]	5 gr��rRr�r��r?r�r�s ��rr��.IOTest.test_destructor.<locals>.MyFileIO.close������
�
�a� ���
�r c�D>�TRS5 [TU]	5 g�NrN�rRr�r�rs ��rr��.IOTest.test_destructor.<locals>.MyFileIO.flush�rr r#�	r%r&r'r(r�r�r�r)r��r�r�s@�r�MyFileIOr������
�
 �
 �
 r r
�rXrM�r=r�rNr[)rkr�check_warnings�ResourceWarningr
r-rTr�
gc_collectr;r2r�)r?r
r5r�s   @r�test_destructor�IOTest.test_destructor�s������	 �t�{�{�	 ��
+�
+�R��,A�
B���)�)�4�0�A�
�G�G�F�O����� ����V�Y�/����9�+�+�T�2�a�� � �����6�2�3�
C�
B�3�2��
C�
B�s$�A3C.�+!C�C.�
C+	�'C.�.
C<c�^�/m"U4SjSU5nU"5nA[R"5 URT/SQ5 g)Nc�N>^�\rSrSrSrUU4SjrUU4SjrUU4SjrSrU=r	$)�+IOTest._check_base_destructor.<locals>.MyIOi�c�.�SUlSUlSUlg)Nr=r�rN)�on_del�on_close�on_flushr>s rrN�4IOTest._check_base_destructor.<locals>.MyIO.__init__�s��
 ��� !��
� !��
r c�>�TRUR5 [TU]nU"5 g![a gf=frQ)rRrr�r�r�r�s  ��rr��3IOTest._check_base_destructor.<locals>.MyIO.__del__�s<����
�
�d�k�k�*�����A��C��&����s�
0�
=�=c�X>�TRUR5 [TU]
5 grQ)rRrr�r�rs ��rr��1IOTest._check_base_destructor.<locals>.MyIO.close������
�
�d�m�m�,���
�r c�X>�TRUR5 [TU]
5 grQ)rRrr�r�rs ��rr��1IOTest._check_base_destructor.<locals>.MyIO.flush�rr )rrr)
r%r&r'r(rNr�r�r�r)r�r	s@�r�MyIOr�s���
"�
�
 �
 �
 r r"r
)rrr;)r?�baser"r5r�s    @r�_check_base_destructor�IOTest._check_base_destructor�s<�����	 �4�	 �.
�F��
����������+r c�:�URUR5 grQ)r$r�r>s r�test_IOBase_destructor�IOTest.test_IOBase_destructor�s���#�#�D�K�K�0r c�:�URUR5 grQ)r$r�r>s r�test_RawIOBase_destructor� IOTest.test_RawIOBase_destructor�s���#�#�D�N�N�3r c�:�URUR5 grQ)r$r�r>s r�test_BufferedIOBase_destructor�%IOTest.test_BufferedIOBase_destructor�s���#�#�D�$7�$7�8r c�:�URUR5 grQ)r$r�r>s r�test_TextIOBase_destructor�!IOTest.test_TextIOBase_destructor�s���#�#�D�O�O�4r c�N�UR[RS5nURS5 SSS5 UR[RS5nUR	UR5S5 SSS5 g!,(df   NX=f!,(df   g=f)NrXrMr[�r2r
r-rTr;r�rRs  r�test_close_flushes�IOTest.test_close_flushes�sl��
�Y�Y�y�'�'��
.�!�
�G�G�F�O�/�
�Y�Y�y�'�'��
.�!����Q�V�V�X�v�.�/�
.�/�
.��
.�
.���B�!B�
B�
B$c�^^^�[R"S[S55m[TR55mUUU4SjnU"TR	55 U"TR[RS55 U"TRTR555 U"TRTR555 U"TRTR5TR555 g)N�irGc�>�U TRURT5T5 URT45 SSS5 g!,(df   g=frQ)r;rTr^)r5r�rsr?s ���r�check�'IOTest.test_array_writes.<locals>.check�s6����� � ������Q�/����a�T�"����s�4A�
ArV)r,�ranger�tobytesr�rkr
r-r~r�r�r�)r?r:r�rss` @@r�test_array_writes�IOTest.test_array_writes�s�����K�K��U�2�Y�'����	�	����	#�	�d�l�l�n��
�d�k�k�)�*�*�C�0�1�
�d�!�!�$�.�.�"2�3�4�
�d�!�!�$�.�.�"2�3�4�
�d�!�!�$�.�.�"2�D�N�N�4D�E�Fr c	�d�UR[UR[RSSSS9 g)NrVrWF�r1�closefd�r=r r2r
r-r>s r�test_closefd�IOTest.test_closefd�s,�����*�d�i�i��1A�1A�3�#*�E�	�	;r c�z�UR[RSSS9nURS5 SSS5 UR[RSSS9nURUR	5SSSS9nURUR
5S5 URS5 UR5 UR[UR5 SSS5 UR[RS	5nURUR	5S	SS
9nURUR
5SSS5 UR5 UR[UR[S
55 SSS5 g!,(df   GN^=f!,(df   N�=f!,(df   g=f)NrVrWr0�egg
r.FrArr[�rBrNseggr=)
r2r
r-rTr^r;r�rir�r=r rtr<�r?r5�files   r�test_read_closed�IOTest.test_read_closed�s;��
�Y�Y�y�'�'��w�Y�
?�1�
�G�G�G��@�
�Y�Y�y�'�'��w�Y�
?�1��9�9�Q�X�X�Z��w��9�N�D����T�Y�Y�[�'�2��I�I�a�L��J�J�L����j�$�)�)�4�@��Y�Y�y�'�'��
.�!��9�9�Q�X�X�Z��u�9�=�D����T�Y�Y�[��!�_�f�5��J�J�L����j�$�-�-��1��F�	/�
.�@�
?��
?�
?��/�
.�s%�F	�BF�A=F,�	
F�
F)�,
F:c	�d�UR[UR[RSSSS9 g)Nr.rWFrArCr>s r�test_no_closefd_with_filename�$IOTest.test_no_closefd_with_filenames,�����*�d�i�i��1A�1A�3�#*�E�	�	;r c��UR[RS5nURS5 SSS5 UR[RSSS9nUR	UR
RRS5 URUR5SSSS9nUR	UR
RRS5 SSS5 g!,(df   N�=f!,(df   g=f)	NrXsegg
r.rWr0TFrA)	r2r
r-rTr;r?�rawrBr^rIs   r�test_closefd_attr�IOTest.test_closefd_attrs���
�Y�Y�y�'�'��
.�!�
�G�G�H��/�
�Y�Y�y�'�'��w�Y�
?�1����Q�X�X�\�\�1�1�4�8��9�9�Q�X�X�Z��w��9�N�D����T�[�[�_�_�4�4�e�<�@�
?�/�
.��
?�
?�s�C$�BC5�$
C2�5
Dc��[R"S[45 UR[R
S5nUR
S5 Xl[R"U5nA[R"5 SSS5 URW"5U5 UR[R
S5nURUR5S5 SSS5 g!,(df   No=f!,(df   g=f)NrrXsabcxxxr[)rrrrkr
r-rTr5�weakref�refrr�assertIsNoner2r;r�)r?r5�wrs   r�test_garbage_collection�IOTest.test_garbage_collections����
+�
+�R��,A�
B����I�,�,�d�3�A�
�G�G�I���C����Q��B����� �
C�	
���"�$��#�
�Y�Y�y�'�'��
.�!����Q�V�V�X�y�1�/�
.�C�
B��/�
.�s�A$C*�!C;�*
C8�;
D	c��Sn[RRU5(d URSR	U55 [
RS:�aURS5 [R[R:aURS5 URUSSS9nUR[UR5 SSS5 URUS5nUR[UR5 SSS5 URUS	5nUR[UR5 SSS5 g!,(df   N�=f!,(df   N[=f!,(df   g=f)
Nz	/dev/zeroz{0} does not exist��z+test can only run in a 32-bit address spacez&test requires at least 2 GiB of memoryr[rrYr.)rj�path�existsrQ�formatr��maxsizer�real_max_memuse�_2Gr2r=rPr�)r?�zeror5s   r�test_unbounded_file�IOTest.test_unbounded_files�����w�w�~�~�d�#�#��M�M�.�5�5�d�;�<��;�;��#��M�M�G�H��"�"�W�[�[�0��M�M�B�C�
�Y�Y�t�T�Q�Y�
/�1����m�Q�V�V�4�0�
�Y�Y�t�T�
"�a����m�Q�V�V�4�#�
�Y�Y�t�S�
!�Q����m�Q�V�V�4�"�
!�	0�
/��
"�
"��
!�
!�s$�0!E�+!E!�&!E2�
E�!
E/�2
Fc�^^�UR"U0UD6m/mUU4SjnUTlUR[TR5 URTR5 URT5 URTS5 STlg)Nc�8>�TR/TSS&[5erQr�)r�r5s��r�	bad_flush�4IOTest.check_flush_error_on_close.<locals>.bad_flush2s������
�F�1�I��)�Or rc��grQr#r#r r�<lambda>�3IOTest.check_flush_error_on_close.<locals>.<lambda>:���$r )r2r�r=r�r��
assertTruer��assertFalse)r?r��kwargsrhr�r5s    @@r�check_flush_error_on_close�!IOTest.check_flush_error_on_close-st���
�I�I�t�&�v�&����	�������'�1�7�7�+�������!������������#���r c�F�UR[RSSS9 [R"[R[R
[R-5nURUSSS9 [R"[R[R
[R-5nURUSSSS9 [R"U5 UR[RS5 [R"[R[R
[R-5nURUS5 [R"[R[R
[R-5nURUSSS9 [R"U5 UR[RSSS	9 [R"[R[R
[R-5nURUSSS	9 [R"[R[R
[R-5nURUSSSS
9 [R"U5 g)NrXrrYF)rZrBrHrVrWr0rA)rqr
r-rjr2�O_WRONLY�O_CREATr�)r?�fds  r�test_flush_error_on_close� IOTest.test_flush_error_on_close<s���	
�'�'�	�(8�(8�$�!�'�L�
�W�W�Y�%�%�r�{�{�2�:�:�'=�
>���'�'��D�A�'�>�
�W�W�Y�%�%�r�{�{�2�:�:�'=�
>���'�'��D�A�u�'�M�
������'�'�	�(8�(8�$�?�
�W�W�Y�%�%�r�{�{�2�:�:�'=�
>���'�'��D�1�
�W�W�Y�%�%�r�{�{�2�:�:�'=�
>���'�'��D�%�'�@�
������'�'�	�(8�(8�#��'�P�
�W�W�Y�%�%�r�{�{�2�:�:�'=�
>���'�'��C�'�'�B�
�W�W�Y�%�%�r�{�{�2�:�:�'=�
>���'�'��C�'�5�'�Q�
����r c���UR[RSSS9nUR5 UR5 UR5 UR	[
UR5 g)NrXrrY)r2r
r-r�r=r r�rRs  r�test_multi_close�IOTest.test_multi_closeTsK���I�I�i�&�&���I�:��	���	�	���	�	���	����*�a�g�g�.r c�6�URS5nURURS5S5 URURS5S5 URURS5S5 URURS5S5 URURS5S5 URURS5S5 URURS5S5 URURS5S5 g)	N)�abc�dN�efgNr��ab�cr~�ef�gr )rDr;r��r?�rawios  r�test_RawIOBase_read�IOTest.test_RawIOBase_read[s����)�)�*L�M��������A���.�������A���-�������A���-�������A���-�������A���.�������A���-�������A���-�������A���,r c���"SSUR5nUR[5nU"S5RS5 SSS5 UR	[WR5S5 S[RSS4H7nUR[5 U"U5R5 SSS5 M9 g!,(df   N�=f!,(df   M\=f)	Nc�$�\rSrSrSSjrSrSrg)�>IOTest.test_RawIOBase_read_bounds_checking.<locals>.MisbehavedikNc��XlgrQ��_readinto_return)r?�readinto_returns  rrN�GIOTest.test_RawIOBase_read_bounds_checking.<locals>.Misbehaved.__init__ls��(7�%r c��UR$rQr�rSs  rrt�GIOTest.test_RawIOBase_read_bounds_checking.<locals>.Misbehaved.readintons���,�,�,r r�)�returnN)r%r&r'r(rNrtr)r#r r�
Misbehavedr�ks��
8�
-r r�r�r=z)readinto returned 2 outside buffer size 1r\ri���)	r�r=r r�r;�str�	exceptionr�r`)r?r��cm�bad_sizes    r�#test_RawIOBase_read_bounds_checking�*IOTest.test_RawIOBase_read_bounds_checkinghs���	-����	-��
�
�z�
*�b��q�M���q�!�+�����R�\�\�*�,W�X�#�S�[�[�"�e�<�H��"�"�:�.��8�$�)�)�+�/�.�=�+�
*��/�.�s�C�C�
C�
C 	c���UR5UR5UR5UR5UR	54nUHnUR[
US55 M  g)N�__dict__)r�r�r�r�r�rn�hasattr)r?r�rs   r�test_types_have_dict�IOTest.test_types_have_dictxsW���K�K�M��N�N���O�O���M�M�O��L�L�N�
���C��O�O�G�C��4�5�r c�^�UR[RSSS9nURS5 SSS5 [R"[R[R
5mU4SjnURSSSUS9nUR
UR5S5 SSS5 g!,(df   N�=f!,(df   g=f)	NrVrWr0rGc�>�T$rQr#)r]�flagsrvs  �r�opener�"IOTest.test_opener.<locals>.opener�s����Ir �non-existentr.)r1r�)r2r
r-rTrj�O_RDONLYr;r�)r?r5r�rvs   @r�test_opener�IOTest.test_opener�s����
�Y�Y�y�'�'��w�Y�
?�1�
�G�G�G��@�
�W�W�Y�%�%�r�{�{�
3��	�
�Y�Y�~�s�W�V�Y�
L�PQ����Q�V�V�X�w�/�M�
L�@�
?��
M�
L�s�B0�!C�0
B>�
Cc���SnUR[5nURSSUS9 SSS5 UR[	WR
5S5 g!,(df   N4=f)Nc��g�Nrr#��fnamer�s  r�	badopener�4IOTest.test_bad_opener_negative_1.<locals>.badopener����r r�r.�r�zopener returned -1�r=r r2r;r�r��r?r�r�s   r�test_bad_opener_negative_1�!IOTest.test_bad_opener_negative_1��Q��	�
�
�
�z�
*�b��I�I�n�c�)�I�<�+�����R�\�\�*�,@�A�+�
*���A�
A'c���SnUR[5nURSSUS9 SSS5 UR[	WR
5S5 g!,(df   N4=f)Nc��g)N���r#r�s  rr��8IOTest.test_bad_opener_other_negative.<locals>.badopener�r�r r�r.r�zopener returned -2r�r�s   r�test_bad_opener_other_negative�%IOTest.test_bad_opener_other_negative�r�r�c�^�[R"5mUR[5nUR	SU4SjS9 SSS5 URWRR[R5 g!,(df   NC=f)N�fooc�>�T$rQr#)�namer�rvs  �rrk�/IOTest.test_opener_invalid_fd.<locals>.<lambda>�s���r r�)	r
�make_bad_fdr=r�r2r;r��errno�EBADF)r?r�rvs  @r�test_opener_invalid_fd�IOTest.test_opener_invalid_fd�s`����
"�
"�
$��
�
�
�w�
'�2��I�I�e�$:�I�;�(�������+�+�U�[�[�9�(�
'�s�A>�>
Bc��UR[S5nUR[S5nURUR5SS9nUR	UR5SS9 UR5 UR
5 UR5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nr[FrH)r2r3rkr^rNr]r�)r?�f1�f2�fileios    r�test_fileio_closefd�IOTest.test_fileio_closefd�s���
�Y�Y�x��
&�"�
�Y�Y�x��
&�"��[�[�����e�[�<�F��O�O�B�I�I�K��O�7��K�K�M��L�L�N��K�K�M�'�'�
&�
&�
&��'�
&�s#�B=�A-B,�B=�,
B:	�6B=�=
Cc	��[R"U5 UR[5 UR	[
RSSSS9 SSS5 SSS5 g!,(df   N=f!,(df   g=f)NrVrWr�r1rZ�r�check_no_resource_warningr=r r2r
r-r>s r�test_nonbuffered_textio�IOTest.test_nonbuffered_textio�sU��
�
6�
6�t�
<��"�"�:�.��	�	�)�*�*�C�'�Q�	�O�/�=�
<�.�.��=�
<��"�A0�!A�A0�
A-	�)A0�0
A>c	��[R"U5 UR[5 UR	[
RSSSS9 SSS5 SSS5 g!,(df   N=f!,(df   g=f)NrVrW�invalid�r1�newliner�r>s r�test_invalid_newline�IOTest.test_invalid_newline�sU��
�
6�
6�t�
<��"�"�:�.��	�	�)�*�*�C�'�9�	�U�/�=�
<�.�.��=�
<�r�c�4�"SSUR5nU"5nSHdnURU5 [S5nUR[	X#5"U5S5 UR[U5S5 SSS5 Mf g!,(df   Mx=f)Nc��\rSrSrSr\rSrg)�3IOTest.test_buffered_readinto_mixin.<locals>.Streami�c��g)N�12345r#�r?�sizes  rr��8IOTest.test_buffered_readinto_mixin.<locals>.Stream.read�s��r r#N)r%r&r'r(r��read1r)r#r r�Streamr��s��
 ��Er r��rtrHr�r�)r�r�rr;�getattrr)r?r��stream�methodr?s     r�test_buffered_readinto_mixin�#IOTest.test_buffered_readinto_mixin�sy��	�T�(�(�	����/�F����f�%�"�1���� � ���!8��!@�!�D�� � ��v���9�&�%�0�%�%�s�AB�
B	c�^�U4SjnU"[[R55 U"[[R"[R555 TR[RSSS9n[UR
55nTR[5 TRUSSS9 SSS5 SSS5 [S5nTR[5 TRUSSS9 SSS5 [[5nTR[5 TRUSSS9 SSS5 TR[S5 TR[[R5SSS9 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nc�>�TRUSSS9nURS5 SSS5 TRUSSS9nTRUR5S5 SSS5 g!,(df   NI=f!,(df   g=f)NrVrWr0rGr.)r2rTr;r�)r]r5r?s  �r�check_path_succeeds�7IOTest.test_fspath_support.<locals>.check_path_succeeds�sn������4��w��7�1����� �8����4��w��7�1�� � �����7�3�8�7�8�7��8�7�s�A(�!A9�(
A6�9
BrVrWr0zread/write/append mode�rwxa)rr
r-rj�fsencoder2r^r=r>�FloatingPointError�assertRaisesRegexr )r?r�r5�bad_paths`   r�test_fspath_support�IOTest.test_fspath_support�sY���	4�	�H�Y�%5�%5�6�7��H�R�[�[��1A�1A�%B�C�D�
�Y�Y�y�'�'��w�Y�
?�1�����
�+�H��"�"�9�-��	�	�(�C�'�	�:�.�@�
�D�>��
�
�
�y�
)��I�I�h��g�I�6�*��.�/��
�
�
�1�
2��I�I�h��g�I�6�3��
#�
#�J�0H�
I��I�I�h�y�/�/�0�&�7�I�K�J�
I�.�-��@�
?��*�
)��3�
2��J�
I�sH�9/F�(F
�:F�*F,�(F=�)G�

F	�F�
F)�,
F:�=
G�
Gc���URS5nURUR5S5 URS5nURUR5S5 g�N�r}r~r�abcdefg)rDr;r��readallr�s  r�test_RawIOBase_readall�IOTest.test_RawIOBase_readall�sR���)�)�*@�A���������z�2��)�)�*@�A���������*�5r c	�:�"SSUR5nSnSnUH�nURU5 UupVpxU"[[U555n	[	U4U-5n
[X�5nUR
U"U
5U5 UR
[U
5U5 URU
SU[U55 U4Xx-
-nURX�SU5 UR
[U	R5Xh-
5 SSS5 M� g!,(df   M�=f)Nc�&�\rSrSrSrSrSrSrg)�3IOTest.test_BufferedIOBase_readinto.<locals>.Readeri�c��XlgrQ��avail)r?rs  rrN�<IOTest.test_BufferedIOBase_readinto.<locals>.Reader.__init__�s��"�
r c�L�URSUnURUSUlU$rQr)r?r��results   rr��8IOTest.test_BufferedIOBase_readinto.<locals>.Reader.read�s)�����E�T�*��!�Z�Z���.��
��
r c�8�UR[US55$)z$Returns no more than 5 bytes at oncer�)r��minr�s  rr��9IOTest.test_BufferedIOBase_readinto.<locals>.Reader.read1�s���y�y��T�1��.�.r rN)r%r&r'r(rNr�r�r)r#r r�Readerr��s��
#�
�
/r r	)
)rtrGr�r�)rtrGr5r5)rtr�r5r�)rtr5�r5)rtrGrr)rHrGr�r�)rHrGr5r�)rHr�r5r�)rHr5r
r�)rHrGrr�)
r�r�rr<r<r�r;r�assertSequenceEqualr)r?r	r��UNUSED_BYTEr�r�r�requestr�readerr?�unuseds            r�test_BufferedIOBase_readinto�#IOTest.test_BufferedIOBase_readinto�s���		/�T�(�(�		/�

�����D����d�#�15�.��w���e�E�l� 3�4��"�K�>�G�#;�<�� ��0��� � �����8�� � ��V��g�6��(�(�����%��-�H�%��7�+;�<���(�(����&�A�� � ��V�\�\�!2�E�N�C�$�#��#�#�s�CD�
D	c��"SSUR5nU"5nUR[UR5 SUlg)Nc� �\rSrSrSrSrSrg)�#IOTest.test_close_assert.<locals>.Ric��grQr#)r?r��values   r�__setattr__�/IOTest.test_close_assert.<locals>.R.__setattr__���r c��[5erQ�r�r>s rr��)IOTest.test_close_assert.<locals>.R.flushs	���i�r r#N)r%r&r'r(rr�r)r#r rr�rs��
�
 r r�c��grQr#r>s rrk�*IOTest.test_close_assert.<locals>.<lambda>���tr )r�r=r�r�r�)r?r�r5s   r�test_close_assert�IOTest.test_close_asserts8��	 ����	 �

�C�����'�1�7�7�+�$��r c	��^^	^
�SnSm
Sm	U
4SjnU	U4SjnTR[RS5n[R"US-5n[R
"X4U4S9n[
U5Vs/sHn[R
"X$U4S9PM nn[R"5n[R"Xs/-5 SSS5 TRUR5 SSS5 SSS5 TR[R"[R5RT
U-5 gs snf!,(df   N�=f!,(df   Nn=f!,(df   Nw=f)Nr�roc�l>�UR5 [T5HnURS5 M g)N�x)�waitr<rT)rJ�barrier�_�write_counts   �r�writer�0IOTest.test_write_readline_races.<locals>.writer(s&����L�L�N��;�'���
�
�3��(r c�>�UR5 [T5HnUHnTRUS5 M M  g)Nr)r&r<r;)rJr'r(�line�
read_countr?s    ��rr�0IOTest.test_write_readline_races.<locals>.reader-s5����L�L�N��:�&�� �D��$�$�T�2�.�!�'r �w+r=rp)r2r
r-r��Barrierrsr<r�catch_threading_exception�
start_threadsrW�exc_typer;rj�stat�st_size)r?�thread_countr*rr5r'r(�writersr�r.r)s`        @@r�test_write_readline_races� IOTest.test_write_readline_races!s)��������
�	 �
	/��Y�Y�y�'�'��
.�!��'�'��q�(8�9�G��%�%�V�g�,�G�F� %�l� 3�5� 3�1�!�'�'�v��L�I� 3�
�5�!�;�;�=��%�3�3�G�h�4F�G��H��!�!�"�+�+�.�>�/�	
�������!1�!1�2�:�:�$�|�3�	5��5�H�G��>�=��/�
.�sM�=E#�4 D<�E#�+E�E�#E�*E#�<E#�
E�E�
E 	�E#�#
E1r#N�F)Ar%r&r'r(r.r2r@rJrOrSrc�unittest�skipIfr�
is_emscripten�
skipUnlessr�rjr�r�r�r�r�r�r�r�r�r�r�rr$r'r*r-r0r4r>rDrKrNrRrYrdrqrwrzr�r�r�r�r�r�r�r�r�r�r�r�r�rr!r�requires_working_threadingr9r)r#r rr)r)Psp��+�+�2�04�B
�E�*�(?�2�_�_����F�������V�,�.B�C�f@�D��f@�PV�
�
#�:�A�7��#�;�,�3�4,�<1�4�9�5�/�G�;�
G�;�
=�2�5� 
��0/�-�,� 	6�0�B�B�:�
�P�
V�
:�L�86�'D�R$��0�0�2�5�3�5r r)c��\rSrSrSrSrg)�CIOTestiAc���"SSUR5nU"5 U"5nX"l[R"U5nAA[R
"5 UR
U"5U5 g)Nc��\rSrSrSrSrg)�*CIOTest.test_IOBase_finalize.<locals>.MyIOiGc��grQr#r>s rr��0CIOTest.test_IOBase_finalize.<locals>.MyIO.closeHrr r#N�r%r&r'r(r�r)r#r rr"rEGs��
r r")r�rrUrVrrrW)r?r"rrXs    r�test_IOBase_finalize�CIOTest.test_IOBase_finalizeCsW��	�4�;�;�	�
	
���f����
�[�[��
�����������"�$��#r r#N)r%r&r'r(rIr)r#r rrBrBAs��$r rBc�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�TestIOCTypesiUc���[R"S5nURURURUR
URURURURURURURURURUR/Ul["R$S:Xa%UR R'UR(5 Xlg)N�_io�win32)r�
import_moduler�r�ryr~r�rk�IncrementalNewlineDecoderr�r��_BufferedIOBase�_BytesIOBuffer�_IOBase�
_RawIOBase�_TextIOBase�typesr�r�rR�_WindowsConsoleIOrN�r?rNs  rr.�TestIOCTypes.setUpWs����)�)�%�0���������������K�K��J�J��)�)��L�L�����������K�K��N�N��O�O�
��
� �<�<�7�"��J�J���c�3�3�4��r c���URHAnURUS9 UR[S5 SUlSSS5 SSS5 MC g!,(df   N=f!,(df   Mf=f)N)�tp�	immutable�bar)rWr�r�r>r�)r?r\s  r�test_immutable_types�!TestIOCTypes.test_immutable_typesmsS���*�*�B������$��+�+�I�{�C�"�B�F�D�%�$��C�C��%�$�s!�A$�A�A$�
A!�A$�$
A3	c��^^^�U4SjmUUU4SjmTRnURURURURUR
URUR1URUR1URURUR100n[RS:Xa4X!RURRUR 5 T"U5 g)Nc�>�UH5nTRX!S9 TR[X!55 SSS5 M7 g!,(df   MI=f)N)r\r#)r�rn�
issubclass)rWr#r\r?s   �r�
check_subs�5TestIOCTypes.test_class_hierarchy.<locals>.check_substs;������\�\�R�\�3��O�O�J�r�$8�9�4�3��3�3�s	�>�
A
	c��>�UR5HTup[U[5(a
T"U5 M$[U[5(a
T"X!5 MCTR	S5 MV g)Nzcorrupt test dataset)�itemsr��dictr�r�)�d�k�vrd�recursive_checkr?s   ���rrl�:TestIOCTypes.test_class_hierarchy.<locals>.recursive_checkysL������	����a��&�&�#�A�&���3�'�'��q�$��I�I�4�5�
"r rO)rNrTrRr�r�ryr~r�rUrkrVr�r�r�r��addrX)r?rN�	hierarchyrdrls`  @@r�test_class_hierarchy�!TestIOCTypes.test_class_hierarchyss����	:�
	6��h�h���K�K��#�#��&�&��&�&��&�&��&�&��K�K�&�����J�J�!�����L�L��%�%�"��
�	�$�<�<�7�"��k�k�"�3�>�>�2�6�6�s�7L�7L�M��	�"r c���URnURVs0sHo"S_M nnSX1R'UR5HpupEUR	XES9 UR
S3nU4nU(a
[
Xg05nO-Sn	UR[U	5 [
Xg05nSSS5 SSS5 Mr gs snf!,(df   N =f!,(df   M�=f)NTF)r\�is_basetype�	_subclassznot an acceptable base type)	rNrWrSrgr�r%�typer�r>)
r?rNrj�datasetr\rsr��basesr(�msgs
          r�test_subclassing�TestIOCTypes.test_subclassing�s����h�h��$(�J�J�/�J�q�d�7�J��/�&+��"�"�#�&�}�}��O�B������=��+�+��i�0�������T�"�-�A�7�C��/�/�	�3�?� ��b�1��@�>�=� /��0�@�?��>�=�s)�B<�?C�
C�'C�
C�C�
C!	c�\�URn[R"XR5 grQ)rNr�check_disallow_instantiationrSrYs  r�test_disallow_instantiation�(TestIOCTypes.test_disallow_instantiation�s���h�h���,�,�T�3E�3E�Fr c��URR5nUR[S5 UR	SSS045 SSS5 UR	SSS045 URUR
5S5 UR	SSS045 URUR
5S5 g!,(df   Ny=f)Nz*initial_value must be str or None, not intr=rr)rNr�r�r>�__setstate__r;r�)r?rs  r�test_stringio_setstate�#TestIOCTypes.test_stringio_setstate�s����h�h���!��
�
#�
#��8�
�
���a��Q��^�,�	
�	���$��A�r�*�+���������,����"�b�!�R��)���������,�
�
�s�B:�:
C)rNrWN)r%r&r'r(r.r_rpryr}r�r)r#r rrLrLUs"���,#�%#�N2� G�
-r rLc��\rSrSrSrg)�PyIOTesti�r#Nr$r#r rr�r��r}r r�c� �\rSrSrSrSrSrg)�APIMismatchTesti�c��[R"[R[RSS9nURU[
5SS9 g)z:Test that pyio RawIOBase class has all c RawIOBase methods)�__weakref__r))r�z6Python RawIOBase does not have all C RawIOBase methods�rxN)r�detect_api_mismatchr�r�r�r;r��r?�mismatchs  r�test_RawIOBase_io_in_pyio_match�/APIMismatchTest.test_RawIOBase_io_in_pyio_match�s:���.�.�t�~�~�r�|�|�6^�`������3�5�.f��gr c��[R"[R[R5nURU[
5SS9 g)z:Test that c RawIOBase class has all pyio RawIOBase methodsz6C RawIOBase does not have all Python RawIOBase methodsr�N)rr�r�r�r�r;r�r�s  r�test_RawIOBase_pyio_in_io_match�/APIMismatchTest.test_RawIOBase_pyio_in_io_match�s4���.�.�r�|�|�T�^�^�L������3�5�.f��gr r#N)r%r&r'r(r�r�r)r#r rr�r��s��h�hr r�c�n�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrg)�CommonBufferedTestsi�c���UR5nURU5nURUR5U5 UR	[
UR5 [
U5 grQ)r�r\�assertIs�detachr=r �repr�r?rQrqs   r�test_detach�CommonBufferedTests.test_detach�sJ���n�n����g�g�c�l���
�
�c�j�j�l�C�(����*�c�j�j�1��S�	r c��UR5nURU5nURSUR55 gr\)r�r\r;r^�r?r��bufios   r�test_fileno�CommonBufferedTests.test_fileno�s1����� ������������U�\�\�^�,r c���UR5nURU5nUR[URSS5 UR[URSS5 g)Nrrr6)r�r\r=r rir�s   r�test_invalid_args�%CommonBufferedTests.test_invalid_args�sK����� �����������*�e�j�j�!�R�8����*�e�j�j�!�Q�7r c��^�URn/m"U4SjSU5nUR5nU"U5nA[R"5 UR	T/SQ5 g)Nc�H>^�\rSrSrUU4SjrUU4SjrUU4SjrSrU=r$)�BCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIOi�c�l>�TRS5 [TU]nU"5 g![a gf=fr�r�r�s  ��rr��JCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.__del__�r�r�c�D>�TRS5 [TU]	5 gr�rrs ��rr��HCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.close�rr c�D>�TRS5 [TU]	5 grrrs ��rr��HCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.flush�rr r#rr	s@�r�MyBufferedIOr��rr r�r
)r\r�rrr;)r?r\r�r�r�r�s     @r�test_override_destructor�,CommonBufferedTests.test_override_destructor�sT���
�W�W����	 �2�	 ���� ���U�#������������+r c�^�UR5nURU5mU4SjnU"5 UR[U5 g)Nc�@>�T SSS5 g!,(df   g=frQr#�r�s�r�_with�7CommonBufferedTests.test_context_manager.<locals>._withs��������s��
)r�r\r=r )r?r�r�r�s   @r�test_context_manager�(CommonBufferedTests.test_context_managers:������ ��������	�	��	
���*�e�,r c�j�UR5n[R"5nUR[5 URU5R SSS5 URURR[5 SSS5 g!,(df   NA=f!,(df   g=frQ)r�r�catch_unraisable_exceptionr=r�r\�xyzzyr;�
unraisabler4r��r?r�r�s   r�test_error_through_destructor�1CommonBufferedTests.test_error_through_destructorsx���#�#�%��
�
/�
/�
1�R��"�"�>�2������$�$�3�
���R�]�]�3�3�W�=�	2�
1�2�2��2�
1�s"�B$�B�2B$�
B!	�B$�$
B2c�z�UR5nURU5nSURR<SURR<3nUR	[U5SU-5 SUlUR	[U5SU-5 SUlUR	[U5SU-5 g)N�(z\.)?z<%s>�dummyz<%s name='dummy'>�dummyz<%s name=b'dummy'>)r�r\r&r'�assertRegexr�r�)r?rQr+�clsnames    r�	test_repr�CommonBufferedTests.test_reprs����n�n����G�G�C�L��"&�'�'�"4�"4�d�g�g�6J�6J�K������a��&�7�"2�3��������a��"5��"?�@��������a��"6��"@�Ar c�~�UR5nURU5n[R"USU5 [R"S5 UR[5 [U5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)Nr��)r�r\r�	swap_attr�infinite_recursionr=�RuntimeErrorr��r?rQr+s   r�test_recursive_repr�'CommonBufferedTests.test_recursive_repr sx���n�n����G�G�C�L��
�
�
�s�F�A�
.��0J�0J�2�0N��"�"�<�0��Q��1�1O�
.�
.�0�0��1O�0N��
.�
.�s;�B.�B�'B�3B�;B.�
B�B�
B+	�'B.�.
B<c�^^^�UR5m/mUUU4SjnUTlURT5mUR[TR
5 UR
TR5 UR
TR5 UR
T5 URTS5 URTS5 STlg)Nc�N>�TRTR/TSS&[5erQr�)r+r�rQs���rrh�@CommonBufferedTests.test_flush_error_on_close.<locals>.bad_flush-s ������3�:�:�.�F�1�I��)�Or rr=c��grQr#r#r rrk�?CommonBufferedTests.test_flush_error_on_close.<locals>.<lambda>8���Dr )	r�r�r\r=r�r�rnr�ro)r?rhr+r�rQs  @@@rrw�-CommonBufferedTests.test_flush_error_on_close(s�����n�n�����	���	��G�G�C�L�����'�1�7�7�+�������!�����
�
�#������������#�������#� ��	r c�>�UR5nSnSnX1lURU5nX$lUR	[
5nUR5 SSS5 UR
WRRS5 URURR[
5 UR
URRRS5 URUR5 SUlSUlg!,(df   N�=f)Nc��[S5e�Nr�rr#r rrh�@CommonBufferedTests.test_close_error_on_close.<locals>.bad_flush<�
���'�"�"r c��[S5e�Nr�rr#r r�	bad_close�@CommonBufferedTests.test_close_error_on_close.<locals>.bad_close>r�r �r��r�c��grQr#r#r rrk�?CommonBufferedTests.test_close_error_on_close.<locals>.<lambda>Kr�r c��grQr#r#r rrkr�Lrmr )
r�r�r\r�r=r�r;r�r��assertIsInstance�__context__ror��r?rQrhr�r+�errs      r�test_close_error_on_close�-CommonBufferedTests.test_close_error_on_close:s����n�n���	#�	#��	��G�G�C�L����
�
�
�w�
'�3�
�G�G�I�(�������+�+�Z�8����c�m�m�7�7��A�������2�2�7�7��D�������"�!��	����(�
'�s�	D�
Dc�:�UR5nSnSnX1lURU5nX$lUR	[
5nUR5 SSS5 UR
S[WR55 URURR[
5 UR
S[URR55 URUR5 SUlSUlg!,(df   N�=f)Nc��[erQ��non_existing_flushr#r rrh�NCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.bad_flushQ���$�$r c��[erQ��non_existing_closer#r rr��NCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.bad_closeSr�r r�r�c��grQr#r#r rrk�MCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.<lambda>`rmr c��grQr#r#r rrkr�ar�r )
r�r�r\r�r=�	NameError�assertInr�r�r�r�ror�r�s      r�'test_nonnormalized_close_error_on_close�;CommonBufferedTests.test_nonnormalized_close_error_on_closeNs����n�n���	%�	%��	��G�G�C�L����
�
�
�y�
)�S�
�G�G�I�*��
�
�*�C��
�
�,>�?����c�m�m�7�7��C��
�
�*�C��
�
�0I�0I�,J�K�������"���� ��	�*�
)�s�	D�
Dc���UR5nURU5nUR5 UR5 UR5 UR[UR
5 grQ)r�r\r�r=r r�r�s   rrz�$CommonBufferedTests.test_multi_closecsJ���n�n����G�G�C�L��	���	�	���	�	���	����*�a�g�g�.r c���URURS55nURURUR5 URURUR
S5 g)N�
AAAAAAAAAAr)r\r�r=r�rmri�r?r�s  r�test_unseekable�#CommonBufferedTests.test_unseekableksQ������-�-�i�8�9�����$�3�3�U�Z�Z�@����$�3�3�U�Z�Z��Cr c���UR5nURU5nUR5nUR[5 X2lSSS5 g!,(df   g=frQ)r�r\r=r�rQ)r?rQrqr%s    r�test_readonly_attributes�,CommonBufferedTests.test_readonly_attributespsF���n�n����g�g�c�l���N�N���
�
�
�~�
.��G�/�
.�
.�s�A�
A%c��^�"U4SjSTR5qTRS5n[USS9n[[R
S-5H�nTR
US9 [R"X#5n[R"U5nTRURR5S5 TRURS5 SSS5 M� Bg!,(df   M�=f)Nc�<>^�\rSrSrU4SjrSrU4SjrSrU=r$)r�iyc�0>�[TU]U5 X lgrQ�r�rN�tag�r?rQrr�s   �rrN�MyBufferedIO.__init__z������ ��%��r c�N�URURR54$rQ)rrQr�r>s r�__getstate__�MyBufferedIO.__getstate__}s���x�x����!2�!2�!4�4�4r c�P>�Uup#URTRU5U5 grQ�rNr���slf�staterrr?s    �rr��MyBufferedIO.__setstate__�!���"�
�����T�\�\�%�0�#�6r �r�	r%r&r'r(rNrr�r)r��r�r?s@�rr�r�ys���
�
5�
7�
7r r��data�hamrr=��protocol)
r\r�r�r<�pickle�HIGHEST_PROTOCOLr��dumps�loadsr;rQr�r)r?rQrq�proto�pickled�newbufs`     r�test_pickling_subclass�*CommonBufferedTests.test_pickling_subclassws����	7�4�7�7�	7��l�l�7�#���3�E�*���6�2�2�Q�6�7�E����u��-� �,�,�s�2�����g�.��� � ����!4�!4�!6��@�� � ����U�3�	.�-�8�
�.�-�s
�#A3C$�$
C3	r#N)r%r&r'r(r�r�r�r�r�r�r�r�rwr�r�rzr�rr#r)r#r rr�r��sO���-�8�,�0
-�>�B��!�$�(!�*/�D�
�r r�c�\�\rSrSr\R
S5r\R
S5rSrg)�
SizeofTesti�c�
�SnSnUR5nURX1S9n[R"U5U-
nUR5nURX2S9nUR	[R"U5XR-5 g)N�� ��buffer_size)r�r\r��	getsizeofr;)r?�bufsize1�bufsize2r�r�r�s      r�test_sizeof�SizeofTest.test_sizeof�sr��������� �������4���}�}�U�#�h�.����� �������4��������u�-�t��?r c���SnUR5nURX!S9n[R"U5U-
nUR	5 UR[R"U5U5 g)Nr(r*)r�r\r�r,r�r;)r?r�r�r�r�s     r�test_buffer_freeing�SizeofTest.test_buffer_freeing�sX������� �������3���}�}�U�#�g�-��
���
�������u�-�t�4r r#N)	r%r&r'r(r�cpython_onlyr/r2r)r#r rr&r&�s6�����@��@�
���5��5r r&c���\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSr\R("5\R,"S5S55rSrSrSrSrSrSrSrSrg)�BufferedReaderTesti�r[c�2�URS/5nURU5nURU5 URUSS9 URUSS9 URSUR	55 UR[URUSS9 UR[URUSS9 UR[URUSS9 URS/5nURU5 URSUR	55 g)Nr}�r*�r��r)r�r\rNr;r�r=r r�s   r�test_constructor�#BufferedReaderTest.test_constructor�s�������x�(��������
���u��
���u�$��/�
���u�"��-���������.����*�e�n�n�e���K����*�e�n�n�e���M����*�e�n�n�e���L�����x�(��
���u����������.r c�j�URRUR5nAURRUR5nUR[[4SUR
S5 UR
UR55 URURS5S5 g�N�uninitialized|has no attributerr )	r\�__new__r�r r�r�rNr�r;r�s  r�test_uninitialized�%BufferedReaderTest.test_uninitialized�s����������(�����������(�����
�N�;�?�$�z�z�1�	.�	���t�~�~�'�(�������A���,r c���SHFnURS5nURU5nURSURU55 MH UR	[
WRS5 g)N)Nr
r�r�r�)r�r\r;r�r=r )r?�argr�r�s    r�	test_read�BufferedReaderTest.test_read�sX���C��N�N�#9�:�E��G�G�E�N�E����Z����C��9��
	
���*�e�j�j�"�5r c�.�URS5nURU5nURSURS55 URSUR	S55 URUR
S5 URSUR	S55 URSUR	S55 URUR
S5 URS	UR	S55 URUR
S
5 URSUR	S55 URUR
S5 URSUR	S55 URUR
S
5 g)Nr��ar=�br rr�ror~r�rrNr��r�r\r;r�r�rKr�s   r�
test_read1�BufferedReaderTest.test_read1�s.�����5�6������������u�z�z�!�}�-�����u�{�{�1�~�.�������q�)�����e�k�k�!�n�-�����u�{�{�3�/�0�������q�)�����u�{�{�3�/�0�������q�)��������S�!1�2�������q�)�����e�k�k�#�.�/�������q�)r c��URS5nURU5nURSURS55 URSUR	55 URSUR	55 URSUR	S55 URUR
S5 URS	UR	55 URUR
S
5 g)Nr�rHr=sbcr~rrrNr r�rJr�s   r�test_read1_arbitrary�'BufferedReaderTest.test_read1_arbitrary�s������5�6������������u�z�z�!�}�-��������
�.�����u�{�{�}�-��������R��1�������q�)�����e�k�k�m�,�������q�)r c�l�URS5nURU5n[S5nURUR	U5S5 URUS5 URUR	U5S5 URUS5 URUR	U5S5 URUS5 URUR	U5S5 URUS5 URUR	U5S5 URUS5 URS	5nURU5nURUR	U5S5 URUS5 URUR	U5S5 URUS
5 g)Nr�r�r��cdr�r=sgfr)r}Nscb)r�r\r<r;rt)r?r�r�r+s    r�
test_readinto� BufferedReaderTest.test_readinto�sa�����5�6���������a�L���������*�A�.�����E�"��������*�A�.�����E�"��������*�A�.�����E�"��������*�A�.�����E�"��������*�A�.�����E�"����~�.���������������*�A�.�����E�"��������*�A�.�����E�"r c���SnURS5nURX!S9n[S5nURUR	S5S5 URUR
S5 URUR
U5S5 URUS5 URUR
S5 URUR
U5S5 URUSSS	5 URUR
S5 URUR
U5S5 URUS
5 URUR
S5 [SU-5nURUR	S5S5 URUR
S5 URUR
U5S5 URUSSS
5 URUR
S5 g)NrG)r}�de�fghsjklr*r�rNr}r=r�r�rUrVr5sfghjklr�)r�r\r<r;�peekrKrH)r?r+r�r�r+s     r�test_readinto1�!BufferedReaderTest.test_readinto1�s��������>�?�������7���a�L��������A���/�������q�)��������+�Q�/�����E�"�������q�)��������+�Q�/�����2�A���%�������q�)��������+�Q�/�����E�"�������q�)��a��m�$��������A���/�������q�)��������+�Q�/�����2�A��	�*�������q�)r c	���SnSnURU45nURX1S9n[R"SS5n[U5S:wdeUR	U5nURU[U55 [
U5RS5nURU[U55 URUSUUSU5 URXvSS[XvS5-5 g�	N�<saaaaaaaaaaaaaaaaaaaaaaaaaar*r8s xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr9rrF)
r�r\r,rrtr�rr�
assertLessr;�r?r+rr�r�r+rs�bms        r�test_readinto_array�&BufferedReaderTest.test_readinto_arrays�����������w�'�������7��
�K�K��Y�'���1�v��|��|�
�N�N�1������1�c�!�f�%���]�
�
��
$������3�r�7�#�����B�Q���b�q��*�����B����R��V��!5�6r c	���SnSnURU45nURX1S9n[R"SS5n[U5S:wdeUR	U5nURU[U55 [
U5RS5nURU[U55 URUSUUSU5 URXvSS[XvS5-5 gr[)
r�r\r,rrHr�rrr]r;r^s        r�test_readinto1_array�'BufferedReaderTest.test_readinto1_array#s�����������w�'�������7��
�K�K��Y�'���1�v��|��|�
�O�O�A������1�c�!�f�%���]�
�
��
$������3�r�7�#�����B�Q���b�q��*�����B����R��V��!5�6r c�^�U4SjnTRU"5R5/SQ5 TRU"5RS5SS/5 TRU"5RS5/SQ5 g)Nc�H>�TRS5nTRU5$)N�r�rCr�)r�r\)r�r?s �rr��0BufferedReaderTest.test_readlines.<locals>.bufio9s ����N�N�#<�=�E��7�7�5�>�!r rgr�r�rC�r;r�r�s` r�test_readlines�!BufferedReaderTest.test_readlines8sf���	"�	
�����*�*�,�.G�H������*�*�1�-��&�/A�B������*�*�4�0�2K�Lr c	�H�Sn[U5nS/SQUS//S/SQU//S/SQ/SQ//nUHvupEnURU5nURXtS	9nSn	UH,n
URUR	U
5XX�-5 X�-
n	M. URUR
U5 Mx g)
N�	abcdefghiro)rNr=r��r)rNrNrNr�)r=r�r�r�)r�r�r=r*)rr�r\r;r�r�)r?r�dlenr�r��buf_read_sizes�raw_read_sizesr�r�r�nbytess           r�test_buffering�!BufferedReaderTest.test_buffering@s������4�y���>�T�1�;�0��:�T�8�0��>�;�0�
��8=�3�G�^��O�O�D�)�E��G�G�E�G�7�E��C�(��� � ����F�!3�T�c�j�5I�J��
��)�
���U�/�/��@�8=r c�l�URS5nURU5nURSURS55 URSURS55 URSUR55 URSUR	S55 URUR55 URSUR55 URS5nURS	UR
55 URUR
55 g)
N)r}r~NrNNN�abcdr5�er=sfgr )rHNNrH)r�r\r;r�rWrWr�r�s   r�test_read_non_blocking�)BufferedReaderTest.test_read_non_blockingTs������M�N������������%�*�*�Q�-�0�����u�z�z�!�}�-������
�
��-�����e�j�j��m�,����%�*�*�,�'�����e�j�j�l�+����1�2������u�}�}��/����%�-�-�/�*r c��URS5nURU5nURSURS55 g)Nr�r�i(#�r�r\r;r�r�s   r�test_read_past_eof�%BufferedReaderTest.test_read_past_eofcs7�����5�6������������U�Z�Z��%5�6r c��URS5nURU5nURSUR55 gr�r{r�s   r�
test_read_all� BufferedReaderTest.test_read_allis4�����5�6������������U�Z�Z�\�2r �cpuc�R^
^^�Sn[[S55U-n[R"U5 [	[U55nUR
[RS5nURU5 SSS5 UR
[RURSS9nURUS5m
/m/mU
UU4Sjn[S5Vs/sHn[R"US	9PM nn[R"U5 [ R""S
5 SSS5 UR%TST-5 SR'T5n[S5H9n[	[U/55n	UR)UR+U	5U5 M; SSS5 [R,"[R5 g!,(df   GNT=fs snf!,(df   N�=f!,(df   N[=f![R,"[R5 f=f)
N��r�rXrrYrnc��>�[SS/5H.nTRU5nU(d gTRU5 M0 g![anTRU5 eSnAff=f)Nr=�)rr�rR�	Exception)rsr�er��errors�resultss   ���rr5�*BufferedReaderTest.test_threads.<locals>.f�sZ���
�!&��2�w��A� %�
�
�1�
�A�#$� %�#�N�N�1�-�"0��%���
�
�a�(����s�)A�A�
A$�
A�A$rD�rq�{�G�z�?�(the following exceptions were caught: %rr )rHr<�random�shufflerr<r2r
r-rT�	read_moder\r�rsrr3r�r�ror
r;rr,)
r?�N�lrr5rQr%�threadsr8�cr�r�r�s
          @@@r�test_threads�BufferedReaderTest.test_threadsos����$	/��A��U�3�Z� �1�$�A��N�N�1���i��l�#�A����9�+�+�T�2�a�����
�3����9�+�+�T�^�^�q��I�S�����Q��������@E�R�y�I�y�!�9�+�+�1�5�y��I�%�3�3�G�<��J�J�t�$�=�� � ��>��G�I��H�H�W�%���s��A��i���n�-�A��$�$�Q�W�W�Q�Z��3�$�-J�4
���Y�-�-�.�93�2��$J�<�<��#J�I��4
���Y�-�-�.�sg�A#H�(G�:1H�+,G/�G�5G/�
G�$A6G/�H�
G�H�G/�
G,	�(G/�/
G=�9H�&H&c��URURS55nURURUR5 URURUR
S5 UR
S5 URURUR
S5 URURUR5 g)Nr�rr=)r\r�r=r�rmrir�r�s  rr��"BufferedReaderTest.test_unseekable�s�������-�-�i�8�9�����$�3�3�U�Z�Z�@����$�3�3�U�Z�Z��C�
�
�
�1�
����$�3�3�U�Z�Z��C����$�3�3�U�Z�Z�@r c���URS5nURU5nUR[URS5 UR[UR
5 SUlg)Nr�rc��grQr#r#r rrk�7BufferedReaderTest.test_misbehaved_io.<locals>.<lambda>����dr )r�r\r=r�rirmr�r�s   r�test_misbehaved_io�%BufferedReaderTest.test_misbehaved_io�sS���$�$�%;�<�����������'�5�:�:�q�1����'�5�:�:�.�#��r c	�@�SnSUS-
XS-US-4GHnURSU-/5nURX15nURURU5SU-5 URURSSRX#R55 URSUS-
-S/5nURX15nURURU5SU-5 URURSSRX#R55 GM g)Nr9r�r=rFrzfailed for {}: {} != 0)r�r\r;r�rLr_)r?r�rsr�r�s     r�test_no_extraneous_read�*BufferedReaderTest.test_no_extraneous_read�s�����W�q�[�'�Q�;��!��D�A��N�N�D�1�H�:�.�E��G�G�E�+�E����U�Z�Z��]�D�1�H�5����U�4�4�a�5�<�<�Q�@W�@W�X�
Z��N�N�D�A��E�N�D�#9�:�E��G�G�E�+�E����U�Z�Z��]�D�1�H�5����U�4�4�a�5�<�<�Q�@W�@W�X�
Z�Er c�h�URURS55nURS5 UR5 UR	S5 UR[UR5 SSS5 UR	S5 UR[URS5 SSS5 UR	S5 UR[UR5 SSS5 UR	S5 UR[UR[55 SSS5 UR	S5 UR[UR[55 SSS5 UR	S5 UR[UR5 SSS5 UR	S	5 UR[UR5 SSS5 UR	S
5 UR[URS5 SSS5 g!,(df   GN�=f!,(df   GN�=f!,(df   GNi=f!,(df   GN8=f!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   g=f)N�12r=rWr�r�rtrHr�rwrir)ryr�r�r�r�r=r rWr�rtr<rHr�rwrirSs  r�test_read_on_closed�&BufferedReaderTest.test_read_on_closed�s���������U� 3�4��	���q�	�	���	�
�\�\�&�
!����j�!�&�&�1�"�
�\�\�'�
"����j�!�'�'�1�5�#�
�\�\�&�
!����j�!�&�&�1�"�
�\�\�*�
%����j�!�*�*�i�k�B�&�
�\�\�+�
&����j�!�+�+�y�{�C�'�
�\�\�'�
"����j�!�'�'�2�#�
�\�\�*�
%����j�!�*�*�5�&�
�\�\�&�
!����j�!�&�&�!�4�"�
!�"�
!��
"�
"��
!�
!��
%�
%��
&�
&��
"�
"��
%�
%��
!�
!�s`�!H'�
"H9�!I�*I�*I/�!J�!J�<"J#�'
H6�9
I�
I�
I,�/
I>�
J�
J �#
J1c� �URS5nURU5nURUR55 UR	UR
UR5 UR	UR
URS5 g)Nr}r)r�r\rorXr=r�rwr�s   r�test_truncate_on_read_only�-BufferedReaderTest.test_truncate_on_read_only�sh������'��������������)�*����$�3�3�U�^�^�D����$�3�3�U�^�^�Q�Gr c�
�URS5nURU5nURUR5S5 URUR	S5S5 URUR5S5 g�Nr�rr=�1)r�r\r;rmr�r�s   r�test_tell_character_device_file�2BufferedReaderTest.test_tell_character_device_file�se���*�*�5�1���g�g�c�l���������Q�'�������!��d�+��������Q�'r c�J�URS5nURU5nURURS[R
5S5 URURS[R5S5 URURS[R
5S5 URURS5S5 URUR5S5 URURS[R
5S5 gr�)	r�r\r;rir�r_�SEEK_SETr�rmr�s   r�test_seek_character_device_file�2BufferedReaderTest.test_seek_character_device_file�s����*�*�5�1���g�g�c�l��������!�R�[�[�1�1�5�������!�R�[�[�1�1�5�������!�R�[�[�1�1�5�������!��d�+�
	
�������Q�'�������!�R�[�[�1�1�5r r#N) r%r&r'r(r�r;rArErKrNrRrXr`rcrjrsrxr|rrr@r�requires_resourcer�r�r�r�r�r�r�r�r)r#r rr6r6�s����I�/�-�6�*� 	*�#�**�.7�*7�*M�A�(
+�7�3��0�0�2����u�%�%/�&�3�%/�NA�#�Z�(5�,H�(�6r r6c�P�\rSrSr\R
rSrSrSr	Sr
SrSrSr
g	)
�CBufferedReaderTesti�c���URS/5nURU5nUR[URUSS9 UR[UR
5 UR[URUSS9 UR[UR
5 UR[URUSS9 UR[UR
5 g)Nr}rr*r:r)r�r\r=r rNr�r�s   r�test_initialization�'CBufferedReaderTest.test_initialization�s�������x�(�����������*�e�n�n�e���K����*�e�j�j�1����*�e�n�n�e���M����*�e�j�j�1����*�e�n�n�e���L����*�e�j�j�1r c��URS5nURU5nUR[URS5 g)Nr�rG)r�r\r=r�r�r�s   r�test_misbehaved_io_read�+CBufferedReaderTest.test_misbehaved_io_reads8���$�$�%;�<��������	
���'�5�:�:�r�2r c��UR[R[R5 [R
"S[45 UR[RS5nURU5nX"l	[R"U5nA[R"5 SSS5 URW"5U5 g!,(df   N&=f)Nrr�)rrr
r,r-rrrrkr\r5rUrVrrrW�r?r�r5rXs    rrY�+CBufferedReaderTest.test_garbage_collections���	
���	�(�(�)�*:�*:�;�
�
+�
+�R��,A�
B��K�K�	� 0� 0�%�8�E������A��C����Q��B����� �
C�	
���"�$��#�C�
B�s
�A$C�
Cc��UR[S5 URUR5SSS5 SSS5 g!,(df   g=f)Nryr8�r�r>r\r�r>s r�test_args_error�#CBufferedReaderTest.test_args_error�8��
�
#�
#�I�/?�
@��G�G�D�L�L�N�D�$��5�A�
@�
@���#A�
Ac�>�URURS55nSUlURU5nUR[5nUR5 SSS5 UR
WRR5 g!,(df   N4=f)Nr�c��gr�r#�rqs rrk�=CBufferedReaderTest.test_bad_readinto_value.<locals>.<lambda>s��Rr )	r\r�rtr=r�r]rWr��	__cause__�r?r�r�r�s    r�test_bad_readinto_value�+CBufferedReaderTest.test_bad_readinto_valuesm��������U�+�,��'���������
�
�
�w�
'�2��N�N��(����"�,�,�0�0�1�(�
'�s�B�
Bc�H�URURS55nSUlURU5nUR[5nUR5 SSS5 UR
WRR[5 g!,(df   N9=f)Nr�c��grr#r�s rrk�<CBufferedReaderTest.test_bad_readinto_type.<locals>.<lambda>#s��Sr )
r\r�rtr=r�r]r�r�r�r>r�s    r�test_bad_readinto_type�*CBufferedReaderTest.test_bad_readinto_type!so��������U�+�,��(���������
�
�
�w�
'�2��N�N��(����b�l�l�4�4�i�@�(�
'�s�B�
B!r#N)r%r&r'r(r�ryr\r�r�rYr�r�r�r)r#r rr�r��s,��	�	�	�B�2�3�$�6�
2�Ar r�c�,�\rSrSr\R
rSrg)�PyBufferedReaderTesti*r#N)r%r&r'r(r�ryr\r)r#r rr�r�*�
��	
�	�	�Br r�c�"�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSr\R2"5\R6"S5S55rSrSrSr\R2"5S5r Sr!g)�BufferedWriterTesti.rXc��UR5nURU5nURU5 URUSS9 URUSS9 URSUR	S55 UR5 UR
[URUSS9 UR
[URUSS9 UR
[URUSS9 URU5 URSUR	S	55 UR5 URS
RUR5S5 g)Nr8r*r9rNr}rr:r�ghir sabcghi)
r�r\rNr;rTr�r=r r
rJr�s   rr;�#BufferedWriterTest.test_constructor1s����� ��������
���u��
���u�$��/�
���u�"��-�����E�K�K��/�0�
���
����*�e�n�n�e���K����*�e�n�n�e���M����*�e�n�n�e���L�
���u������E�K�K��/�0�
���
�������%�"4�"4�5�y�Ar c�j�URRUR5nAURRUR5nUR[[4SUR
S5 UR
UR55 URURS5S5 g)Nr?r r)	r\r@r�r r�rTrNr�r;r�s  rrA�%BufferedWriterTest.test_uninitializedAs�����������(�����������(�����
�N�;�?�$�{�{�C�	1�	���t�~�~�'�(�������S�)�1�-r c��UR5nURU5nURS5 URUR5 UR5 UR
URS/5 g)Nshowdy!)r�r\rTrorJr�r;r�s   r�test_detach_flush�$BufferedWriterTest.test_detach_flushKs\���n�n����g�g�c�l���	�	�)������)�)�*��
�
������)�)�I�;�7r c�X�UR5nURUS5nURS5 URUR5 [S5nURU5 SUSS&UR
5 URSRUR5S5 g)Nrnr}�def�***r �abcdef)	r�r\rTrorJr<r�r;r
)r?r*r�r?s    r�
test_write�BufferedWriterTest.test_writeSs������!�������"��
���F������,�,�-��6�"��
���F����q�	�
���
�������&�"5�"5�6�	�Br c�0�UR5nURUS5nSn[S[U5S5HnUR	X4US-5 M SRUR5nURURUSS5U5 g)NrnsabcdefghijklmnoprrNr i����)	r�r\r<rrTr
rJrnr�)r?r*r��contentsrs�flusheds      r�test_write_overflow�&BufferedWriterTest.test_write_overflow_s������!�������"��&���q�#�h�-��+�A��K�K��1�Q�3��(�,��(�(�6�.�.�/��	
����*�*�8�C�R�=�9�7�Cr c���[[S55S-nSnUR5nURUS5nSnU"5nU[	U5:ac[[
U5[	U5U-
5nURURX#X8-5U5 U"U5 X8-
nU[	U5:aMcUR5 URUSRUR55 g)Nr�r�rr8c3�\# �[S5Hn[S5HnUv� M	 M g7f)Nr=�)rr<)r�r8s  r�	gen_sizes�2BufferedWriterTest.check_writes.<locals>.gen_sizesqs&����a����r��A��J�#�!�s�*,r )rr<r�r\rrr�r;rTr�r
rJ)	r?�intermediate_funcr�rsr*r�r��sizesr�s	         r�check_writes�BufferedWriterTest.check_writesjs�����s��$�t�+��
�����!�������#��	�����#�h�-���t�E�{�C��M�A�$5�6�D����U�[�[��A�F�);�<�d�C��e�$�
�I�A�	�#�h�-��
	���
�����3�8�8�F�,?�,?�#@�Ar c�(�URS5 g)Nc��grQr#r�s rrk�0BufferedWriterTest.test_writes.<locals>.<lambda>s��r �r�r>s r�test_writes�BufferedWriterTest.test_writes~s�����,�-r c�(�URS5 g)Nc�"�UR5$rQr�r�s rrk�<BufferedWriterTest.test_writes_and_flushes.<locals>.<lambda>�s
�����
r r�r>s r�test_writes_and_flushes�*BufferedWriterTest.test_writes_and_flushes�s�����5�6r c�T�SnURU5 SnURU5 g)Nc��UR5nURUS-S5 URUS-
S5 URUS5 gr<)rmri�r�rs  r�_seekabs�:BufferedWriterTest.test_writes_and_seeks.<locals>._seekabs�s?���*�*�,�C��J�J�s�Q�w��"��J�J�s�Q�w��"��J�J�s�A�r c��URSS5nURSS5 URSS5 URUS5 g)Nrr=r)rir�s  r�_seekrel�:BufferedWriterTest.test_writes_and_seeks.<locals>._seekrel�s<���*�*�Q��"�C��J�J�r�1���J�J�r�1���J�J�s�A�r r�)r?rrs   r�test_writes_and_seeks�(BufferedWriterTest.test_writes_and_seeks�s,��	�
	
���(�#�	�
	
���(�#r c�(�URS5 g)Nc�@�URUR55$rQ)rwrmr�s rrk�>BufferedWriterTest.test_writes_and_truncates.<locals>.<lambda>�s�����u�z�z�|�(Dr r�r>s r�test_writes_and_truncates�,BufferedWriterTest.test_writes_and_truncates�s�����D�Er c���UR5nURUS5nURURS5S5 URURS5S5 UR	S5 URURS5S5 UR	S5 URS	5 URS
5 URWS5 URUR5S5 URURS
5S5 UR5nURURS5U5 g!URanURnSnAN�SnAff=f)Nrnrvr�sefghir��ksjklmn�0sopqrwxyz0123456789z'BlockingIOError should have been raisedr9sabcdefghijklmnopqrwxyzs	ABCDEFGHIr6s	01234567A)rr\r;rTrr�r%�characters_writtenrrnr�)r?rQr�r��writtenrs      r�test_write_non_blocking�*BufferedWriterTest.test_write_non_blocking�s1���'�'�)������Q���������W�-�q�1�������X�.��2����T��������X�.��2�	���T��	A��K�K�-�.�
�I�I�?�@�����"�%�������*�%�	'�	
������\�2�A�6��O�O���������\�2�A�6���#�#�	+��*�*�G��	+�s�)E�E6� E1�1E6c�6�UR5nURUS5nURURS5S5 URUR	5S5 URSS5 URURS5S5 URSS5 URUR
5S5 URURS5S5 UR5 URUR
5S	5 g)
Nr�r�r5rsXYr�sXYcdefs123456sXYcdef123456)r�r\r;rTrmrir�r��r?rQr�s   r�test_write_and_rewind�(BufferedWriterTest.test_write_and_rewind�s����l�l�n������Q���������Y�/��3��������q�)�
�
�
�1�a��������U�+�Q�/�
�
�
�1�a����������3�������Y�/��3�
���
���������9r c���UR5nURUS5nURS5 UR5 UR	SUR
S5 g�Nrnr}r)r�r\rTr�r;rJ�r?r*r�s   r�
test_flush�BufferedWriterTest.test_flush�sN�����!�������"��
���F��
���
������!4�!4�Q�!7�8r c���/SQnUR5nURUS5nURU5 UR5 UR	SRUR5S5 g�N)r�rQr�rnr r�)r�r\r^r�r;r
rJ�r?r�r*r�s    r�test_writelines�"BufferedWriterTest.test_writelines�sY��!�����!�������"��
�����
���
�������&�"5�"5�6�	�Br c��[/SQ5nUR5nURUS5nURU5 UR	5 URSR
UR5S5 gr)rr�r\r^r�r;r
rJrs    r�test_writelines_userlist�+BufferedWriterTest.test_writelines_userlist�s_���*�+�����!�������"��
�����
���
�������&�"5�"5�6�	�Br c��UR5nURUS5nUR[UR/SQ5 UR[URS5 UR[URS5 g)Nrnr
�abc)r�r\r=r>r^rs   r�test_writelines_error�(BufferedWriterTest.test_writelines_error�sf�����!�������"�����)�U�%5�%5�y�A����)�U�%5�%5�t�<����)�U�%5�%5�u�=r c���UR5nURUS5nURS5 A[R"5 URSURS5 gr)r�r\rTrrr;rJrs   rr�"BufferedWriterTest.test_destructor�sT�����!�������"��
���F������������!4�!4�Q�!7�8r c�`�UR[R[R5 UR	[RUR
SS9nUR
US5nURS5 URURS5S5 URUR5S5 SSS5 UR	[RSSS9nURUR5S5 SSS5 g!,(df   NW=f!,(df   g=f)	NrrYrnr�rNr5r[r})rrr
r,r-r2�
write_moder\rTr;rwrmr�)r?rQr�r5s    r�
test_truncate� BufferedWriterTest.test_truncate�s������	�(�(�)�*:�*:�;�
�Y�Y�y�'�'����A�Y�
F�#��G�G�C��O�E��K�K�	�"����U�^�^�A�.��2����U�Z�Z�\�1�-�	G�
�Y�Y�y�'�'���Y�
;�q����Q�V�V�X�v�.�<�
;�G�
F��
<�
;�s�A%D�$!D�
D�
D-c�@�UR[R[R5 UR	[RS5nURSS-5 SSS5 /SQnUH�nUR	[RSUS9nURSUS--5 UR
S5 UR5 URUR5US-5 SSS5 M� g!,(df   N�=f!,(df   M�=f)	NrX�i')r)r(��zr+brYr=r�)
rrr
r,r-r2rTr�rwr;rm)r?r5�buffer_sizesr+s    r�test_truncate_after_write�,BufferedWriterTest.test_truncate_after_write�s���	
���	�(�(�)�*:�*:�;�
�Y�Y�y�'�'��
.�!�
�G�G�G�e�O�$�/�)��'�K����9�+�+�U�k��J�a�����;��?�3�4����q�	��
�
��� � �����;��?�;�
K�J�(�	/�
.��
K�J�s�C=�AD�=
D�
D	r�c�^^
^�Sn[[S55U-n[SS/5nSn[5mU[	U5:a5[U5nTR
X$XE-5 XE-
nU[	U5:aM5AUR[RURSS9nURUS5m/m
UU
U4Sjn[S	5Vs/sHn[R"US
9PM n	n[R"U	5 [ R""S5 SSS5 UR%T
ST
-5 TR'5 SSS5 UR[RS
5nUR)5n
SSS5 [S5H.nUR+W
R-[U/55U5 M0 [R."[R5 gs snf!,(df   N�=f!,(df   N�=f!,(df   N�=f![R."[R5 f=f)Nr�r�r=r�rrYrnc�>�TR5nTRU5 M$![a gf=f![anTR	U5 eSnAff=frQ)�popleftrprTr�rR)rr�r�r��queues  ���rr5�*BufferedWriterTest.test_threads.<locals>.fsa���	�"�'�$)�M�M�O��"�K�K��N�#��$.�'� &�'��%���
�
�a�(����s-�8�(�8�
5�8�5�8�
A�A�ArDr�r�r�r[)rr<rrrr�rRr2r
r-r+r\r�rsrr3r�r�ror�r�r;rr,)r?r�r�r�rsr�rQr5r%r�rr8r�r�r7s            @@@rr��BufferedWriterTest.test_threadss����+	/��A��U�3�Z�(�1�,�H��1�b�'�N�E��A��G�E��c�(�m�#��E�{�����X���/�0��	���c�(�m�#�����9�+�+�T�_�_���J�c�����Q�����
�@E�R�y�I�y�!�9�+�+�1�5�y��I�%�3�3�G�<��J�J�t�$�=�� � ��>��G�I����
�'K�(���9�+�+�T�2�a��F�F�H��3��3�Z��� � ������s��!4�a�8� �
���Y�-�-�.��J�<�<��K�J��(3�2��

���Y�-�-�.�sm�A4H$�;*H$�%*H�G,�-H�G1�-H�	(H$�1H�AH$�,H�1
G?	�;H�
H�H$�
H!�H$�$&I
c��UR5nURUS5nUR[URS5 UR[UR
5 UR[URS5 SUlg)Nr�rr�c��grQr#r#r rrk�7BufferedWriterTest.test_misbehaved_io.<locals>.<lambda>8r�r )r�r\r=r�rirmrTr�r�s   rr��%BufferedWriterTest.test_misbehaved_io0si���$�$�&������q�!�����'�5�:�:�q�1����'�5�:�:�.����'�5�;�;�	�:�#��r c��UR[5 URUR5SS5 SSS5 g!,(df   g=f�Nrnr9�r=r>r\r�r>s r�test_max_buffer_size_removal�/BufferedWriterTest.test_max_buffer_size_removal:s3��
�
�
�y�
)��G�G�D�N�N�$�a��,�*�
)�
)�s�"A�
Ac���UR5nSnX!lURU5nURS5 UR[UR
5 UR
UR5 g)Nc��[5erQr)r+s r�	bad_write�?BufferedWriterTest.test_write_error_on_close.<locals>.bad_write@s	���)�Or �spam)r�rTr\r=r�r�rnr�)r?rQrEr+s    r�test_write_error_on_close�,BufferedWriterTest.test_write_error_on_close>sU���n�n���	��	��G�G�C�L��	��������'�1�7�7�+�������!r c�p�UR5nURUS5n[R"URS9nUR5 URR5 UR[URS5 URUR5 UR5 g)Nrnr�rG)r�r\r�rsr�rtr�r&r=r rTrnr�r
)r?r�r��ts    r�test_slow_close_from_thread�.BufferedWriterTest.test_slow_close_from_threadHs~���#�#�%������q�!�����E�K�K�0��	���	�
���������*�e�k�k�7�;�������%�	���r r#N)"r%r&r'r(r+r;rAr�r�r�r�r�r�rr
rrrrr"r&rr,r2rr@rr�r�r�rArHrLr)r#r rr�r�.s����J�B� .�8�
C�	D�B�(.�7�$�F�7�6:�9�C�C�>�9�	/�<�$�0�0�2����u�%�,/�&�3�,/�\#�-�"��0�0�2�	�3�	r r�c�>�\rSrSr\R
rSrSrSr	Sr
g)�CBufferedWriterTestiVc���UR5nURU5nUR[URUSS9 UR[UR
S5 UR[URUSS9 UR[UR
S5 UR[URUSS9 UR[UR
S5 g)Nrr*r�r:r)r�r\r=r rNrTr�s   rr��'CBufferedWriterTest.test_initializationYs������ �����������*�e�n�n�e���K����*�e�k�k�6�:����*�e�n�n�e���M����*�e�k�k�6�:����*�e�n�n�e���L����*�e�k�k�6�:r c��UR[R[R5 [R
"S[45 UR[RS5nURU5nURS5 X"l
[R"U5nA[R"5 SSS5 URW"5U5 UR![RS5nUR#UR%5S5 SSS5 g!,(df   No=f!,(df   g=f)Nrr�s123xxxr[)rrr
r,r-rrrrkr\rTr%rUrVrrrWr2r;r�r�s    rrY�+CBufferedWriterTest.test_garbage_collectioncs���	
���	�(�(�)�*:�*:�;�
�
+�
+�R��,A�
B��K�K�	� 0� 0�%�8�E������A�
�G�G�I���C����Q��B����� �C�	
���"�$��#�
�Y�Y�y�'�'��
.�!����Q�V�V�X�y�1�/�
.�C�
B��/�
.�s�A5D)�?!D:�)
D7�:
Ec��UR[S5 URUR5SSS5 SSS5 g!,(df   g=f)Nr~r8r�r>s rr��#CBufferedWriterTest.test_args_errortr�r�r#N)r%r&r'r(r�r~r\r�rYr�r)r#r rrOrOVs��	�	�	�B�;�2�"6r rOc�,�\rSrSr\R
rSrg)�PyBufferedWriterTestizr#N)r%r&r'r(r�r~r\r)r#r rrWrWzr�r rWc��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrg)�BufferedRWPairTesti}c��URUR5UR55nURUR5 grQ)r\r�ror��r?�pairs  rr;�#BufferedRWPairTest.test_constructors2���w�w�t�~�~�'����)9�:��������%r c��URRUR5nAURRUR5nUR[[4SUR
S5 UR[[4SURS5 URUR5UR55 URURS5S5 URUR
S5S5 gr>)
r\r@r�r r�r�rTrNr�r;r[s  rrA�%BufferedRWPairTest.test_uninitialized�s����w�w���t�w�w�'����w�w���t�w�w�'�����
�N�;�?�#�y�y�!�	-�	
���
�N�;�?�#�z�z�3�	0�	
�
�
�d�n�n�&����(8�9�������1��s�+�������C��!�,r c��URUR5UR55nURURUR5 grQ)r\r�r=r�r�r[s  rr��BufferedRWPairTest.test_detach�s:���w�w�t�~�~�'����)9�:�����$�3�3�T�[�[�Ar c���UR[5 URUR5UR5SS5 SSS5 g!,(df   g=fr?r@r>s r�(test_constructor_max_buffer_size_removal�;BufferedRWPairTest.test_constructor_max_buffer_size_removal�s<��
�
�
�y�
)��G�G�D�N�N�$�d�n�n�&6��2�>�*�
)�
)�s�1A�
Ac��"SS[5nUR[URU"5UR55 g)Nc��\rSrSrSrSrg)�JBufferedRWPairTest.test_constructor_with_not_readable.<locals>.NotReadablei�c��gr�r#r>s rra�SBufferedRWPairTest.test_constructor_with_not_readable.<locals>.NotReadable.readable����r r#N�r%r&r'r(rar)r#r r�NotReadablerg����
r rl�r�r=r�r\)r?rls  r�"test_constructor_with_not_readable�5BufferedRWPairTest.test_constructor_with_not_readable�s1��	�)�	�	
���'�4�7�7�K�M�4�>�>�;K�Lr c��"SS[5nUR[URUR5U"55 g)Nc��\rSrSrSrSrg)�LBufferedRWPairTest.test_constructor_with_not_writeable.<locals>.NotWriteablei�c��gr�r#r>s rrX�UBufferedRWPairTest.test_constructor_with_not_writeable.<locals>.NotWriteable.writable�rjr r#N)r%r&r'r(rXr)r#r r�NotWriteablers�rmr rvrn)r?rvs  r�#test_constructor_with_not_writeable�6BufferedRWPairTest.test_constructor_with_not_writeable�s1��	�9�	�	
���'�4�7�7�D�N�N�,<�l�n�Mr c���URURS5UR55nURUR	S5S5 URUR	S5S5 URUR	5S5 URURS5UR55nURUR	S5S5 g)Nr�rNr}r=r~r�)r\r�r�r;r�r[s  rrE�BufferedRWPairTest.test_read�s����w�w�t�|�|�I�.����0@�A��������1��v�.�������1��t�,��������e�,��w�w�t�|�|�F�+�T�^�^�-=�>��������4��&�1r c�^�U4SjnTRU"5R5/SQ5 TRU"5R5/SQ5 TRU"5RS5SS/5 g)Nc�b>�TRTRS5TR55$)Ns	abc
def
h)r\r�r�r>s�rrk�3BufferedRWPairTest.test_readlines.<locals>.<lambda>�s ���t�w�w�t�|�|�N�;�T�^�^�=M�Nr )r�r�r7r�r�r�rir[s` rrj�!BufferedRWPairTest.test_readlines�sb���N�������)�)�+�-G�H������)�)�+�-G�H������)�)�!�,�x��.B�Cr c���URURS5UR55nURUR	S5S5 URUR	5S5 g)Nr�rNr}r�)r\r�r�r;r�r[s  rrK�BufferedRWPairTest.test_read1�sR���w�w�t�|�|�I�.����0@�A��������A���/��������v�.r c�Z�SH�nURU5 URURS5UR55n[	S5nUR[
X!5"U5S5 UR[U5S5 SSS5 M� g!,(df   M�=f)Nr�r�sr�sabcde)r�r\r�r�rr;r�r)r?r�r\rs    rrR� BufferedRWPairTest.test_readinto�s��/�F����f�%��w�w�t�|�|�I�6����8H�I�� ��+��� � ���!6�t�!<�a�@�� � ��t��h�7�&�%�0�%�%�s�A7B�
B*	c�D�UR5nURUR5U5nURS5 UR5 [	S5nURU5 SUSS&UR5 URURSS/5 g)Nr}r�r�)r�r\rTr�r<r;rJ)r?rVr\r?s    rr��BufferedRWPairTest.test_write�s{���N�N����w�w�t�~�~�'��+���
�
�6���
�
���6�"���
�
�6����q�	��
�
��������&�&�)9�:r c��URURS5UR55nURUR	S5RS55 UR
URS5S5 g)Nr�rNr})r\r�r�rnrWr�r;r�r[s  r�	test_peek�BufferedRWPairTest.test_peek�sY���w�w�t�|�|�I�.����0@�A������	�	�!��/�/��7�8�������1��v�.r c��URUR5UR55nURUR55 grQ)r\r�rnrar[s  r�
test_readable� BufferedRWPairTest.test_readable��2���w�w�t�~�~�'����)9�:������
�
��(r c��URUR5UR55nURUR55 grQ)r\r�rnrXr[s  r�test_writeable�!BufferedRWPairTest.test_writeable�r�r c��URUR5UR55nURUR55 grQ)r\r�rordr[s  r�
test_seekable� BufferedRWPairTest.test_seekable�s6���w�w�t�~�~�'����)9�:���������)r c���URUR5UR55nURUR5 UR	5 URUR5 grQ)r\r�ror�r�rnr[s  r�test_close_and_closed�(BufferedRWPairTest.test_close_and_closed�sK���w�w�t�~�~�'����)9�:��������%��
�
��������$r c���SnUR5nXlUR5nURX#5nUR[5nUR5 SSS5 URS[
WR55 URUR5 URUR5 URUR5 SUlg!,(df   N�=f)Nc��[ grQ��reader_non_existingr#r r�reader_close�IBufferedRWPairTest.test_reader_close_error_on_close.<locals>.reader_close����r r�c��grQr#r#r rrk�EBufferedRWPairTest.test_reader_close_error_on_close.<locals>.<lambda>�r r )r�r�r\r=r�r�r�r�rnr�ro)r?r�rr*r\r�s      r� test_reader_close_error_on_close�3BufferedRWPairTest.test_reader_close_error_on_close�s���	 ����!��#�����!���w�w�v�&��
�
�
�y�
)�S��J�J�L�*��
�
�+�S����-?�@�������$�������'�����
�
�&�$���*�
)�s�C(�(
C6c�
�SnUR5nUR5nXlURX#5nUR[5nUR5 SSS5 URS[
WR55 URUR5 URUR5 URUR5 SUlSn[R"5 [R"5 Sn[R"5 SSS5 [R"5 SSS5 g!,(df   N�=f!,(df   N==f!,(df   g=f)Nc��[ grQ��writer_non_existingr#r r�writer_close�IBufferedRWPairTest.test_writer_close_error_on_close.<locals>.writer_close	r�r r�c��grQr#r#r rrk�EBufferedRWPairTest.test_writer_close_error_on_close.<locals>.<lambda>	r r )r�r�r\r=r�r�r�r�ror�rnrr�r)r?r�rr*r\r�s      r� test_writer_close_error_on_close�3BufferedRWPairTest.test_writer_close_error_on_close	s��	 ����!�����!��#���w�w�v�&��
�
�
�y�
)�S��J�J�L�*��
�
�+�S����-?�@�������%�����
�
�&�������'�$������
/�
/�
1��3�3�5����"�"�$�6�
��� �2�
1�*�
)��6�5��2�
1�s0�E�>E4�E#�,E4�
E �#
E1	�-E4�4
Fc���SnSnUR5nXlUR5nX$lURX45nUR[5nUR5 SSS5 URS[
WR55 URURR[5 URS[
URR55 URUR5 URUR5 URUR5 SUlSUlg!,(df   N�=f)Nc��[ grQr�r#r rr��PBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.reader_close	r�r c��[ grQr�r#r rr��PBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.writer_close	r�r r�r�c��grQr#r#r rrk�LBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.<lambda>/	r r c��grQr#r#r rrkr�0	r r )r�r�r\r=r�r�r�r�r�r�ror�)r?r�r�rr*r\r�s       r�'test_reader_writer_close_error_on_close�:BufferedRWPairTest.test_reader_writer_close_error_on_close	s���	 �	 ����!��#�����!��#���w�w�v�&��
�
�
�y�
)�S��J�J�L�*��
�
�+�S����-?�@����c�m�m�7�7��C��
�
�+�S����1J�1J�-K�L�������%�������'�������'�$���#���*�
)�s�E�
E c�
�"SS[5nURU"S5U"S55nURUR55 URU"S5U"S55nUR	UR55 URU"S5U"S55nUR	UR55 URU"S5U"S55nUR	UR55 g)Nc� �\rSrSrSrSrSrg)�8BufferedRWPairTest.test_isatty.<locals>.SelectableIsAttyi3	c�:�[RU5 XlgrQ)r�rN�_isatty)r?�isattys  rrN�ABufferedRWPairTest.test_isatty.<locals>.SelectableIsAtty.__init__4	s���"�"�4�(�%�r c��UR$rQ�r�r>s rr��?BufferedRWPairTest.test_isatty.<locals>.SelectableIsAtty.isatty8	s���|�|�#r r�N)r%r&r'r(rNr�r)r#r r�SelectableIsAttyr�3	s��
&�
$r r�FT)r�r\ror�rn)r?r�r\s   r�test_isatty�BufferedRWPairTest.test_isatty2	s���	$�y�	$��w�w�'��.�0@��0G�H���������'��w�w�'��-�/?��/F�G��������
�&��w�w�'��.�0@��0F�G��������
�&��w�w�'��-�/?��/E�F��������
�&r c��URUR5UR55n[R"U5nSnSngrQ)r\r�rUrV)r?�brwrVs   r�test_weakref_clearing�(BufferedRWPairTest.test_weakref_clearingG	s8���g�g�d�n�n�&����(8�9���k�k�#������r r#N)r%r&r'r(r;rAr�rcrorwrErjrKrRr�r�r�r�r�r�r�r�r�r�r�r)r#r rrYrY}so��&�-�B�?�M�N�2�D�/�8�
;�/�)�)�*�%�$�"!�4$�.'�*r rYc�,�\rSrSr\R
rSrg)�CBufferedRWPairTestiM	r#N)r%r&r'r(r�r�r\r)r#r rr�r�M	s
��	�	�	�Br r�c�,�\rSrSr\R
rSrg)�PyBufferedRWPairTestiP	r#N)r%r&r'r(r�r�r\r)r#r rr�r�P	r�r r�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrg)�BufferedRandomTestiT	�rb+zwb+c�X�[RU5 [RU5 grQ)r6r;r�r>s rr;�#BufferedRandomTest.test_constructorX	s���+�+�D�1��+�+�D�1r c�X�[RU5 [RU5 grQ)r6rAr�r>s rrA�%BufferedRandomTest.test_uninitialized\	����-�-�d�3��-�-�d�3r c��URS5nURUS5nURSURS55 UR	S5 UR	S5 URUR5 URSUR55 URSURS	5 g)
N)�asdf�ghjkrn�asr�sdddseeer�sdddeeer)r�r\r;r�rTrorJ�r?rQr�s   r�test_read_and_write�&BufferedRandomTest.test_read_and_write`	s����n�n�/�0��
�W�W�S�!�_����������
�+�
�����
���������)�)�*�����"�'�'�)�,�����C�$4�$4�Q�$7�8r c��URS5nURU5nURSURS55 URSUR	55 URSS5 URSURS55 UR
S5 URSS5 URSUR55 URS	UR	55 URS
S5 URSUR	55 URSS5 URS
UR	55 URSURS55 UR5 URSUR55 UR[UR
S5 g)Ns	asdfghjklr�r�rr�r�s123fs	asdf123flr6���r�r=r
sfl�r:)r�r\r;r�rmrirTr�r�r=r>r�s   r�test_seek_and_tell�%BufferedRandomTest.test_seek_and_tellk	sH���l�l�<�(��
�W�W�S�\����������
�+�����B�G�G�I�&�
����1�
�����"�'�'�!�*�-�
�����
����1�
�����r�w�w�y�1�����B�G�G�I�&�
����A������B�G�G�I�&�
����1�
�����B�G�G�I�&����������,�
���
�����s�|�|�~�6����)�R�W�W�c�2r c�Z�URS5nURU5nURSU"US55 URS5 URSU"US55 URSUR	55 UR5 URSUR	55 URSU"U55 UR
SS5 URS	5 UR5 UR
SS5 URS	U"US
55 g)Nrmr�r�r�r�r5r�rsXYZrN)r�r\r;rTrmr�ri)r?�	read_funcrQr�s    r�check_flush_and_read�'BufferedRandomTest.check_flush_and_read�	s����l�l�<�(������������	�%�� 3�4�
���E������	�%�� 3�4�����E�J�J�L�)�
���
�����E�J�J�L�)������5�!1�2�����A���	�	�&��
���
�
�
�
�1�a�������5�!�!4�5r c�(�URS5 g)Nc� �UR"U6$rQ)r�)r�r�s  rrk�8BufferedRandomTest.test_flush_and_read.<locals>.<lambda>�	s
��u�z�z�4�7Hr �r�r>s r�test_flush_and_read�&BufferedRandomTest.test_flush_and_read�	s���!�!�"H�Ir c�0�SSjnURU5 g)Nc�f�[US:�aUOS5nURU5n[USU5$)Nr�')r<rtr�r�rsr+s   r�	_readinto�=BufferedRandomTest.test_flush_and_readinto.<locals>._readinto�	s2���q�A�v�!�4�0�A����q�!�A���2�A��<�r �rr�)r?r�s  r�test_flush_and_readinto�*BufferedRandomTest.test_flush_and_readinto�	s��	 �	
�!�!�)�,r c�0�SSjnURU5 g)Nc�t�URU5nUS:waUSUnUR[U5S5 U$�Nrr=)rWrirr�s   r�_peek�5BufferedRandomTest.test_flush_and_peek.<locals>._peek�	s:���
�
�1�
�A��B�w��b�q�E���J�J�s�1�v�q�!��Hr r�r��r?r�s  r�test_flush_and_peek�&BufferedRandomTest.test_flush_and_peek�	s��	�	
�!�!�%�(r c�p�URS5nURU5nURS5 UR5 URS5 UR5 UR	SS5 URSUR
55 URSUR55 g)Nrm�123s45rs	12345fghi)r�r\rTr�rir;r�r�rs   r�test_flush_and_write�'BufferedRandomTest.test_flush_and_write�	s����l�l�<�(��������
���F��
���
�
���E��
���
�
�
�
�1�a������s�|�|�~�6�����u�z�z�|�4r c�X�[RU5 [RU5 grQ)r6r�r�r>s rr��BufferedRandomTest.test_threads�	s���'�'��-��'�'��-r c�T�SnURU5 SnURU5 g)Nc�&�URS5 gr�)rWr�s rr��6BufferedRandomTest.test_writes_and_peek.<locals>._peek�	s
���J�J�q�Mr c��UR5nURSS5 URS5 URUS5 g)Nrr=r)rmrirWr�s  rr�r�	s4���*�*�,�C��J�J�r�1���J�J�q�M��J�J�s�A�r r�r�s  r�test_writes_and_peek�'BufferedRandomTest.test_writes_and_peek�	s*��	����%� �	�
	
���%� r c�,�SnURU5 g)Nc�J�URSS5 URS5 gr�)rir�r�s r�_read�7BufferedRandomTest.test_writes_and_reads.<locals>._read�	s���J�J�r�1���J�J�q�Mr r��r?rs  r�test_writes_and_reads�(BufferedRandomTest.test_writes_and_reads�	s��	�	
���%� r c�,�SnURU5 g)Nc�J�URSS5 URS5 gr�)rir�r�s r�_read1�9BufferedRandomTest.test_writes_and_read1s.<locals>._read1�	s���J�J�r�1���K�K��Nr r�)r?r
s  r�test_writes_and_read1s�)BufferedRandomTest.test_writes_and_read1s�	s��	�	
���&�!r c�,�SnURU5 g)Nc�\�URSS5 UR[S55 gr�)rirtr<r�s rr�;BufferedRandomTest.test_writes_and_readintos.<locals>._read�	s ���J�J�r�1���N�N�9�Q�<�(r r�rs  r�test_writes_and_readintos�,BufferedRandomTest.test_writes_and_readintos�	s��	)�	
���%� r c��SGHnURS5nURUS5nURURS5S5 URUR	5S5 URSU-5 URUR	5US-5 UR
5 URUR	5US-5 UR5nURUSSU--SSU-
--5 GM g)N)r=r�r�r�r=�A�Br6)r�r\r;r�rmrTr�r�)r?�overwrite_sizerQr�rs     r�test_write_after_readahead�-BufferedRandomTest.test_write_after_readahead�	s���%�N��,�,�y�)�C��G�G�C��O�E����U�Z�Z��]�D�1����U�Z�Z�\�1�-��K�K��~�-�.����U�Z�Z�\�>�A�+=�>�
�K�K�M����U�Z�Z�\�>�A�+=�>�����A����Q��t�n�,�,�t�q�>�7I�/J�J�
L�%r c	�f�SnSn[S[U55H�n[U[U55HwnURU5nURUS5nU"XcU5 UR	5 [U5nSXt'SXs'UR
UR5USX44-5 My M� g)Nc��X!:�deURU5 URX!-
5 URS5 URU5 URS5 g)N��)rir�rT)r��pos1�pos2s   r�mutate�:BufferedRandomTest.test_write_rewind_write.<locals>.mutate�	sL���<��<��J�J�t���J�J�t�{�#��K�K�� �
�J�J�t���K�K�� r s�����rror�r=zfailed result for i=%d, j=%d)r<rr�r\r�r<r;r�)r?r"r+r8�jrQr��expecteds        r�test_write_rewind_write�*BufferedRandomTest.test_write_rewind_write�	s���		!�
$���q�#�a�&�!�A��1�c�!�f�%���l�l�1�o������S�)���u��#����
�$�Q�<��������� � ������!?�1�&�!H�J�&�"r c�N�URS5nURUS5nURURS5S5 URUR	5S5 URURS5S5 URUR	5S5 g)Nr�ror�sAAsBBr�)r�r\r;r�rwrTrs   r�!test_truncate_after_read_or_write�4BufferedRandomTest.test_truncate_after_read_or_write
s���l�l�9�%������S�!��������A���.�������)�1�-�������U�+�Q�/�������)�1�-r c�X�[RU5 [RU5 grQ)r6r�r�r>s rr��%BufferedRandomTest.test_misbehaved_io
r�r c�p�URS5nURUS5nURS5 URUR	S5S5 URS5 URURS5S5 URS5 [
S5nURU5 URUS	5 URS
5 URURS5S5 UR5 URUR5S5 SSS5 SSS5 URS
5nURUS5nURUR	S5S5 URS5 URUR	S5S5 UR5 URUR5S5 SSS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N9=f!,(df   g=f)Nsabcdefghror�r=rI�2r~r��f�4r7s1b2d3f4hr}rHr�sa2c)r�r\rTr;r�r�r<rtrWr�r�)r?rQr5rqs    r�test_interleaved_read_write�.BufferedRandomTest.test_interleaved_read_write
s���
�\�\�+�
&�#�����c�"�a�����
�� � ������D�1�����
�� � ������T�2�����
���l���
�
�3��� � ��d�+�����
�� � ������D�1����	�� � ������=�#�'��\�\�&�
!�S�����c�"�a�� � ������D�1�����
�� � ������D�1����	�� � ������8�#�"�
!�#�"��'�
&�� #�"��"�
!�sH�H�DG4�+H�H'�BH�#H'�4
H	�>H�
H�
H$	� H'�'
H5c�b�URS5nURUS5nURS5 URUR	S5S5 UR5 URUR
5S5 SSS5 SSS5 URS5nURUS5nURS5 URUR	5S5 UR5 URUR
5S5 SSS5 SSS5 URS5nURUS5nURS5 URUR	S5SSS5 UR5 URUR
5S5 SSS5 SSS5 g!,(df   GNH=f!,(df   GNR=f!,(df   N�=f!,(df   N�=f!,(df   N]=f!,(df   g=f)	Nr�rNr�r=rIs1bcdefsbcdro)r�r\rTr;r�r�r��r?rQr5s   r�test_read1_after_write�)BufferedRandomTest.test_read1_after_write)
s~��
�\�\�)�
$������a��A�����
�� � ������T�2����	�� � ������;�	!�%��\�\�)�
$������a��A�����
�� � �����F�3����	�� � ������;�	!�%��\�\�)�
$������a��A�����
�� � ������b�q�!1�6�:����	�� � ������;�
!�%�
$�!���%�
$��!���%�
$��!���%�
$�sm�G�A#G	�G�)G>�<A"G-�G>�?H �A&H�8H �	
G	�G�
G*�-
G;	�7G>�>
H�
H	�H � 
H.c�6�URS5nURU5nURS5 URUR	5S5 URS5 URUR	5S5 URS5 URUR	5S5 UR5 URUR
5S5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)	Ns
ab
cdef
g
r�sb
r.r�r��
s
1b
2def
3
)r�r\rTr;r]r�r�r4s   r�test_interleaved_readline_write�2BufferedRandomTest.test_interleaved_readline_write?
s���
�\�\�*�
+�s�����������
�� � �����v�6�����
�� � �����x�8�����
�� � �����u�5����	�� � �����1A�B��,�
+����,�
+�s#�D
�CC9�(D
�9
D	�D
�

DNr#)r%r&r'r(r�r+r;rAr�r�r�r�r�r�r�r�rr	rrrr&r)r�r1r5r9r�r�r)r#r rr�r�T	s����I��J�2�4�	9�3�.6�$J�-�	)�
5�.�	!�!�"�!�L�(J�4.�4�9�2<�,
C��O�"&�r r�c�8�\rSrSr\R
rSrSrSr	g)�CBufferedRandomTestiS
c�X�[RU5 [RU5 grQ)r�rYrOr>s rrY�+CBufferedRandomTest.test_garbage_collectionV
s���3�3�D�9��3�3�D�9r c��UR[S5 URUR5SSS5 SSS5 g!,(df   g=f)Nr�r8r�r>s rr��#CBufferedRandomTest.test_args_errorZ
r�r�r#N)
r%r&r'r(r�r�r\rYr�r)r#r rr<r<S
s��	�	�	�B�:�6r r<c�,�\rSrSr\R
rSrg)�PyBufferedRandomTesti`
r#N)r%r&r'r(r�r�r\r)r#r rrBrB`
r�r rBc�N�\rSrSrSrS
SjrSrSrSrSr	SS	jr
S
rSrSr
g)�StatefulIncrementalDecoderio
ad
For testing seek/tell behavior with a stateful, buffering decoder.

Input is a sequence of words.  Words may be fixed-length (length set
by input) or variable-length (period-terminated).  In variable-length
mode, extra periods are ignored.  Possible words are:
  - 'i' followed by a number sets the input length, I (maximum 99).
    When I is set to 0, words are space-terminated.
  - 'o' followed by a number sets the output length, O (maximum 99).
  - Any other word is converted into a word followed by a period on
    the output.  The output word consists of the input word truncated
    or padded out with hyphens to make its length equal to O.  If O
    is 0, the word is output verbatim without truncating or padding.
I and O are initially set to 1.  When I changes, any buffered input is
re-scanned according to the new I.  EOF also terminates the last word.
c�b�[RRX5 UR5 grQ)�codecs�IncrementalDecoderrN�reset)r?r�s  rrN�#StatefulIncrementalDecoder.__init__�
s���!�!�*�*�4�8��
�
�r c��S[U5-$)Nz<SID %x>)�idr>s r�__repr__�#StatefulIncrementalDecoder.__repr__�
s���B�t�H�$�$r c�>�SUlSUl[5Ulgr�)r8�or<r?r>s rrH� StatefulIncrementalDecoder.reset�
s���������k��r c�v�URS-URS-p![UR5US-U-4$)Nr=ro)r8rOrr?)r?r8rOs   r�getstate�#StatefulIncrementalDecoder.getstate�
s5���v�v��z�4�6�6�A�:�1��T�[�[�!�1�S�5�1�9�,�,r c�r�Uup#[U5Ul[US5upEUS-US-sUlUlg)Nror=)r<r?�divmodr8rO)r?rr?r�r8rOs      r�setstate�#StatefulIncrementalDecoder.setstate�
s9���
����'����b�#�����Q���A������r Fc���SnUH�nURS:XaSU[S5:Xa'UR(aX0R5-
nMGMIURR	U5 MfURR	U5 [UR5UR:XdM�X0R5-
nM� U(a#UR(aX0R5-
nU$)Nrr�.)r8�ordr?�process_wordrRr)r?�input�final�outputr+s     r�decode�!StatefulIncrementalDecoder.decode�
s������A��v�v��{���C��=��{�{��"3�"3�"5�5��#��K�K�&�&�q�)����"�"�1�%��t�{�{�#�t�v�v�-��/�/�1�1�F���T�[�[��'�'�)�)�F��
r c�2�SnURS[S5:Xa1[S[URSS=(d S55UlO�URS[S5:Xa1[S[URSS=(d S55UlOkURR
S5n[U5UR
:aUSUR
--
nUR
(aUSUR
nUS	-
n[5UlU$)
Nrrr8�cr=rOr��-rY)	r?rZr�intr8rOr_rr<)r?r^s  rr[�'StatefulIncrementalDecoder.process_word�
s������;�;�q�>�S��X�%���S����Q�R��!5�A�6�7�D�F�
�[�[��^�s�3�x�
'���S����Q�R��!5�A�6�7�D�F��[�[�'�'��0�F��6�{�T�V�V�#��#�d�f�f�*�$���v�v���������c�M�F��k����
r )r?r8rON)�strictr;)r%r&r'r(ryrNrLrHrRrVr_r[�codecEnabledr)r#r rrDrDo
s1���"�%�"�
-�&��"� �Lr rDc
��[R(aEUS:Xa>[R"S5n[R"SUR
SSSS[S9$gg)N�test_decoderr/)r��encoder_�incrementalencoder�streamreader�streamwriter�incrementaldecoder)rDrgrF�lookup�	CodecInforj)r��latin1s  r�lookupTestDecoderrr�
sR��!�.�.�4�>�3I����y�)�������
�
�d�#��D�9�	;�	;�4J�.r c�&�\rSrSrSr/SQrSrSrg)�StatefulIncrementalDecoderTesti�
z:
Make sure the StatefulIncrementalDecoder actually works.
))rvFza.b.c.d.)�oiabcdT�abcd.)soi...abcd...Trv)si.o6.x.xyz.toolongtofit.Fzx-----.xyz---.toolon.)s
i.i2.o6xyzTzxy----.z-----.)si.o3.i6.abcdefghijklmnopTzabc.ghi.mno.)s;i.o29.a.b.cde.o15.abcdefghijabcdefghij.i3.a.b.c.d.ei00k.l.mTz�a----------------------------.b----------------------------.cde--------------------------.abcdefghijabcde.a.b------------..c.------------.d.e------------.k--------------.l--------------.m--------------.c� �URH1upn[5nURURX5U5 M3 [5nURURS5S5 URURSS5S5 g)Nrurr r=rv)�
test_casesrDr;r_)r?r\�eofr^ris     rri�+StatefulIncrementalDecoderTest.test_decoder�
st��"&�/�/��E��*�,�A����Q�X�X�e�1�6�:�#2�

'�(��������)�,�b�1�������#�q�)�7�3r r#N)r%r&r'r(ryrxrir)r#r rrtrt�
s����J�6	4r rtc��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Sr\R "\R$R&S
5S5rSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%S r&S!r'S"r(S#r)S$r*S%r+S&r,S'r-S(r.S)r/S*r0S+r1S,r2S-r3S.r4S/r5S0r6S1r7S2r8\9Rt\;Rx"5S355r=S4r>S5r?S6r@S7rAS8rBS9rCS:rDS;rES<rFS=rGS>rHS?rIS@rJSArKSBrLSCrMSDrNSErOSFrPSGrQSHrRSIrSSJrTSKrUSLrVSMrWSNrXSOrYSPrZSQr[gR)S�TextIOWrapperTesti�
c��SUlSRS5Ul[R"[R
5 [R"[5 UR[R[5 g)NsAAA
BBB
CCC
DDD
EEE
sAAA
BBB
CCC
DDD
EEE
r�)�testdatar_�
normalizedr
r,r-rF�registerrrrr�
unregisterr>s rr.�TextIOWrapperTest.setUp�
sQ��:��
�6�=�=�g�F�������)�)�*����)�*�����)�)�+<�=r c�L�[R"[R5 grQr+r>s rr2�TextIOWrapperTest.tearDown�
r0r c��URS5nURUS5nURUSS9nURUSSS9 UR	UR
S5 UR	URS5 URUSS	S
9 UR	UR
S5 UR	URS	5 UR	SUR55 UR(a[O[nURU5 URUSS9 SSS5 UR[5 URUS
S9 SSS5 UR[5 URUSS9 SSS5 URU5 URUSSS9 SSS5 [R(d0[R R"(dUR(a/UR[5 URUSS
S9 SSS5 [R(d0[R R"(dUR(a/UR[5 URUSSS9 SSS5 UR[5 URUSSS9 SSS5 UR[5 URUSS
S9 SSS5 UR[5 URUSSS9 SSS5 UR[5 URUSSS9 SSS5 g!,(df   GN;=f!,(df   GN=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN&=f!,(df   GN	=f!,(df   N�=f!,(df   N�=f!,(df   g=f)N�é

r�rWr0r/�
r�FT)r1�line_buffering�é
r]��zutf-8�r1r�zreplace�
r�)r�ryr�rNr;r1r�r]�is_Cr>r r=�UnicodeEncodeErrorr�Py_DEBUGr�r��dev_mode)r?r.r+rK�invalid_types     rr;�"TextIOWrapperTest.test_constructor�
s����L�L��)������4�(�����q�7��3��	�
�
�1�y�&�
�9�������Y�/�����)�)�5�1�	�
�
�1�w�t�
�<�������W�-�����)�)�4�0�����1�:�:�<�0�$(�I�I�y�:��
�
�
�|�
,�
�J�J�q�2�J�&�-�
�
�
�1�
2�
�J�J�q�8�J�,�3�
�
�
�z�
*�
�J�J�q�9�J�-�+�
�
�
�|�
,�
�J�J�q�7�2�J�6�-����s�y�y�1�1�T�Y�Y��"�"�#5�6��
�
�1�w�x�
�@�7����s�y�y�1�1�T�Y�Y��"�"�:�.��
�
�1�w�{�
�C�/�
�
�
�y�
)�
�J�J�q�7�B�J�7�*�
�
�
�z�
*�
�J�J�q�7�H�J�=�+�
�
�
�z�
*�
�J�J�q�7�F�J�;�+�
�
�
�z�
*�
�J�J�q�7�G�J�<�+�
*�)-�
,��
2�
2��
*�
*��
,�
,��7�6��/�.��
)�
)��
*�
*��
*�
*��
*�
*�sx�M�M+�0M=�N�N!�N3�1O� O�O(�>O9�
M(�+
M:�=
N�
N�!
N0�3
O�
O�
O%�(
O6�9
Pc��URRUR5nAURRUR5nUR[[U5 UR[[4SURS5 URUR5SS9 URURS5S5 g)Nr?rrWr0r)r�r@r=r�r�r�r r�r�rNr�r;�r?rKs  rrA�$TextIOWrapperTest.test_uninitialized!s������&�&�t�'9�'9�:��
����&�&�t�'9�'9�:�����)�T�1�-����
�N�;�?� �v�v�q�	*�	
�
�
�4�>�>�#�g�
�6���������B�'r c���UR5nURU5nUR[S5 UR	USS9 SSS5 g!,(df   g=f)Nzis not a text encoding�hexr0)r�r~r��LookupErrorr�)r?r.r+s   r�*test_non_text_encoding_codecs_are_rejected�<TextIOWrapperTest.test_non_text_encoding_codecs_are_rejected,sP��
�L�L�N������"��
�
#�
#�K�1I�
J����q�5��1�K�
J�
J�s�A�
A c��UR5nURU5nURUSS9nURUR	5U5 URUSS9nURS5 UR
UR55 UR	5 URUR5S5 UR[UR5 [U5 URURS5 URURS5 UR
UR5 UR
UR5 g)Nr�r0�howdyshowdyrf)r�r~r�r�r�rTror�r;r=r r�r1r�r��
write_through�r?r.r+rKs    rr��TextIOWrapperTest.test_detach5s���L�L�N������"�����q�7��3���
�
�a�h�h�j�!�$����q�7��3��	������������&�	���
��������x�0����*�a�h�h�/�	
�Q��������W�-�������8�,�����)�)�*�������)r c��URSRS55nURU5nURUSS9nURRnUR[
U5SU-5 SUlUR[
U5SU-5 SUlUR[
U5SU-5 S	UlUR[
U5S
U-5 URR5 [
U5 g)N�hellorWr0z'<(%s\.)?TextIOWrapper encoding='utf-8'>r�z4<(%s\.)?TextIOWrapper name='dummy' encoding='utf-8'>r.z=<(%s\.)?TextIOWrapper name='dummy' mode='r' encoding='utf-8'>r�z><(%s\.)?TextIOWrapper name=b'dummy' mode='r' encoding='utf-8'>)r�rjryr�r&r�r�r��moder?r�)r?rQr+rK�modnames     rr��TextIOWrapperTest.test_reprIs����l�l�7�>�>�'�2�3������$�����q�7��3���$�$�/�/������a��C�g�M�	O��������a��P�SZ�Z�	\��������a��Y�\c�c�	e��������a��Z�]d�d�	f�	
�������Q�r c�|�UR5nURUSS9n[R"USU5 [R"S5 UR[5 [U5 SSS5 SSS5 SSS5 g!,(df   N=f!,(df   N(=f!,(df   g=f)NrWr0r�r�)r�r�rr�r�r=r�r��r?rQrKs   rr��%TextIOWrapperTest.test_recursive_repr]s���l�l�n�����s�W��5��
�
�
�s�F�A�
.��0J�0J�2�0N��"�"�<�0��Q��1�1O�
.�
.�0�0��1O�0N��
.�
.�s;�B-�B�&B�2B�:B-�
B�B�
B*	�&B-�-
B;c��"SSUR5nU"UR55nURUR[	U55 g)Nc��\rSrSrSrg)�:TextIOWrapperTest.test_subclass_repr.<locals>.TestSubclassifr#Nr$r#r r�TestSubclassr�f���r r�)r�r�r�r%r�)r?r�r5s   r�test_subclass_repr�$TextIOWrapperTest.test_subclass_repres>��	�4�-�-�	�
�����)���
�
�l�+�+�T�!�W�5r c��UR5nURUS5nURUSSSS9nURS5 UR	UR5S5 URS5 UR	UR5S	5 URS
5 UR	UR5S5 g)Nr�rW�
T�r1r�r��Xr zY
ZsXY
ZzA
BsXY
ZA
B)r�r~r�rTr;r�r�s    r�test_line_buffering�%TextIOWrapperTest.test_line_bufferingls����L�L�N������4�(�����q�7�D�QU��V��	������������s�+�	������������x�0�	������������|�4r c��UR5nURUS5nURUSSSS9nURS5 UR	UR5S5 UR
SS	9 UR	UR5S
5 URS5 UR	UR5S5 URS
5 UR	UR5S5 UR
SS	9 UR	UR5S5 URS5 UR	UR5S5 UR
5 UR
SS	9 UR	URS5 UR
SS	9 UR
5 UR
SS	9 UR	URS5 g)Nr�rWr�Fr�zAB
Cr T�r�sAB
CzDEF
Gs	AB
CDEF
G�Hs
AB
CDEF
GH�IJ)r�r~r�rTr;r��reconfigurer�r�s    r�test_reconfigure_line_buffering�1TextIOWrapperTest.test_reconfigure_line_bufferingwsq���L�L�N������4�(�����q�7�D�QV��W��	������������s�+�	�
�
�T�
�*��������x�0�	������������~�6�	������������~�6�	�
�
�U�
�+���������7�	����
���������7�	
�
�
��	�
�
�T�
�*�����)�)�5�1�	�
�
�T�
�*�	�
�
��	�
�
�T�
�*�����)�)�4�0r zutf-8 mode is enabledc���[[R5nSH*nU[R;dM[RU	M, [R"5nUR5n[R"5 [R"S[5 URU5nSSS5 URWRU5 [RR5 [RRU5 g!,(df   Nh=f![RR5 [RRU5 f=f)N)�LC_ALL�LANG�LC_CTYPEr�)rhrj�environ�locale�getencodingr�r�r�r��EncodingWarningr�r;r1�clear�update)r?�old_environ�key�current_locale_encodingr+rKs      r�test_default_encoding�'TextIOWrapperTest.test_default_encoding�s����2�:�:�&��	+�6���"�*�*�$��
�
�3��6�'-�&8�&8�&:�#�����A��(�(�*��%�%�h��@��&�&�q�)��+�
���Q�Z�Z�)@�A��J�J�����J�J���k�*�
+�*��

�J�J�����J�J���k�*�s)�D%�AD%�-D�2$D%�
D"�D%�%?E$c��UR5nURUSS9nURURS5 [R
"5 [R"S[5 URU5nSSS5 URUR5 [R"UR5 g!,(df   NJ=f)NrWr0r�)r�r�r;r1r�r�r�r��assertIsNotNonerFro�r?r+rKs   r�
test_encoding�TextIOWrapperTest.test_encoding�s����L�L�N�����q�7��3��������W�-�
�
$�
$�
&��!�!�(�O�<��"�"�1�%�A�'�	
���Q�Z�Z�(��
�
�a�j�j�!�	'�
&�s�-C�
Cc��URS5nURUSS9nUR[UR5 URS5nURUSSS9nUR[UR5 URS5nURUSSS9nURUR	5S5 URS5nURUSSS9nURUR	5S	5 g)
Nsabc
�
r�r0rfr�r�zabc

�replaceuabc
�
)r�r�r=�UnicodeErrorr�r;r�s   r�test_encoding_errors_reading�.TextIOWrapperTest.test_encoding_errors_reading�s����L�L��(�����q�7��3�����,����/��L�L��(�����q�7�8��D�����,����/��L�L��(�����q�7�8��D���������9�-��L�L��(�����q�7�9��E���������?�3r c��UR5nURUSS9nUR[URS5 UR5nURUSSS9nUR[URS5 UR5nURUSSSS9nUR	S	5 UR5 UR
UR5S
5 UR5nURUSSSS9nUR	S	5 UR5 UR
UR5S5 g)
Nr�r0�ÿrfr�r�r�)r1r�r�u	abcÿdef
sabcdef
r�sabc?def
)r�r�r=r�rTr�r;r�r�s   r�test_encoding_errors_writing�.TextIOWrapperTest.test_encoding_errors_writing�s���L�L�N�����q�7��3�����,�����8��L�L�N�����q�7�8��D�����,�����8��L�L�N�����q�7�8�%)�
�
+��	�����	���	��������{�3��L�L�N�����q�7�9�%)�
�
+��	�����	���	��������|�4r c
���/SQnS/SQ/SU/S/SQ/SSS//S	/S
Q//nSnUGH;n[SRU5RU55nSGHn[S
S5H�nUH�up�UR	URU5U5n
UR
X�US9nU(aY/nURS5n
U
S:XaOIUR[U
5S5 URX�R5-5 MV[U5n[X�5Hup�URX�5 M UR[U5[U	55 M� M� GM
 GM> g)N)�unix
�	windows
zos9
�last
�nonl)r�zwindows
zos9
r�r�rr�)r�r�z	os9
last
r�r�zunix
windows
z
os9
last
nonl�
)z
unix
windows
z
os9
z	last
nonl)rWr/�utf-16�	utf-16-le�	utf-16-be�utf-32�	utf-32-le�	utf-32-be)FTr=rG�r�r1r�)rr
rjr<ryr�r�r�r;rrRr]rH�zip)r?�input_linesr��	encodingsr1r�do_readsr�r��	exp_linesr��textio�	got_lines�c2�got_line�exp_lines                r�
test_newlines�TextIOWrapperTest.test_newlines�sg��L���H�J��+���F�H��+�->�@�B��B�D�
��
�	�"�H������-�4�4�X�>�?�D�)��$�Q��|�G�.3�*�� $� 3� 3�D�L�L��4F�� P��!%�!3�!3�E�;C�"4�"E��#�(*�I�"&�%+�[�[��^��#%��8�$)� $� 0� 0��R��!� <� )� 0� 0��o�o�6G�1G� H�#'�)-�V��I�25�i�2K�.�H� �,�,�X�@�3L��(�(��Y���Y��H�#/4� ,�*�"r c��SnURSS5RSS5nSURS5RSS94SURS5RSS94S	/S
Q4S/SQ4S
/SQ44H�up4URU5nUR	USUS9nURUR
5U5 URS5 URUR5SRU55 M� g)NsAAA
BBB
CCC
DDD
EEE
FFF
GGGs
r8�
r�T)�keependsrr�)zAAA
zBBB
z
CCC
DDD
EEE
�FFF
�GGGr�)zAAA
BBB
CCC
DDD
EEE
r�r�r�)z
AAA
BBB
CCC
zDDD
zEEE
z
FFF
z
GGGr�r)
r�r_�
splitlinesr�r�r;r�rir�r
)r?r~rr�r%rq�txts       r�test_newlines_input�%TextIOWrapperTest.test_newlines_inputs���?���%�%�g�u�5�=�=�e�U�K�
�
�:�$�$�W�-�8�8�$�8�G�H�
�����)�4�4�d�4�C�D�
�P�Q�
�J�K�
�Q�R�"��G��,�,�x�(�C��$�$�S�7�G�$�L�C����S�]�]�_�h�7��H�H�Q�K����S�X�X�Z�����):�;�"r c���SSSSS.nSU[R4/[UR55-nUH�up4UR	5nURUSUS9nUR
S5 UR
S5 UR
S	5 UR5 URURS
5 URUR5U5 M� g)NsAAA
BBB
CCC
X
Y
ZsAAA
BBB
CCC
X
Y

ZsAAA
BBB
CCC
X
Y

Z)rr�r�r�r�r�zAAA
BzBB
CCC
zX
Y
ZF)rj�linesep�sortedrgr�r�rTr�r;r�r�)r?�testdictr�r�r%rqr�s       r�test_newlines_output�&TextIOWrapperTest.test_newlines_outputs���+�-�-�7�	�������,�-�.�����8H�1I�I��!&��G��,�,�.�C��$�$�S�7�G�$�L�C��I�I�h���I�I�k�"��I�I�k�"��I�I�K����S�Z�Z��/����S�\�\�^�X�6�"'r c��^^�/mURm"UU4SjST5nU"5nURUSS9nURS5 A[R"5 URS/T5 g)Nc�$>�\rSrSrUU4SjrSrg)�4TextIOWrapperTest.test_destructor.<locals>.MyBytesIOi+c�f>�TRUR55 TRU5 grQ)rRr�r�)r?r#r�s ��rr��:TextIOWrapperTest.test_destructor.<locals>.MyBytesIO.close,s!����������)��
�
�4� r r#NrH)r#r�s��r�	MyBytesIOr+s
���
!�
!r rr�r0r%r})r�r�rTrrr;)r?rr+rKr#r�s    @@rr�!TextIOWrapperTest.test_destructor(sl������|�|��	!�	!��	!�
�K�����q�7��3��	�����
��������&��1�%r c�^�/m"U4SjSUR5nUR5nU"USS9nA[R"5 UR	T/SQ5 g)Nc�H>^�\rSrSrUU4SjrUU4SjrUU4SjrSrU=r$)�<TextIOWrapperTest.test_override_destructor.<locals>.MyTextIOi8c�l>�TRS5 [TU]nU"5 g![a gf=fr�r�r�s  ��rr��DTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.__del__9r�r�c�D>�TRS5 [TU]	5 gr�rrs ��rr��BTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.closeArr c�D>�TRS5 [TU]	5 grrrs ��rr��BTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.flushDrr r#rr	s@�r�MyTextIOr
8rr rr�r0r
)r�r�rrr;)r?rr+rKr�s    @rr��*TextIOWrapperTest.test_override_destructor6sR�����	 �t�)�)�	 �
�L�L�N���Q��)��
����������+r c�h�UR5n[R"5nUR[5 URUSS9R SSS5 URURR[5 SSS5 g!,(df   NA=f!,(df   g=f)NrWr0)r�rr�r=r�r�r�r;r�r4r�r�s   rr��/TextIOWrapperTest.test_error_through_destructorMs����#�#�%��
�
/�
/�
1�R��"�"�>�2��"�"�5�7�"�;�A�A�3�
���R�]�]�3�3�W�=�	2�
1�2�2��2�
1�s"�B#�B�2B#�
B 	�B#�#
B1c�j�SGH�nSGH�nUR[RSUS9nXlUR	URS5S5 UR
5 UR[RSUS9nXlUR	UR5S5 UR	UR5S5 UR5nUR	URS5S5 UR	URS5S5 URS5 UR	URS	5S
5 UR	URS5S5 UR	URS5S
5 UR	UR5S
5 UR	UR5U5 UR	URS5S5 UR	URSS	5U5 UR	URS5S5 UR	URU5U5 UR	UR5S5 URS5(aURX25 UR
5 GM� GM� g)N)r=r�rNr�r�r�r9��� �!�?r"�A)r�r/rWr0r0r%rN�r+rr�r�r=r�r�def�utf)r2r
r-r4r;rTr�rmr�rir��multi_line_test)r?�	chunksize�encr5�cookies     r�
test_basic_io�TextIOWrapperTest.test_basic_ioYs���L�I�2���I�I�i�.�.��s�I�C�� )�
�� � �������3����	��I�I�i�.�.��s�I�C�� )�
�� � �����1�-�� � �����5�1������� � ������A�.�� � ������u�5����q�	�� � ������D�1�� � ������C�0�� � ������B�/�� � �����2�.�� � �����6�2�� � ������A�.�� � �����1��v�6�� � �������3�� � �������8�� � �����5�1��>�>�%�(�(��(�(��0����	�33�Mr c	��URS5 UR5 Sn/nSH|n/n[U5H"nURX7[	U5-5 M$ SRU5S-nURUR
5U45 URU5 M~ URS5 /n	UR
5n
UR5nU(dOU	RX�45 M<URX�5 g)Nru	sÿ࿿￿)rr=r�rNr�r��rrr�>rr"rr�rr�)
rirwr<rRrr
rmrTr]r;)r?r5r!�sample�wlinesr��charsr8r-�rlinesrs           rr�!TextIOWrapperTest.multi_line_testvs���	���q�	�	�
�
��$����L�D��E��4�[�����V��F��O�4�5�!��7�7�5�>�D�(�D��M�M�1�6�6�8�T�*�+�
�G�G�D�M�
M�	
���q�	�����&�&�(�C��:�:�<�D����M�M�3�+�&��	
����(r c�@�UR[RSSS9nUR5nUR	S5 UR5nUR	S5 UR5nURS5 UR
UR5U5 UR
UR5S5 UR
UR5U5 UR
UR5S5 UR
UR5U5 URS5 UH5nUR
US5 UR[UR5 M7 UR
UR5U5 UR5 g)Nr0rWr0uÿ
r)r2r
r-rmrTrir;r]r=r�r�)r?r5�p0�p1�p2r-s      r�test_telling�TextIOWrapperTest.test_telling�s(���I�I�i�&�&��w�I�?��
�V�V�X��	�����
�V�V�X��	�����
�V�V�X��	���q�	��������2�&��������x�0��������2�&��������x�0��������2�&�	���q�	��D����T�8�,����g�q�v�v�.��	
�������2�&�	���	r c���[5nUS-
nSU-n[URS55nUR[	U5[	U55 Sn[URS55nXF-nUR[RS5nURUS-5 SSS5 UR[RSSS9nURU5n	URU	[US55 URUR5U5 URUR5U5 SSS5 g!,(df   N�=f!,(df   g=f)	Nr�r�rW�袈
rXr.r0r�)
r6rrjr;rr2r
r-rTr�r�rmr])
r?�
chunk_size�prefix_size�u_prefix�prefix�u_suffix�suffixr-r5rs
          r�test_seeking�TextIOWrapperTest.test_seeking�s��(�*�
� �1�n����$���x���w�/�0������X���F��4����x���w�/�0�����
�Y�Y�y�'�'��
.�!�
�G�G�D��F�O�/�
�Y�Y�y�'�'��w�Y�
?�1����{�#�A����Q��F�G� 4�5����Q�V�V�X�{�3����Q�Z�Z�\�8�4�	@�
?�/�
.��
?�
?�s�E�A.E�
E�
E%c�v�SnUR[RS5nURU5 SSS5 UR[RSSS9nUR SUlUR5 UR
5 SSS5 g!,(df   Nj=f!,(df   g=f)Ns࿿
rXr.rWr0r�)r2r
r-rTr4r]rm)r?rr5s   r�test_seeking_too�"TextIOWrapperTest.test_seeking_too�s��� ��
�Y�Y�y�'�'��
.�!�
�G�G�D�M�/�
�Y�Y�y�'�'��w�Y�
?�1�
�M�M��A�M�
�J�J�L�
�F�F�H�	@�
?�/�
.��
?�
?�s�B�4B*�
B'�*
B8c�4^^�SmSUU4SjjnS[l[RHun nU"U5 M [RH-un nT[	U5S--
nSU-nUS-nU"XR-U5 M/ S[lg!S[lf=f)N�rc	��>�TR[RS5nURU5 UR	5 TR[RSS9nTUlUR
5nUR	5 [U[U5S-5H�nSS[U5U-
4H�nTR[RSS9nTRUR
U5USU5 UR5nTRUR
U5X4XE-5 URU5 TRUR
5X4S5 UR	5 M� M� g)zsTell/seek to various points within a data stream and ensure
that the decoded data returned by read() is consistent.rXrir0r=r�N)r2r
r-rTr�r4r�r<rr;rmri)	r�min_posr5�decodedr8r$r"�
CHUNK_SIZEr?s	       ��r�test_seek_and_tell_with_data�JTextIOWrapperTest.test_seek_and_tell.<locals>.test_seek_and_tell_with_data�s$����	�	�)�*�*�D�1�A�
�G�G�D�M�
�G�G�I��	�	�)�*�*�^�	�D�A�&�A�M��f�f�h�G�
�G�G�I��7�C��L�1�$4�5���Q��G��q� 0�1�A��	�	�)�"2�"2�^�	�L�A��$�$�Q�V�V�A�Y�����<��V�V�X�F��$�$�Q�V�V�A�Y��!�%�0@�A��F�F�6�N��$�$�Q�V�V�X�w�r�{�;��G�G�I�2�6r r=r��.r")rDrgrtrxr)r?rFr\r(�offsetr8rCrEs`      @rr��$TextIOWrapperTest.test_seek_and_tell�s�����
�	�	�,34�"�/�	8�=�H�H���q�!�,�U�3� I� >�H�H���q�!�#�c�%�j�!�m�3���f��� ��(��,�V�^�W�E� I�78�&�3��a�&�3�s�A$B
�

Bc�D�UR[RSSS9nURS5 UR	5 UR[RSSS9nURUR
5S5 UR5nURUR
5S5 UR5nURU5 URUR
5S5 URUR5U5 UR	5 g)NrV�euc_jpr0u
AB
うえ
r.zAB
uうえ
)	r2r
r-rTr�r;r]rmri)r?r5r.r/s    r�test_multibyte_seek_and_tell�.TextIOWrapperTest.test_multibyte_seek_and_tell�s����I�I�i�&�&��h�I�?��	���$�%�	���	��I�I�i�&�&��h�I�?���������v�.�
�V�V�X���������'7�8�
�V�V�X��	���r�
��������'7�8��������2�&�	���	r c���SnUR[RS5nURU5 SSS5 UR[RS5nUR	5nURUS5 UR
5nURU5 UR5nURUS5 SSS5 g!,(df   N�=f!,(df   g=f)Nsline1
rXr.zline1
r)	r2r
r-rTr]r;rmrir�)r?rr5r-r�	remainings      r� test_tell_after_readline_with_cr�2TextIOWrapperTest.test_tell_after_readline_with_cr�s�����
�Y�Y�y�'�'��
.�!�
�G�G�D�M�/��Y�Y�y�'�'��
-���:�:�<�D����T�9�-��&�&�(�C�
�F�F�3�K�����I����Y��+�.�
-�/�
.��.�
-�s�C�A&C�
C�
C+c��UR[RSSS9nURS5 UR	5nURS5 URU5 URS5 UR
5 UR[RSSS9nURUR5S5 UR
5 g)	NrV�euc_jis_2004r0uæ̀�æùr.uæ̀̀)	r2r
r-rTrmrir�r;r])r?r5r.s   r�test_seek_with_encoder_state�.TextIOWrapperTest.test_seek_with_encoder_state
s����I�I�i�&�&��n�I�E��	�����
�V�V�X��	�����	���r�
�	�����	���	��I�I�i�&�&��n�I�E���������';�<�	���	r c���SnSnUH�nUR5nURXCS9nURU5 URU5 URS5 UR	UR5US-5 URS5 UR	UR5US-5 UR	UR
5US-RU55 M� g)N�
1234567890)r�r�r�r�r�r�r0rr�)r�r�rTrir;r�r�rj)r?rr�r1rqr5s      r�test_encoded_writes�%TextIOWrapperTest.test_encoded_writes
s��������H��,�,�.�C��"�"�3�"�:�A�
�G�G�D�M�
�G�G�D�M�
�F�F�1�I����Q�V�V�X�t�a�x�0�
�F�F�1�I����Q�V�V�X�t�a�x�0����S�\�\�^�d�Q�h�->�->�x�-H�I�r c��"SSUR5nURU"5SS9nUR[UR5 g)Nc��\rSrSrSrSrg)�5TextIOWrapperTest.test_unreadable.<locals>.UnReadablei.
c��gr�r#r>s rra�>TextIOWrapperTest.test_unreadable.<locals>.UnReadable.readable/
rjr r#Nrkr#r r�
UnReadabler^.
rmr rarWr0)r�r�r=r�r�)r?rar�s   r�test_unreadable�!TextIOWrapperTest.test_unreadable-
s?��	����	�� � ���� �@�����'�3�8�8�,r c��URURS5SS9nSnURS5nU(dOX#-
nMURUS5 g)NsAA
BBrWr0rr=zAA
BB�r�r�r�r;�r?r��readsr�s    r�test_read_one_by_one�&TextIOWrapperTest.test_read_one_by_one4
sY��� � ����k�!:�W� �M����������A����J�E�	�
	
�����)r c�V�URURS5SS9nURUR5/SQ5 UR	S5 URURS5/SQ5 UR	S5 URURS5SS/5 g)	NsAA
BB
CCrWr0)�AA
�BB
�CCrr�rkrl)r�r�r;r�ri�r?r�s  rrj� TextIOWrapperTest.test_readlines>
s���� � ����m�!<�w� �O���������*@�A������������t�,�.D�E������������q�)�F�F�+;�<r c��URURS5SS9nSnURS5nU(dOX#-
nMURUS5 g)Ns�AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BrWr0rrAz�AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Brerfs    r�test_read_by_chunk�$TextIOWrapperTest.test_read_by_chunkG
sZ��� � ����.C�!D�w� �W���������
�A����J�E�	�
	
����
�.r c���/SQnUR5nURUSS9nURU5 UR5 UR	UR5S5 g�N)r��cd�efrWr0r�)r�r�r^r�r;r��r?r�rqr�s    rr�!TextIOWrapperTest.test_writelinesR
sR�����l�l�n��� � ��w� �7�����q���	�	����������3r c���[/SQ5nUR5nURUSS9nURU5 UR	5 URUR
5S5 grt)rr�r�r^r�r;r�rws    rr"�*TextIOWrapperTest.test_writelines_userlistZ
sX���'�(���l�l�n��� � ��w� �7�����q���	�	����������3r c�
�URUR5SS9nUR[UR/SQ5 UR[URS5 UR[URS5 g)NrWr0r
r})r�r�r=r>r^rns  rr&�'TextIOWrapperTest.test_writelines_errorb
s_��� � �����'� �B�����)�S�^�^�Y�?����)�S�^�^�T�:����)�S�^�^�V�<r c���URURUR5SS9nSnURS5nU(dOX#-
nMUR	X R
5 g)Nr�r0rr=)r�r�r~r�r;rrfs    r�test_issue1395_1�"TextIOWrapperTest.test_issue1395_1h
sa��� � ����d�m�m�!<�w� �O����������A����J�E�	�
	
������0r c���URURUR5SS9nSUlSnUR	S5nU(dOX#-
nMURX R5 g)Nr�r0r�r�r�r�r~r4r�r;rrfs    r�test_issue1395_2�"TextIOWrapperTest.test_issue1395_2t
sf��� � ����d�m�m�!<�w� �O�������������A����J�E�	�
	
������0r c�N�URURUR5SS9nSUlUR	S5nX!R	S5-
nX!R5-
nX!R5-
nX!R5-
nUR
X R5 g�Nr�r0r�)r�r�r~r4r�r]r;r�r?r�rgs   r�test_issue1395_3�"TextIOWrapperTest.test_issue1395_3�
s���� � ����d�m�m�!<�w� �O�����������
���!����
������
������
������������0r c���URURUR5SS9nSUlUR	S5nX!R	5-
nURX R5 gr�r�r�s   r�test_issue1395_4�"TextIOWrapperTest.test_issue1395_4�
sX��� � ����d�m�m�!<�w� �O�����������
������������0r c�,�URURUR5SS9nSUlUR	S5nUR5nUR
S5 UR
U5 URUR	S5S5 g)Nr�r0r�rzBBB
)r�r�r~r4r�rmrir;)r?r�rgrs    r�test_issue1395_5�"TextIOWrapperTest.test_issue1395_5�
sq��� � ����d�m�m�!<�w� �O������������h�h�j�����������
�������!��g�.r c��URUR5nURUSS9nURUR	5UR	55 g�Nr�r0)r�r~r�r;rd)r?r?r�s   r�test_issue2282� TextIOWrapperTest.test_issue2282�
sF�����d�m�m�,��� � ��'� �:��������*�C�L�L�N�;r c��[RnSH�nURUSUS9nURS5 UR	5nSSS5 URUS5nURUR
5SRU55 SSS5 URUSUS9nURS5 SSS5 URUS5nURUR
5SRU55 SSS5 M� g!,(df   N�=f!,(df   N�=f!,(df   N=f!,(df   GME=f)	N��	utf-8-sigr�r�rVr0�aaar[r��xxx�aaaxxx)r
r-r2rTrmr;r�rj�r?�filename�charsetr5rs     r�test_append_bom�!TextIOWrapperTest.test_append_bom�
s����#�#��8�G����8�S�7��;�q�������f�f�h��<����8�T�*�a�� � �����5�<�<��+@�A�+����8�S�7��;�q������<����8�T�*�a�� � �����8�?�?�7�+C�D�+�*�9�;�;��+�*��<�;��*�*�s/�"D�#0D&�,D7�0E�
D#	�&
D4	�7
E	�
E	c�f�[RnSH�nURUSUS9nURS5 UR	5nSSS5 URUSUS9nURW5 URS5 URS5 URS5 SSS5 URUS	5nUR
UR5S
RU55 SSS5 M� g!,(df   N�=f!,(df   Nn=f!,(df   GM=f)Nr�rVr0r�r�zzzr�bbbr[�bbbzzz)	r
r-r2rTrmrir;r�rjr�s     r�
test_seek_bom�TextIOWrapperTest.test_seek_bom�
s����#�#��8�G����8�S�7��;�q�������f�f�h��<����8�T�G��<�����s����������q�	������	=�
���8�T�*�a�� � �����8�?�?�7�+C�D�+�*�9�;�;��=�<��
+�*�s$�"C>�"AD�0D �>
D	�
D	� 
D0	c�:�[RnSH�nURUSUS9nURS5 SSS5 URUSUS9nUR	S5 UR	SUR
5 URS5 SSS5 URUS5nUR
UR5S	RU55 SSS5 M� g!,(df   N�=f!,(df   Nn=f!,(df   GM=f)
Nr�rVr0r�r�rr�r[r�)	r
r-r2rTrir`r;r�rj)r?r�r�r5s    r�test_seek_append_bom�&TextIOWrapperTest.test_seek_append_bom�
s����#�#��8�G����8�S�7��;�q������<����8�S�7��;�q����q�	����q�$�-�-�(������<����8�T�*�a�� � �����8�?�?�7�+C�D�+�*�9�;�;��;�;��+�*�s#�C(�?C9�+0D
�(
C6	�9
D	�

D	c�Z�UR[RSSS9nURURS5 SSS5 UR[RSSSS9nURURS5 SSS5 g!,(df   NT=f!,(df   g=f)NrVrWr0rfr�r�)r2r
r-r;r�rRs  r�test_errors_property�&TextIOWrapperTest.test_errors_property�
s���
�Y�Y�y�'�'��w�Y�
?�1����Q�X�X�x�0�@�
�Y�Y�y�'�'��w�y�Y�
Q�UV����Q�X�X�y�1�R�
Q�@�
?��
Q�
Q�s�B�%B�
B�
B*c	�^^�[R"5mUR[RSSSS9mUU4Sjn[S5Vs/sHn[R"X4S9PM nn[R"UTR5 [R"S5 SSS5 SSS5 UR[RSS	9mTR5n[S5H'nURURS
U-5S5 M) SSS5 gs snf!,(df   N�=f!,(df   N�=f!,(df   g=f)NrVrWr=r�c�R>�SU-nTR5 TRU5 g)N�Thread%03d
)r&rT)rs�text�eventr5s  ��r�run�1TextIOWrapperTest.test_threads_write.<locals>.run�
s!���%��)���
�
������
r rDrpr�r0r�)r�r�r2r
r-r<rsrr3r�r�r�r�r;r)r?r�r%r��contentrsr�r5s      @@r�test_threads_write�$TextIOWrapperTest.test_threads_write�
s
������!��
�Y�Y�y�'�'��w�!�Y�
L�PQ�
�
!&�b�	�+� )�1�!�'�'�s��>� )�
�+�!�/�/�����C��
�
�4� �D�M��Y�Y�y�'�'�'�Y�
:�a��f�f�h�G��2�Y��� � ����~��/A�!B�A�F��;�
:��	+�C�C��M�
L��;�
:�sB�D:�
D$�,#D:�D)�&D:�AE�$D:�)
D7	�3D:�:
E�
Ec�^^�URURUR5SS9m/mUU4SjnUTlUR	[
TR5 URTR5 URTRR5 URT5 URTS5 URTS5 STlg)Nr�r0c�b>�TRTRR/TSS&[5erQ)r�r?r�)r�r�s��rrh�>TextIOWrapperTest.test_flush_error_on_close.<locals>.bad_flush�
s&������S�Z�Z�%6�%6�7�F�1�I��)�Or rr=c��grQr#r#r rrk�=TextIOWrapperTest.test_flush_error_on_close.<locals>.<lambda>�
r�r )r�r�r~r�r=r�r�rnr�r?ro)r?rhr�r�s  @@rrw�+TextIOWrapperTest.test_flush_error_on_close�
s����� � ����d�m�m�!<�w� �O����	���	����'�3�9�9�-�����
�
�#�����
�
�)�)�*������������#�������#� ��	r c�R�URUR5nSnSnX1lURUSS9nX$lUR[5nUR5 SSS5 URWRRS5 URURR[5 URURRRS5 URUR5 SUlSUlg!,(df   N�=f)	Nc��[S5er�rr#r rrh�>TextIOWrapperTest.test_close_error_on_close.<locals>.bad_flush�
r�r c��[S5er�rr#r rr��>TextIOWrapperTest.test_close_error_on_close.<locals>.bad_close�
r�r r�r0r�r�c��grQr#r#r rrk�=TextIOWrapperTest.test_close_error_on_close.<locals>.<lambda>	r r c��grQr#r#r rrkr�
r�r )r�r~r�r�r�r=r�r;r�r�r�r�ror��r?r?rhr�r�r�s      rr��+TextIOWrapperTest.test_close_error_on_close�
s������d�m�m�,��	#�	#� ��� � ��'� �:���	�
�
�
�w�
'�3��I�I�K�(�������+�+�Z�8����c�m�m�7�7��A�������2�2�7�7��D�������$�$��� ��	�(�
'�s�D�
D&c�N�URUR5nSnSnX1lURUSS9nX$lUR[5nUR5 SSS5 URS[WR55 URURR[5 URS[URR55 URUR5 SUlSUlg!,(df   N�=f)	Nc��[erQr�r#r rrh�LTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.bad_flushr�r c��[erQr�r#r rr��LTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.bad_closer�r r�r0r�r�c��grQr#r#r rrk�KTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.<lambda>r r c��grQr#r#r rrkr�r�r )r�r~r�r�r�r=r�r�r�r�r�r�ror�r�s      rr��9TextIOWrapperTest.test_nonnormalized_close_error_on_closes������d�m�m�,��	%�	%� ��� � ��'� �:���	�
�
�
�y�
)�S��I�I�K�*��
�
�*�C��
�
�,>�?����c�m�m�7�7��C��
�
�*�C��
�
�0I�0I�,J�K�������$�$��� ��	�*�
)�s�D�
D$c��URURUR5SS9nUR5 UR5 UR5 UR	[
UR5 gr�)r�r�r~r�r=r r�rns  rrz�"TextIOWrapperTest.test_multi_close!sS��� � ����d�m�m�!<�w� �O���	�	���	�	���	�	�����*�c�i�i�0r c���URURUR5SS9nURURUR
5 URURURS5 g)NrWr0r)r�r�r~r=r�rmrirns  rr��!TextIOWrapperTest.test_unseekable(s]��� � ��!6�!6�t�}�}�!E�PW� �X�����$�3�3�S�X�X�>����$�3�3�S�X�X�q�Ar c��URURUR5SS9nURUR5nUR[5 X!lSSS5 g!,(df   g=fr�)r�r�r~r=r�r?)r?r�rqs   rr�*TextIOWrapperTest.test_readonly_attributes-sU��� � ����d�m�m�!<�w� �O���l�l�4�=�=�)��
�
�
�~�
.��J�/�
.�
.�s�A*�*
A8c��UR/SQ5nURUSSS9nURURS5S5 URUR	5S5 UR[U5SS	/5 g)
N�r}r�sghi
jkl
opq
r�r�r�r��abcdzefghi
zjkl
zopq
)r�r�r;r�r]rH�r?rQr�s   r�
test_rawio�TextIOWrapperTest.test_rawio3sq���n�n�A�B��� � ��w�� �E��������!��f�-���������3�����c��W�g�$6�7r c�
�UR/SQ5nURUSSSS9nURS5 URS5 URS5 URS	R	UR
5S
5 g)Nr�r�r�T)r1r�r��1z23
4�5r s123
45)r�r�rTr;r
rJr�s   r�test_rawio_write_through�*TextIOWrapperTest.test_rawio_write_through>sp���n�n�A�B��� � ��w��/3�!�5���	�	�#���	�	�'���	�	�#��������#�"2�"2�3�Z�@r c�^^�//smm"UU4SjSUR5nUR5nSnU"U[U5S-5nURUSSS9nUR	S5nURU5 UR
T5 URT5 URUR5S5 /mURUS	-5 URT5 URUR5US
-5 g)Nc�:>^�\rSrSrUU4SjrUU4SjrSrU=r$)�BTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriteriLc�F>�TRS5 [TU]"U0UD6$rWr)r?r�rpr��flush_calleds   ��rr��HTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriter.flushM�%����#�#�D�)��w�}�d�5�f�5�5r c�F>�TRS5 [TU]"U0UD6$rW)rRr�rT)r?r�rpr��write_calleds   ��rrT�HTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriter.writePr�r r#)r%r&r'r(r�rTr)r�)r�r�r�s@��rr~r�Ls���
6�
6�
6r r~rHr�r�T)r1r�r rGr�)
r~r�rr�r_rTrornr;r�)	r?r~r�rr�r�r�r�r�s	       @@r�test_bufio_write_through�*TextIOWrapperTest.test_bufio_write_throughHs����&(��"��l�	6�	6�T�0�0�	6���������u�c�$�i��k�2���#�#�E�G�26�$�8���{�{�7�#�����T��	
����&�����%�������)�3�/������T�B�Y������%�������)�4�"�9�5r c��UR/5nURUSSS9nURS5 URSS9 UR	UR
S5 UR	SR
UR5S5 URS	5 UR	SR
UR5S
5 URSS9 UR	UR
S5 URS5 UR5 UR	SR
UR5S
5 UR5 URSS9 UR	UR
S5 URSS9 UR5 URSS9 UR	UR
S5 g)Nr�r�r�r�T�r�r r��23r�F�45r�)	r�r�rTr�r;r�r
rJr�r�s   r�test_reconfigure_write_through�0TextIOWrapperTest.test_reconfigure_write_throughhsV���n�n�R� �����s�W�d��C��	�����	�
�
�D�
�)�������$�/�������#�"2�"2�3�T�:�	����
�������#�"2�"2�3�V�<�	�
�
�E�
�*�������%�0�	����
�	���	�������#�"2�"2�3�X�>�	�
�
��	�
�
�D�
�)�������%�0�	�
�
�D�
�)�	�
�
��	�
�
�D�
�)�������$�/r c��URURS5SS9nUR[URS5 URURS5SS9nUR[UR
5 URURS5SS9nUR[UR5 g)Nr�rWr0r=)r�r�r=r>r�r]r�s  r�test_read_nonbytes�$TextIOWrapperTest.test_read_nonbytess���
���t�}�}�S�1�G��D�����)�Q�V�V�Q�/����t�}�}�S�1�G��D�����)�Q�Z�Z�0����t�}�}�S�1�G��D�����)�Q�V�V�,r c��[R"S5n[R"USS5 UR	URS5SS9nSSS5 UR
[WRS5 g!,(df   N0=f)N�rot13�_is_text_encodingT�foor0r^)	rFrorr�r�r�r=r>rT)r?r�rKs   r�test_illegal_encoder�&TextIOWrapperTest.test_illegal_encoder�si���
�
�g�&��
�
�
�u�&9�4�
@��"�"�4�<�<��#7�'�"�J�A�A����)�Q�W�W�e�4�A�
@�s� A9�9
Bc�^^�U4SjmT"5nTR[URS5 T"5nTR[UR5 T"5nTR[UR5 U4SjnU"S5nTR[URS5 U"S5nTR[URS5 U"S5nTR[URS5 g)Nc�>�[R"S5nSUlTRTR	S5SSS9nSUlU$!SUlf=f)N�quopriTsaaaaaar�r�F)rFror�r�r�)r�rKr?s  �r�_make_illegal_wrapper�ETextIOWrapperTest.test_illegal_decoder.<locals>._make_illegal_wrapper�s_����]�]�8�,�F�'+�F�$�
1��&�&�t�|�|�I�'>�/3�h�'�H��,1��(��H��,1��(�s� A	�		Ar=c��>^^�"U4SjS5mU4Sjn[R"S5n[R"USU5 T"5sSSS5 $!,(df   g=f)Nc�">�\rSrSrU4SjrSrg)�^TextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>.BadDecoderi�c�>�T$rQr#)r?�getstate_ret_vals �rrR�gTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>.BadDecoder.getstate�s	���+�+r r#N)r%r&r'r(rRr))rs�r�
BadDecoderr�s
���,�,r rc�>�T"5$rQr#)r�rs �r�_get_bad_decoder�dTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>._get_bad_decoder�s���!�|�#r r�rn)rFrorr�)rrr�rr�s`  @�r�_make_very_illegal_wrapper�JTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper�sL���
,�
,�
$��]�]�8�,�F��"�"�6�+?�#3�5�,�.�5�5�5�s�A�
A$r]r#)r=r�)r=r>r�r])r?rKrr�s`  @r�test_illegal_decoder�&TextIOWrapperTest.test_illegal_decoder�s����	�
"�#�����)�Q�V�V�Q�/�!�#�����)�Q�Z�Z�0�!�#�����)�Q�V�V�,�
		/�
'�r�*�����)�Q�V�V�R�0�&�r�*�����)�Q�V�V�R�0�&�v�.�����)�Q�V�V�R�0r c�d�URRnSRX!S9n[SU5$)NaOif 1:
            import codecs
            import {iomod} as io

            # Avoid looking up codecs at shutdown
            codecs.lookup('utf-8')

            class C:
                def __del__(self):
                    io.TextIOWrapper(io.BytesIO(), **{kwargs})
                    print("ok")
            c = C()
            )�iomodrp�-c)r�r%r_r)r?rpr
�codes    r�_check_create_at_shutdown�+TextIOWrapperTest._check_create_at_shutdown�s:����� � �����U��2�	
� ��d�+�+r c���UR5upnU(a+URURUR55 gUR	SUR5R55 g)N�ok)rr��shutdown_errorr_r;�strip�r?�rc�outr�s    r�(test_create_at_shutdown_without_encoding�:TextIOWrapperTest.test_create_at_shutdown_without_encoding�sR���5�5�7�����
�M�M�$�-�-�s�z�z�|�<����T�3�:�:�<�#5�#5�#7�8r c��URSSS9upnURU5 URSUR5R	55 g)NrWrfr�r)rror;r_rrs    r�%test_create_at_shutdown_with_encoding�7TextIOWrapperTest.test_create_at_shutdown_with_encoding�sN���5�5�w�=E�6�G�������������s�z�z�|�1�1�3�4r c���[S5nURUS5n[UR55R	5nURUR
S5URS55 g)NsJust some random string
rWr0)�MemviewBytesIOr��_to_memoryviewr�r=r;r�r_)r?r.rK�	bytes_vals    r�test_read_byteslike�%TextIOWrapperTest.test_read_byteslike�s]���7�8�����q�'�*��
$�A�J�J�L�1�9�9�;�	���������i�&6�&6�w�&?�@r c���"SS[5n[S5HnURU"5SS9 M SUlURU"5SS9ng![a MHf=f)Nc�&�\rSrSrSrSrSrSrg)�,TextIOWrapperTest.test_issue22849.<locals>.Fi�c��grWr#r>s rra�5TextIOWrapperTest.test_issue22849.<locals>.F.readable����tr c��grWr#r>s rrX�5TextIOWrapperTest.test_issue22849.<locals>.F.writable�r)r c��grWr#r>s rrd�5TextIOWrapperTest.test_issue22849.<locals>.F.seekable�r)r r#N)r%r&r'r(rarXrdr)r#r r�Fr&�s��+�+�+r r.rGrWr0c��grGr#�r%s rrk�3TextIOWrapperTest.test_issue22849.<locals>.<lambda>�s��1r )�objectr<r�r�rm)r?r.r8rKs    r�test_issue22849�!TextIOWrapperTest.test_issue22849�sl��	,��	,�
�r��A�
��"�"�1�3��"�9��������q�s�W��5���	�
��
�s�A�
A$�#A$c�b�URURS55nURSS9 g)N�testr�r0)r�r�r�)r?�wrappers  r�test_reconfigure_locale�)TextIOWrapperTest.test_reconfigure_locale�s,���$�$�T�\�\�'�%:�;�����X��.r c���SRS5SRS5-nURU5nURUSSS9nURUR	5S5 URUR5 URSS9 SSS5 URUR5 URSS	9 SSS5 g!,(df   NB=f!,(df   g=f)
N�abcé
rq�déf
�utf8r�r�rWr0�r�)rjr�r�r;r]r=r�r�)r?rrQr�s    r�test_reconfigure_encoding_read�0TextIOWrapperTest.test_reconfigure_encoding_read�s����!�!�(�+�j�.?�.?��.G�G���l�l�4� ��� � ��x�� �F����������5�
�
�
�t�8�8�
9��O�O�W�O�-�:�
�
�
�t�8�8�
9��O�O�D�O�)�:�
9�:�
9��
9�
9�s�C
�4C�
C�
C,c��UR5nURUSSS9nURS5 URSS9 URS5 UR	5 URUR
5S5 g)	Nr�r�r��foo
r�r0r�sfoo
é
)r�r�rTr�r�r;r�r�s   r� test_reconfigure_write_fromascii�2TextIOWrapperTest.test_reconfigure_write_fromasciisl���l�l�n��� � ��w�� �E���	�	�'�������-��	�	�(���	�	���������);�<r c�L�UR5nURUSSS9nURS5 URSS9 UR	UR5S5 URS5 UR
5 UR	UR5S	5 UR5nURUS
SS9nURS5 URSS9 URS5 UR
5 UR	UR5S
5 g)Nrqr�r�r;rWr0sabc�
r<s
abc�
déf
r��abc
r�s	abc
déf
)r�r�rTr�r;r�r�r�s   r�test_reconfigure_write�(TextIOWrapperTest.test_reconfigure_writes����l�l�n��� � ��x�� �F���	�	�+�������)���������6��	�	�*���	�	���������)A�B��l�l�n��� � ��w�� �E���	�	�'�������-��	�	�*���	�	���������)=�>r c�&�UR5nSUlSUlURUSSS9nUR	S5 URSS9 UR	S5 UR
5 URUR5S	5 g)
Nc��gr�r#r#r rrk�GTextIOWrapperTest.test_reconfigure_write_non_seekable.<locals>.<lambda>(s��ur r�r�r�rFr�r0r<sabc
déf
)	r�rdrir�rTr�r�r;r�r�s   r�#test_reconfigure_write_non_seekable�5TextIOWrapperTest.test_reconfigure_write_non_seekable&sz���l�l�n��$������� � ��w�� �E���	�	�'�������-��	�	�*���	�	��	
�������*J�Kr c�L�URUR5SSS5nURSS9 URURS5 URUR
S5 UR
S5 URSS9 URURS5 URUR
S5 URSS	9 URURS5 URUR
S5 UR
S
5 URSSS9 URUR
S
5 URS5 URUR5S5 URUR5R5S5 g)Nr�r�r�r0�LF
r�r>r��r��CRLF
rWr�rfrzLF
CRLF
s	LF
CRLF
)r�r�r�r;r1r�rTrir�r�r�rns  r�test_reconfigure_defaults�+TextIOWrapperTest.test_reconfigure_defaults3s<��� � ������)�T�J�������&�������w�/�������Y�/��	�	�&�������'�������w�/�������Y�/����x��(�������w�/�������X�.��	�	�(������$��7�������X�.�������������\�2��������.�.�0�/�Br c��	�URUR5SSS5nUR[5 UR	SS9 SSS5 UR
(aZUR[5 UR	SS9 SSS5 UR[5 UR	SS9 SSS5 UR[5 UR	SS9 SSS5 UR
(a-UR[5 UR	SS9 SSS5 UR[5 UR	SS	9 SSS5 UR[5 UR	SS	9 SSS5 UR[5 UR	S
S	9 SSS5 UR
(d-UR[5 UR	SS	9 SSS5 UR
(GaUR[5 UR	[5S9 SSS5 UR[5 UR	S
S-S9 SSS5 UR[5 UR	[5S9 SSS5 UR[5 UR	S
S-S9 SSS5 UR[5 UR	[5[5S9 SSS5 URURS5 URURS5 URUR S5 URUR"S5 UR	SSSSSS9 URURS5 URURS5 URUR S5 URUR"S5 g!,(df   GN�=f!,(df   GN�=f!,(df   GNq=f!,(df   GNV=f!,(df   GN*=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GNx=f!,(df   GNZ=f!,(df   GN7=f!,(df   GN=f!,(df   GN�=f)Nr�r�r�r]r0r�zlocalerPr>�xyzr�r�r�r�r�)r�r�Frqr�r�T)r1r�r�r�r�)r�r�r=r>r�r�r�r�r r�r9rPr;r1r�r�r�r�rns  r�test_reconfigure_errors�)TextIOWrapperTest.test_reconfigure_errorsJs[��� � ������)�T�J��
�
�
�y�
)��O�O�R�O�(�*��9�9��"�"�#5�6������2�7��"�"�;�/������4�0��
�
�y�
)��O�O�2�O�&�*��9�9��"�"�#5�6����x��0�7��
�
�y�
)��O�O�B�O�'�*�
�
�
�z�
*��O�O�H�O�-�+�
�
�
�z�
*��O�O�E�O�*�+��y�y��"�"�:�.������/�/��9�9�9��"�"�#4�5����x�z��:�6��"�"�=�1����q�$�w��7�2��"�"�#4�5����h�j��9�6��"�"�=�1����a��g��6�2��"�"�#4�5����x�z�.6�j� �:�6�	
������w�/�������Y�/��
�
�c�(�(�%�0��
�
�c�'�'��/�����(�F�'+�4�	�	A�������x�0�������X�.��
�
�c�(�(�$�/��
�
�c�'�'��.�c*�
)��7�6��/�/��*�
)��7�6��*�
)��
*�
*��
*�
*��/�.��6�5��1�1��5�5��1�1��5�5�s��O9�6P�#P�P/�Q�;Q�(Q%�Q7�R	�R�R-�7R?�,S�!S#�9
P�
P�
P,�/
P>�
Q�
Q"�%
Q4�7
R�	
R�
R*�-
R<�?
S�
S �#
S2c�R�URS5nURUSSS9nURSS9 URUR	5S5 URS5nURUSSS9nURSS9 URUR	5S5 URS5nURUSS	S9nURSS9 URUR	5S
5 URS5nURUSSS9nURS	S9 URUR	5S5 URS
5nURUSS	S9nURSS9 URUR	5S5 URUR5SS	S9nURSS9 URS5 URSS9 URS5 URSS9 URS5 URS	S9 URS5 URSS9 URS5 S[R-S-nURUR5R5RS5U5 g)NsCR
EOFr�r�r>zCR
rzCR
s	CR
LF
EOFr�zCR
LF
s	LF
CR
EOFzLF
CR
sCR
CRLF
EOFr�z	CR
CRLF
zlinesep
rOrQr�zLF
LF
CR
CRLF
)r�r�r�r;r]rTrjr�r�r�r_)r?rQr�r%s    r�test_reconfigure_newline�*TextIOWrapperTest.test_reconfigure_newlinesM���l�l�:�&��� � ��g�t� �<�������%���������0��l�l�:�&��� � ��g�t� �<�������#���������0��l�l�>�*��� � ��g�t� �<�������%���������4��l�l�>�*��� � ��g�t� �<�������%���������4��l�l�-�.��� � ��g�t� �<�������'���������8�� � ������$� �G�������%��	�	�+�������#��	�	�&�������%��	�	�&�������%��	�	�&�������'��	�	�(���r�z�z�)�,B�B���������.�.�0�7�7��@�(�Kr c�F�URURS5SS9nURS5 UR5 UR5 URURS5SS9nURS5 UR	S5 UR5 g)Nr6r�r0r=r%)r�r�r�rmrTr�s  r�test_issue25862�!TextIOWrapperTest.test_issue25862�sz�����t�|�|�G�4�w��G��	���q�	�	����	�������t�|�|�G�4�w��G��	���q�	�	�����	���r c�.�URURS5UR55nURU5nUR5nUR	US5 URU5 UR	X2R5-S5 g)Nsfoo
bar
rBzfoo
bar
)r�r�r�r]r;rT)r?�pr5r�s    r�test_issue35928�!TextIOWrapperTest.test_issue35928�sr��������]� ;�T�\�\�^�L�����q�!���j�j�l������g�&�	���������z�z�|�+�\�:r c��^�"U4SjSTR5qTRS5n[US5n[[R
S-5H�nTR
US9 [R"X#5n[R"U5nTRURR5S5 TRURS5 SSS5 M� Bg!,(df   M�=f)Nc�<>^�\rSrSrU4SjrSrU4SjrSrU=r$)ri�c�0>�[TU]U5 X lgrQrrs   �rrN�MyTextIO.__init__�r
r c�N�URURR54$rQ)rr?r�r>s rr�MyTextIO.__getstate__�s���x�x����!5�!5�!7�7�7r c�P>�Uup#URTRU5U5 grQrrs    �rr��MyTextIO.__setstate__�rr rrrs@�rrr�s���
�
8�
7�
7r rrrr=r)
r�rr�r<rrr�rrr;r?r�r)r?rQr�r r!�newtxts`     rr#�(TextIOWrapperTest.test_pickling_subclass�s����	7�t�)�)�	7��l�l�7�#���s�E�"���6�2�2�Q�6�7�E����u��-� �,�,�s�2�����g�.��� � ����!7�!7�!9�7�C�� � ����U�3�	.�-�8�
�.�-�s
�%A3C&�&
C5	)rr~N)\r%r&r'r(r.r2r;rAr�r�r�r�r�r�r�r<r=r�r��	utf8_moder�r�r�r�r�r�r�rr�r�r#rr1r;r>r�rMrQrVrZrbrhrjrqrr"r&r~r�r�r�r�r�r�r�r�r�r�
no_tracingrr@r�rwr�r�rzr�rr�r�r�r�r�r�r
rrrr"r3r8r?rCrGrLrRrVrYr\r`r#r)r#r rr|r|�
s���>�+�!=�F	(�2�*�(�(�6�	5�1�6�_�_�S�Y�Y�(�(�*A�B�+�C�+�(	"�4�$5�0(I�T<� 7�$&�,�.>��:)�,�(5�"	�-8�^
�,�$�J�(-�*�=�	/�4�4�=�
1�
1�	1�1�/�<�
E�
E�E�2�
����0�0�2�G�3��G�"!�"!�(!�*1�B�
�	8�A�6�@0�.-�5�&1�P,�&9�5�	A�
6�/�
*�
=�?�*L�C�.3/�j"L�H	�;�r r|c�8^�\rSrSrSrU4SjrU4SjrSrU=r$)ri�zHA BytesIO object whose read method returns memoryviews
rather than bytesc�4>�[[TU]	U55$rQ)r r�r��r?�len_r�s  �rr��MemviewBytesIO.read1�s����e�g�m�D�1�2�2r c�4>�[[TU]	U55$rQ)r r�r�rps  �rr��MemviewBytesIO.read�s����e�g�l�4�0�1�1r r#)	r%r&r'r(ryr�r�r)r�r�s@rrr�s����3�2�2r rc��[R"S5n[U5[U5UR--
nURUSU5 [	U5$)z6Convert bytes-object *buf* to a non-trivial memoryviewr8N)r,r�itemsize�	frombytesr)rq�arr�idxs   rr r �sI���+�+�c�
�C�

�c�(�S��X����,�
,�C��M�M�#�d�s�)���c�?�r c�F�\rSrSr\rSrSrSrSrSr	Sr
SrS	rS
r
g)�CTextIOWrapperTesti��$LookupError: unknown encoding: asciic�l�URS5nURUS5nURUSS9nUR[UR
USSS9 UR[UR5 URRUR5nUR[[U5 g)Nr�r�rWr0r�r�)
r�ryr�r=r rNr�r@r�r�r�s    rr��&CTextIOWrapperTest.test_initialization�s����L�L��)������4�(�����q�7��3�����*�a�j�j�!�g�w��W����*�a�f�f�-����&�&�t�'9�'9�:�����)�T�1�-r c�Z�[R"S[45 UR[R
S5nUR
U5nURUSS9nURS5 X3l	[R"U5nA[R"5 SSS5 URW"5U5 UR[R
S5nUR!UR#5S5 SSS5 g!,(df   No=f!,(df   g=f)NrrXr�r0�456defr[s456def)rrrrkr
r-r~r�rTr%rUrVrrrWr2r;r�)r?r�r+rKrXr5s      rrY�*CTextIOWrapperTest.test_garbage_collection�s����
+�
+�R��,A�
B��K�K�	� 0� 0�$�7�E��#�#�E�*�A��"�"�1�w�"�7�A�
�G�G�H���C����Q��B����� �C�	
���"�$��#�
�Y�Y�y�'�'��
.�!����Q�V�V�X�y�1�/�
.�C�
B��/�
.�s�BD�!!D�
D�
D*c�b�[S5H�nURUR5UR55nURUSS9nURUR5UR55nURUSS9nXSlX5lM� [
R"5 g)Nr�r�r0)r<r�r�r��buddyrr)r?r8�b1�t1�b2�t2s      r�!test_rwpair_cleared_before_textio�4CTextIOWrapperTest.test_rwpair_cleared_before_textio�s����t��A��$�$�T�^�^�%5�t�~�~�7G�H�B��#�#�B��#�9�B��$�$�T�^�^�%5�t�~�~�7G�H�B��#�#�B��#�9�B��H��H��	���r c��URUR5SS9nUR[5 U?SSS5 g!,(df   g=fr�)r�r�r=r�r4r�s  r� test_del__CHUNK_SIZE_SystemError�3CTextIOWrapperTest.test_del__CHUNK_SIZE_SystemError
s<�����t�|�|�~���@��
�
�
�~�
.��
�/�
.�
.�s�A�
Ac�P^�Sm"U4SjSUR5nU"5nURUSS9nURmURS5 URS5 UR	/UR
5 UR
[5 URSTS	--5 SSS5 UR	S
/UR
5 URS5 URST-5 UR	S
SS
T-/UR
5 g!,(df   Ns=f)Nr)c�,>^�\rSrSrUU4SjrSrU=r$)�<CTextIOWrapperTest.test_internal_buffer_size.<locals>.MockIOic�L>�[U5T:�a[e[TU]
U5$rQ)rr�r�rT)r?rr�r5s  ��rrT�BCTextIOWrapperTest.test_internal_buffer_size.<locals>.MockIO.writes$����t�9�z�)�&�&��w�}�T�*�*r r#)r%r&r'r(rTr)r�)r�r5s@�r�MockIOr�s
���
+�
+r r�r�r0r%rr%r=r��ghir�rF)r�r�r4rTr;rJr=r�)r?r�rqrKr5s    @r�test_internal_buffer_size�,CTextIOWrapperTest.test_internal_buffer_sizes�����
�	+�T�^�^�	+��h�����s�W��5���]�]�
�	�����	���������S�-�-�.�
�
�
�|�
,�
�G�G�C��A��&�'�-�	
���)��c�&6�&6�7�	�����	����J������)�V�T�*�_�=�s�?O�?O�P�
-�
,�s�D�
D%c�:^�Sn"U4SjSUR5nU"5nURU5mTRS5 TRS5 TRSU-5 TR5 UR	SSS	U-/UR
5 g)
Nr)c�0>^�\rSrSrSrUU4SjrSrU=r$)�3CTextIOWrapperTest.test_issue119506.<locals>.MockIOi0Fc�t>�UR(dSUlTRS5 [TU]U5$)NT�middle)rrTr�)r?rr�rKs  ��rrT�9CTextIOWrapperTest.test_issue119506.<locals>.MockIO.write2s,����|�|�#'�D�L��G�G�H�%��w�}�T�*�*r )r)r%r&r'r(rrTr)r�)r�rKs@�rr�r�0s����G�
+�
+r r�r%r�gr�smiddler�)r�r�rTr�r;rJ)r?r5r�rqrKs    @r�test_issue119506�#CTextIOWrapperTest.test_issue119506-s�����
�	+�T�^�^�	+��h�����s�#��	�����	�����	����j� �!�	���	����)�Y��Z��@��)�)�	+r c�^^�SmSm"UU4SjSUR5nU"5nURU5mTR5 g)NFc�.>�\rSrSr\UU4Sj5rSrg)�;CTextIOWrapperTest.test_issue142594.<locals>.ReentrantRawIOiFc�>>�TbT(dSmTR5 g)NTF)r�)r?�detachedr7s ��rr��BCTextIOWrapperTest.test_issue142594.<locals>.ReentrantRawIO.closedGs����&�x�#�H��N�N�$�r r#N)r%r&r'r(�propertyr�r))r�r7s��r�ReentrantRawIOr�Fs���
�
��
r r�)r�r�r�)r?r�rQr�r7s   @@r�test_issue142594�#CTextIOWrapperTest.test_issue142594CsE�������	�	�T�^�^�	�����$�$�S�)���
�
�r r#N)r%r&r'r(r�rr�rYr�r�r�r�r�r)r#r rr{r{�s0��	�B�;�N�.�2�"��
Q�6+�,r r{c��\rSrSr\rSrSrg)�PyTextIOWrapperTestiTr|r#N)r%r&r'r(r�r�rr)r#r rr�r�Ts��	
�B�;�Nr r�c�2�\rSrSrSrSrSrSrSrSr	g)	�IncrementalNewlineDecoderTestiYc�^^�UU4SjnU"SS5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS5 TR[TRSS	S
9 TR5 U"SS5 U"S
S5 U"SSS	S
9 U"S
SS	S
9 U"S
S5 U"SS5 U"SS5 U"S
S5 U"S
S5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS5 g)Nc��>�TR5nTRTR"U40UD6U5 TRU5 TRTR"U40UD6U5 grQ)rRr;r_rV)r+rrpr�decoderr?s    ��r�
_check_decode�PIncrementalNewlineDecoderTest.check_newline_decoding_utf8.<locals>._check_decode]s[����$�$�&�E����W�^�^�A�8��8�!�<����U�#����W�^�^�A�8��8�!�<r s袈u袈��r����r T)r]r8r�r�rHz
a�

z

s
as袈
r4s袈
)r=�UnicodeDecodeErrorr_rH)r?r�r�s`` r�check_newline_decoding_utf8�9IncrementalNewlineDecoderTest.check_newline_decoding_utf8[s���	=�	�o�x�0��g�r�"��g�r�"��g�x�(��g�r�"��g�r�"��g�x�(��g�r�"����,�g�n�n�c���N��
�
���e�T�"��e�R� ��c�4�t�,��e�T��.��e�R� ��d�E�"��i��(��e�R� ��e�T�"��f�e�$��)�:�6��o�x�0��e�T�"��'��2��e�T�"r c�^^^�/mUb$[R"U5"5mUUU4SjnO	SmUU4SjnURTRS5 U"S5 URTRS5 U"S5 URTRS5 U"S5 URTRS5 U"S5 URTRS	5 U"S5 URS
R	T5S5 TR5 SnTb!TR5 TR
U5nURTRU5S5 URTRS5 g)Nc�>�TRU5H-nTRTR[U/555 M/ grQ)rjrRr_r)rr+r��encoderrs  ���r�_decode_bytewise�NIncrementalNewlineDecoderTest.check_newline_decoding.<locals>._decode_bytewise�s1��� ����*�A��M�M�'�.�.���s��"<�=�+r c�X>�UH#nTRTRU55 M% grQ)rRr_)rr�r�rs  ��rr�r��s"����A��M�M�'�.�.��"3�4�r zabc

r�z
abc)r�r�zabc
r%)r�r�r�rzabc

abcabc
abcabc)rF�getincrementalencoderr;�newlinesr
rHrjr_)r?r�r1r�r\r�rs `   @@r�check_newline_decoding�4IncrementalNewlineDecoderTest.check_newline_decoding�sC��������2�2�8�<�>�G�
>�
>�
�G�
5�	
����)�)�4�0���#�����)�)�4�0���!�����)�)�>�:���!�����)�)�>�:��������)�)�+?�@���!���������*A�B��
�
�������M�M�O��N�N�5�)�E��������.��6�����)�)�4�0r c�^�SnUHHnU=(a [R"U5"5nURUSS9nURX25 MJ [R"S5"5nURUSS9nUR	U5 UR[URS5 g)N)	NrWr/r�r�r�r�r�r�T��	translaterWr])rF�getincrementaldecoderrQr�r�r=r>rV)r?r�r!r�s    r�test_newline_decoder�2IncrementalNewlineDecoderTest.test_newline_decoder�s���
�	��C��A�f�:�:�3�?�A�G��4�4�W��4�M�G��'�'��5���.�.�w�7�9���0�0��D�0�I���(�(��1����)�W�%5�%5�r�:r c�r^�U4SjnTRSSS9nU"U5 TRSSS9nU"U5 g)Nc�2>�TRURS5 TRURS5S5 TRURS5 TRURS5S5 TRURS5 g)Nuഀu਀)r;r�r_)�decr?s �r�_check�@IncrementalNewlineDecoderTest.test_newline_bytes.<locals>._check�sq������S�\�\�4�0����S�Z�Z��1�8�<����S�\�\�4�0����S�Z�Z��1�8�<����S�\�\�4�0r Fr�T)rQ)r?r�r�s`  r�test_newline_bytes�0IncrementalNewlineDecoderTest.test_newline_bytes�sB���	1��,�,�T�U�,�C���s���,�,�T�T�,�B���s�r c�(�SH@n[R"S5"5nURX!5nURU5 MB [R"S5"5nURUSS9nUR	URS5S5 g)N)r�rr=r�rWrr�r�z

)rFr�rQr�r;r_)r?r�r�s   r�test_translate�,IncrementalNewlineDecoderTest.test_translate�s���'�I��2�2�7�;�=�G��4�4�W�H�G��,�,�W�5�(��.�.�w�7�9���0�0��A�0�F��������	�2�H�=r r#N)
r%r&r'r(r�r�r�r�r�r)r#r rr�r�Ys��(#�T1�B;�"�>r r�c�8�\rSrSr\R
S5rSrg)�CIncrementalNewlineDecoderTesti�c�R�URRUR5nUR[URS5 UR[UR
5 UR[URS5 UR[UR5 g)N�bar)r�r)rQr@r=r r_rRrVrH)r?�
uninitializeds  rrA�1CIncrementalNewlineDecoderTest.test_uninitialized�s}���6�6�>�>��*�*�,�
����*�m�&:�&:�F�C����*�m�&<�&<�=����*�m�&<�&<�k�J����*�m�&9�&9�:r r#N)r%r&r'r(rr4rAr)r#r rr�r��s�����;��;r r�c��\rSrSrSrg)�PyIncrementalNewlineDecoderTesti�r#Nr$r#r rr�r��r}r r�c�^�\rSrSrSrSrSrSrSrSr	Sr
\R"\
RS5\R"\"\S	5S
5S55rSrS
rSrSrSrSrSrSrSr\R"\"\S	5S
5S5rSr\R"\
RS5S5r\R"\
RS5S5r\R"\"\S5S5\R"\"\S	5S
5S55r Sr!Sr"Sr#Sr$S r%S!r&Sr'g)"�
MiscIOTesti�Nr#c�L�[R"[R5 grQr+r>s rr2�MiscIOTest.tearDown�r0r c��[R"XRURURUR
S9 g)N)�extra�not_exported)r�check__all__r��name_of_module�extra_exportedr�r>s r�test___all__�MiscIOTest.test___all__�s0�����T�7�7�D�,?�,?�#'�#6�#6�*.�*;�*;�	=r c�z�UR[RSSS9nURURS5 UR5 UR[RSSS9nURURS5 URURRS5 URURRRS5 URUR5SSS	9nURURS5 URURRS5 URURUR55 URURRUR55 UR5 UR5 g)
NrXrrYr0rWr0r�FrH)
r2r
r-r;r�r�r?rQr^r�)r?r5r�s   r�test_attributes�MiscIOTest.test_attributes�s-���I�I�i�&�&���I�:���������&�	���	��I�I�i�&�&��w�I�?��������D�1���������E�2���������*�*�E�2��I�I�a�h�h�j�$��I�6��������T�*���������T�*�������Q�X�X�Z�0���������Q�X�X�Z�0�	���	�	���	r c��SHfnUR[5nUR[RU5 SSS5 URS[
WR55 Mh g!,(df   N8=f)N)�U�rUzr+Uzinvalid mode)r=r r2r
r-r�r�r�)r?r�r�s   r�test_removed_u_mode�MiscIOTest.test_removed_u_modesS��&�D��"�"�:�.�"��	�	�)�*�*�D�1�/��M�M�.�#�b�l�l�*;�<�'�.�.�s�!A.�.
A<	rerfrgc�2�[R"5upUR[RU5 UR	USSS9nURUR5 [
RS:wa URUR55 gg)Nr�rWr0rO)	rjrfrrr�r2r�r�rord)r?r.rVr5s    r�test_open_pipe_with_append�%MiscIOTest.test_open_pipe_with_appendsn���w�w�y���������!�$��I�I�a��w�I�/�������� ��<�<�7�"����Q�Z�Z�\�*�#r c���SS0SS0SSS.SSS.SSS.SS0SS	0SSS.SSS.S	SS.SS
0SS0S
SS.S
SS.SSS.4GH8nSUS;aS
US'UR"[R40UD6nUR5 UR	[
UR5 UR	[
UR5 UR	[
UR5 UR	[
UR5 [US5(a!UR	[
URS5 UR	[
UR5 [US5(aAUR	[
URS5 UR	[
UR5 [US5(a UR	[
UR5 [US5(a*UR	[
UR[!S55 [US5(a*UR	[
UR"[!S55 UR	[
UR$5 UR	[
UR&5 UR	[
UR&S5 UR	[
UR(S5 UR	[
UR*5 UR	[
UR,5 UR	[
UR.SUS;aSOS5 UR	[
UR0/5 UR	[
[2U5 GM; g)Nr�rVrXr=�r�rZr�rr.r[r0r�r+rWr1rWr�r8r�rtrHr r)r2r
r-r�r=r r�r^r��__iter__r�rWr�r�r�rtr<rHr]r�rirmrwrTr^r�)r?rpr5s   r�test_io_after_close�MiscIOTest.test_io_after_closes�����
�����1�-��1�-��A�.���
�����1�-��1�-��A�.��������A�.��A�.��Q�/��F�"�&��.�(�%,��z�"��	�	�)�*�*�5�f�5�A�
�G�G�I����j�!�'�'�2����j�!�(�(�3����j�!�(�(�3����j�!�*�*�5��q�&�!�!��!�!�*�a�f�f�a�8����j�!�&�&�1��q�'�"�"��!�!�*�a�g�g�t�<��!�!�*�a�g�g�6��q�)�$�$��!�!�*�a�i�i�8��q�*�%�%��!�!�*�a�j�j�)�D�/�J��q�+�&�&��!�!�*�a�k�k�9�T�?�K����j�!�*�*�5����j�!�+�+�6����j�!�+�+�q�9����j�!�&�&�!�4����j�!�&�&�1����j�!�*�*�5����j�!�'�'�%(�F�6�N�%:�c��
D����j�!�,�,��;����j�$��2�]r c��"SS[5nU"S5nURSU5nX2lX#l[R
"U5nAA[R"5 URU"5U5 g)Nc��\rSrSrSrg)�*MiscIOTest.test_blockingioerror.<locals>.CiIr#Nr$r#r r�Cr�Ir�r r�rr=)	r�r%r+r�rUrVrrrW)r?r�r�r+rXs     r�test_blockingioerror�MiscIOTest.test_blockingioerrorGsc��	��	�
�b�E��� � ��A�&������
�[�[��^��
�q��������"�$��#r c�T�URUR[R5 URUR[R5 URUR
[R5 URUR[R5 grQ)r�r�r%�ABCMetar�r�r�r>s r�	test_abcs�MiscIOTest.test_abcsTsd�����d�k�k�3�;�;�7����d�n�n�c�k�k�:����d�1�1�3�;�;�?����d�o�o�s�{�{�;r c���UR[RSSS9nURX!R5 URX!R
5 UR
X!R5 UR
X!R5 SSS5 UR[RS5nURX!R5 UR
X!R
5 URX!R5 UR
X!R5 SSS5 UR[RSSS9nURX!R5 UR
X!R
5 UR
X!R5 URX!R5 SSS5 g!,(df   GN9=f!,(df   N�=f!,(df   g=f�NrXrrYrVrWr0)	r2r
r-r�r�r��assertNotIsInstancer�r�)r?�	abcmoduler5s   r�_check_abc_inheritance�!MiscIOTest._check_abc_inheritance[so��
�Y�Y�y�'�'���Y�
;�q��!�!�!�%5�%5�6��!�!�!�%8�%8�9��$�$�Q�(@�(@�A��$�$�Q�(<�(<�=�	<�
�Y�Y�y�'�'��
.�!��!�!�!�%5�%5�6��$�$�Q�(;�(;�<��!�!�!�%=�%=�>��$�$�Q�(<�(<�=�	/�
�Y�Y�y�'�'��w�Y�
?�1��!�!�!�%5�%5�6��$�$�Q�(;�(;�<��$�$�Q�(@�(@�A��!�!�!�%9�%9�:�	@�
?�<�
;��
/�
.��
@�
?�s&�A-F?�5A-G�	A-G"�?
G�
G�"
G0c�&�URU5 grQ)r	r>s r�test_abc_inheritance�MiscIOTest.test_abc_inheritancels���#�#�D�)r c�.�UR[5 grQ)r	r�r>s r�test_abc_inheritance_official�(MiscIOTest.test_abc_inheritance_officialps��	
�#�#�B�'r c�.�UR"U0UD6n[U5nUR[5nSn[R
"5 SSS5 UR
U[WRRS55 g!,(df   NA=frG)
r2r��assertWarnsrrrr�r��warningr�)r?r�rpr5r.r�s      r�_check_warn_on_dealloc�!MiscIOTest._check_warn_on_deallocuso���I�I�t�&�v�&����G��
�
�
�o�
.�"��A���� �/�	
�
�
�a��R�Z�Z�_�_�Q�/�0�1�/�
.�s�B�
Bc��UR[RSSS9 UR[RS5 UR[RSSS9 gr	)r	r
r-r>s r�test_warn_on_dealloc�MiscIOTest.test_warn_on_dealloc}sN���#�#�I�$4�$4�d�a�#�H��#�#�I�$4�$4�d�;��#�#�I�$4�$4�c�G�#�Lr c�h^�/mU4SjnURU5 [R"5upETXE4-
mUR"U/UQ70UD6 [R"5upETXE4-
m[R
"U5 UR"U/UQ7SS0UD6 SSS5 g!,(df   g=f)Nc�>�THn[R"U5 M g![a*nUR[R:waeSnAMNSnAff=frQ)rjr�r�r�r�)rvr��fdss  �r�cleanup_fds�9MiscIOTest._check_warn_on_dealloc_fd.<locals>.cleanup_fds�sG�������H�H�R�L������w�w�%�+�+�-��.���s�#�
A�A�ArBF)rrrjrfr	rr�r2)r?r�rpr	r.rVr	s      @r�_check_warn_on_dealloc_fd�$MiscIOTest._check_warn_on_dealloc_fd�s������	�	
����$��w�w�y����q�t����#�#�A�7��7��7��w�w�y����q�t���
�
6�
6�t�
<��I�I�a�8�$�8��8��8�=�
<�
<�s�B#�#
B1c�f�URSSS9 URS5 URSSS9 g)Nr[rrYr.rWr0)r	r>s r�test_warn_on_dealloc_fd�"MiscIOTest.test_warn_on_dealloc_fd�s6���&�&�t�q�&�9��&�&�t�,��&�&�s�W�&�=r c��SnSS0SS0SSS.SS0SS0SSS.SS	0SS
0S
SS.4	H�nSUS;aSUS
'[[RS-5HznURX2S9 UR"[
R40UD6nUR[U5 [R"XC5 SSS5 SSS5 SSS5 M| M� g!,(df   N'=f!,(df   N0=f!,(df   M�=f)Nz
cannot pickler�rVrXrr�r.r[r0r�r+rWr1r=)rrp)
r<rrr�r2r
r-r�r>r)r?rxrprr5s     r�
test_pickling�MiscIOTest.test_pickling�s�������
�����A�.���
�����A�.��������Q�/�
�F��&��.�(�%,��z�"�!�&�"9�"9�A�"=�>���\�\�8�\�C����9�#3�#3�>�v�>�!�!�3�3�I�s�C�"�L�L��5�D�?�D�C�?�
� D�C��?�>��D�C�s<�""C5�C$	�C�2C$	�:C5�
C!�C$	�$
C2
�.C5�5
Dc�&�URS5 g)Ni@��_test_nonblock_pipe_writer>s r�test_nonblock_pipe_write_bigbuf�*MiscIOTest.test_nonblock_pipe_write_bigbuf�s��	
�&�&�w�/r c�&�URS5 g)Nr8r#	r>s r�!test_nonblock_pipe_write_smallbuf�,MiscIOTest.test_nonblock_pipe_write_smallbuf�s��	
�&�&�t�,r �set_blockingz(os.set_blocking() required for this testc��/n/n[R"5upE[R"US5 [R"US5 URUSSUS9nURUSSUS9nU U SHCnSn	[	U	S-S	-/5U-n
URU
5 UR
U
5 U	S
-
n	M> UR5 U[URS5-
nSSS5 SSS5 SR!U5SR!U5p2URX#5 UR#UR$5 UR#UR$5 g!URa�nURURS[R5 URURSUR5 USSURUS'URUR55 S
n
UR
U
5 URU
5 SnAGM�SnAff=f!URa�nURURS[R5 URURSUR5 URURS5 URUR55 SnAOSnAff=fGM"!,(df   GN�=f!,(df   GN=f)NFr[T)r�rBrZrX)r��Ii�r��ar=r�rsBLOCKEDr )rjrfr*	r2rrRrTr%r;r�r��EAGAINrr�r��iterr
rnr�)r?r��sent�receivedr.rV�rf�wfr�r8rxr�s            rr$	�$MiscIOTest._test_nonblock_pipe_write�sg�������w�w�y���
����5�!�
����5�!��Y�Y�q�t�T�W�Y�
E��
�Y�Y�q�t�T�W�Y�
E��
��#��%��A��#�Q��V�b�[�M�2�Q�6�����C�(�����
��Q���	�$�$�/��H�H�J��
��R�W�W�d�+�+�H�;�R�>���$�����(�);�h�����(�����	�	�"�����	�	�"��1�+�+�%��$�$�Q�V�V�A�Y����=��$�$�Q�V�V�A�Y��0D�0D�E�#�B�x�(=��)=�)=�>�D��H��O�O�B�G�G�I�.�$�C��H�H�S�M��K�K��$�$��%���+�+�/��$�$�Q�V�V�A�Y����=��$�$�Q�V�V�A�Y��0D�0D�E��$�$�Q�%9�%9�1�=��O�O�B�G�G�I�.�.��	/��	�'���R�R�s{�0K2�3K �:AE"�;K �?H/�K �)K2�"H,	�2B.H'	� K �'H,	�,K �/K�?BK�K �K�K � 
K/	�*K2�2
Lc���UR[RSSS9 SSS5 UR[UR[RSSS9 g!,(df   N>=f)NrVrWr0r%)r2r
r-r=�FileExistsErrorr>s r�test_create_fail�MiscIOTest.test_create_fail�sQ��
�Y�Y�y�'�'��w�Y�
?��@����/�4�9�9�i�6F�6F��V]��^�@�
?�s�A�
A(c�N�UR[RS5nURS5 SSS5 UR[RS5nUR	SUR55 SSS5 g!,(df   NX=f!,(df   g=f)N�xbrGr[r3rRs  r�test_create_writes�MiscIOTest.test_create_writes�sm��
�Y�Y�y�'�'��
.�!�
�G�G�G��/�
�Y�Y�y�'�'��
.�!����W�a�f�f�h�/�/�
.�/�
.��
.�
.�r6c�b�UR[UR[RSSS9 g)Nzrwax+rWr0rCr>s r�test_open_allargs�MiscIOTest.test_open_allargss&�����*�d�i�i��1A�1A�7�U\��]r c��URRn[nSn[R"SUSU<SU<SU<SU<SU<SU<S	U<S
35n[SSS
U5nUR
URSU5 g)NzBoom, Shaka Laka, Boom!z)
            import sys
            from zC import open, TextIOWrapper

            try:
                open(z, encoding=z�)
            except LookupError:
                pass
            else:
                sys.exit(21)

            try:
                open(z	, errors=z})
            except LookupError:
                pass
            else:
                sys.exit(22)

            fp = open(za, "rb")
            with fp:
                try:
                    TextIOWrapper(fp, encoding=z�)
                except LookupError:
                    pass
                else:
                    sys.exit(23)

                try:
                    TextIOWrapper(fp, errors=z�)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

            sys.exit(10)
        �-X�devrrG)r�r%r3�textwrap�dedentr	r;r)r?�modr�r�r�procs      r�test_check_encoding_errors�%MiscIOTest.test_check_encoding_errorss����g�g������+�����$�����\��W�K�8��\��7�+�6� �l�#0�18�{�;.�/6�[�9	�9# �#
��H%�T�5�$��=��������"�d�+r c	��URRn[n[R"SUSU<SU<S35n[SSSU5nURR5nUR[U5S5 URUS	RS
55 URUSRS55 g)
Nz(            import sys
            from zN import open, TextIOWrapper
            import pathlib

            with open(zJ) as f:           # line 5
                pass

            pathlib.Path(z ).read_text()  # line 8
        rB	�warn_default_encodingrr�rs<string>:5: EncodingWarning: r=s<string>:8: EncodingWarning: )r�r%r3rD	rE	rr�r�r;rrnr�)r?rF	r�rrG	r�s      r�test_check_encoding_warning�&MiscIOTest.test_check_encoding_warning1s����g�g���������$���� �l�#�#��&	�	 �	
�� ��&=�t�T�J���8�8�&�&�(������X���*�����Q�K�"�"�#C�D�	F�����Q�K�"�"�#C�D�	Fr c���Sn[SSSU5nURSURR55 [SSSU5nURSURR55 g)Nz(import io; print(io.text_encoding(None))rB	zutf8=0rslocalezutf8=1sutf-8)rr;rr)r?rrG	s   r�test_text_encoding�MiscIOTest.test_text_encodingHs_��:����h��d�;������D�H�H�N�N�$4�5���h��d�;������4�8�8�>�>�#3�4r )(r%r&r'r(r�r�r�r2r�r�r�r<r=rr>r?r�rjr�r�r�r�r	r	r	r	r	r	r	r 	r%	r(	r$	r8	r<	r?	rH	rL	rO	r)r#r rr�r��s����N��N��L�+�=�
�$=��_�_����F�������V�,�.B�C�	+�D��	+�/3�b$�<�;�"*�(�
2�M�
9�&�����V�,�.B�C�>�D�>�6�,�_�_����F��0��0��_�_����F��-��-������^�4�C�E�
�����V�,�.B�C�0#�D�E�0#�d_�0�^�+,�ZF�.	5r r�c���\rSrSr\rSrSrSrSr\	R"5\R"S5S55r
\	R"5\R"S5S55rS	rg
)�CMiscIOTestiT)r�rN)r%c��"SSURR5nU"5n[S5nUR[UR
U5 g)Nc��\rSrSrSSjrSrg)�<CMiscIOTest.test_readinto_buffer_overflow.<locals>.BadReaderi[c��SS-$)NrFi@Br#r�s  rr��ACMiscIOTest.test_readinto_buffer_overflow.<locals>.BadReader.read\s���e�|�#r r#Nr�r�r#r r�	BadReaderrU	[s��
$r rX	r�)r�r�r<r=r rt)r?rX	r�r+s    r�test_readinto_buffer_overflow�)CMiscIOTest.test_readinto_buffer_overflowYs@��	$����.�.�	$�����a�L�����*�e�n�n�a�8r c�<�SR[55n[SU5up4URR	5nUR
S:wa+SR[55nUR
XV5 gURURS55 g)Na�if 1:
            import sys
            import time
            import threading
            from test.support import SuppressCrashReport

            file = sys.{stream_name}

            def run():
                while True:
                    file.write('.')
                    file.flush()

            crash = SuppressCrashReport()
            crash.__enter__()
            # don't call __exit__(): the crash occurs at Python shutdown

            thread = threading.Thread(target=run)
            thread.daemon = True
            thread.start()

            time.sleep(0.5)
            file.write('!')
            file.flush()
            rrz�Fatal Python error: _enter_buffered_busy: could not acquire lock for <(_io\.)?BufferedWriter name='<{stream_name}>'> at interpreter shutdown, possibly due to daemon threadsz.!)	�
format_map�localsr
r�r_rr�ror)r?�stream_namerr�r(r��patterns       r�&check_daemon_threads_shutdown_deadlock�2CMiscIOTest.check_daemon_threads_shutdown_deadlockbs����0�
�6�8�$�1	
�2&�d�D�1����g�g�n�n����6�6�Q�;�)�*4��F�H�)=�	
�

���S�*����S�Y�Y�t�_�-r �walltimec�&�URS5 g)N�stdout�r`	r>s r�,test_daemon_threads_shutdown_stdout_deadlock�8CMiscIOTest.test_daemon_threads_shutdown_stdout_deadlock����	
�3�3�H�=r c�&�URS5 g)N�stderrre	r>s r�,test_daemon_threads_shutdown_stderr_deadlock�8CMiscIOTest.test_daemon_threads_shutdown_stderr_deadlock�rh	r r#N)r%r&r'r(r�r�r�rY	r`	rr@rr�rf	rk	r)r#r rrR	rR	Ts|��	�B� �N�'�N�9�'.�R�0�0�2����z�*�>�+�3�>��0�0�2����z�*�>�+�3�>r rR	c�$�\rSrSr\rSrSrSrSr	g)�PyMiscIOTesti�)�_pyior�)r%�	open_code)�valid_seek_flagsr#N)
r%r&r'r(r�r�r�r�r�r)r#r rrn	rn	�s��	
�B�"�N�4�N�&�Lr rn	�ntz%POSIX signals required for this test.c�B�\rSrSrSrSrSrSr\\	R"\"\S5S5S55r
\\	R"\"\S5S5S	55r\\	R"\"\S5S5S
55r\R"S5r\S5r\S
5rSr\\R,"S5S55r\\R,"S5S55rSr\\R,"S5S55r\\R,"S5S55rSrg)�SignalsTesti�c�l�[R"[RUR5UlgrQ)�signal�SIGALRM�alarm_interrupt�oldalrmr>s rr.�SignalsTest.setUp�s���}�}�V�^�^�T�5I�5I�J��r c�b�[R"[RUR5 grQ)rv	rw	ry	r>s rr2�SignalsTest.tearDown�s���
�
�f�n�n�d�l�l�3r c��SS- gr<r#)r?�sig�frames   rrx	�SignalsTest.alarm_interrupt�rBr c��^
^�[R"5 /mU
U4Sjn[R"US9nSUl[
R"5um
nSUS'U[R[U5-S--nURR"U40UD6n[[S5(ay[R"[R[R/5 UR!5 [R"[R"[R/5 OUR!5 [R$"S5 UR'[(UR*U5 [R$"S5 UR-5 TR/[
R0"T
S55 UR3TUSSUSS	/5 [
R4"U5 [
R4"T
5 UR55 g
![R$"S5 UR-5 f=f![6a)n	U	R8[8R::waeS
n	A	g
S
n	A	ff=f![
R4"U5 [
R4"T
5 WR55 f![6a)n	U	R8[8R::waeS
n	A	fS
n	A	ff=f=f)z�Check that a partial write, when it gets interrupted, properly
invokes the signal handler, and bubbles up the exception raised
in the latter.c�V>�[R"TS5nTRU5 gr�)rjr�rR)rr.�read_resultss ��rr�2SignalsTest.check_interrupted_write.<locals>._read�s �������1�
�A�����"r r�TFrBr=�pthread_sigmaskrr�N)rrr�rs�daemonrjrf�
PIPE_MAX_SIZErr�r2r�rv	r�	�	SIG_BLOCKrw	rt�SIG_UNBLOCKr7r=r�rTr
rRr�r;r�r�r�r�)r?�itemr�
fdopen_kwargsrrKrV�
large_data�wior�r.r�	s          @@r�check_interrupted_write�#SignalsTest.check_interrupted_write�s���6	������	#�
���E�*������w�w�y���1�#(�
�i� ��W�2�2�c�$�i�?�!�C�D�
�$	��'�'�,�,�q�2�M�2�C��v�0�1�1��&�&�v�'7�'7�&�.�.�9I�J����	��&�&�v�'9�'9�F�N�N�;K�L����	�
�L�L��O�
��!�!�"3�S�Y�Y�
�K����Q������
�������1�
�.����\�E�!�A�J��a��
�+C�D��H�H�Q�K��H�H�Q�K�
��	�	������Q��������
��7�7�e�k�k�)��*��
��
�H�H�Q�K��H�H�Q�K�
��	�	����
��7�7�e�k�k�)��*��
�sh�<CI4�!H�/A&I4�H>�(H;�;I4�>
I1�I,�,I1�4-K)�"J3�2K)�3
K&�=K!�K)�!K&�&K)rfrgc�(�URSSSSS9 g)Nr�rXrr��r�	r>s r�!test_interrupted_write_unbuffered�-SignalsTest.test_interrupted_write_unbuffered�s��	
�$�$�U�E���$�Jr c�&�URSSSS9 g�Nr�rX�r�r�	r>s r�test_interrupted_write_buffered�+SignalsTest.test_interrupted_write_buffered�s��	
�$�$�U�E��$�=r c�(�URSSSSS9 g)N�xyr�rVr��r�r1r�	r>s r�test_interrupted_write_text�'SignalsTest.test_interrupted_write_texts��	
�$�$�T�5�s�W�$�Mr c�^^	�UU	4Sjn[R"[RU5 [R"5upEURR
"U40UD6m	[R"S5 UR[[45n[S5H$nT	RT5 T	R5 M& [R"U[T5S-5 MX!,(df   O=fWRn[!U[5(a3UR#[%U5R'S5[%U55 [R"S5 T	R)5 [R("U5 g![R"S5 T	R)5 [R("U5 f=f)Nc�2>�TRT5 SS- gr<)rT)r�rr�	s ��r�on_alarm�3SignalsTest.check_reentrant_write.<locals>.on_alarms����I�I�d�O�
�a�Cr r=rozreentrant callr)rv	rw	rjrfr�r2r7r=r�r�r<rTr�r�rr�r�rnr�r�r�)
r?rr�	r�	r.rVr�r8rar�	s
 `       @r�check_reentrant_write�!SignalsTest.check_reentrant_writes0���	�	�
�
�f�n�n�h�/��w�w�y����g�g�l�l�1�.�
�.��	��L�L��O��"�"�$5�|�#D�E���"�3�Z���	�	�$���	�	��(��G�G�A�s�4�y�3��/��F�E���,�,�C��#�|�,�,�����C�� 3� 3�4D� E�s�3�x�P��L�L��O��I�I�K��H�H�Q�K��
�L�L��O��I�I�K��H�H�Q�K�s �$1F�AC/�/
C=�9AF�>Gc�$�URSSS9 gr�	�r�	r>s r�test_reentrant_write_buffered�)SignalsTest.test_reentrant_write_buffered!s���"�"�5�t�"�4r c�&�URSSSS9 g)Nr�	rVr�r�	r�	r>s r�test_reentrant_write_text�%SignalsTest.test_reentrant_write_text%s���"�"�4�c�G�"�Dr c��^�[R"5unmSUS'U4Sjn[R"[RU5 URR
"U40UD6n[R"TS5 [R"S5 URU"URS55S5 [R"S5 UR5 [R"T5 [R"U5 g	![R"S5 WR5 [R"T5 [R"U5 f=f)
z�Check that a buffered read, when it gets interrupted (either
returning a partial result or EINTR), properly invokes the signal
handler and retries if the latter returned successfully.FrBc�4>�[R"TS5 g)Nr�)rjrT)r~	r	rVs  �r�
alarm_handler�?SignalsTest.check_interrupted_read_retry.<locals>.alarm_handler/s����H�H�Q��r r�r=r5�foobarrN)rjrfrv	rw	r�r2rTr7r;r�r�)r?r_r�	r.r�	�riorVs      @r�check_interrupted_read_retry�(SignalsTest.check_interrupted_read_retry)s�����w�w�y���1�#(�
�i� �	 ��
�
�f�n�n�m�4�
	��'�'�,�,�q�2�M�2�C��H�H�Q����L�L��O�

���V�C�H�H�Q�K�0�(�;��L�L��O��I�I�K��H�H�Q�K��H�H�Q�K��
�L�L��O��I�I�K��H�H�Q�K��H�H�Q�K�s�A1D�AE#rb	c�&�URSSS9 g)Nc�$�URS5$)Nrq)r_r0s rrk�BSignalsTest.test_interrupted_read_retry_buffered.<locals>.<lambda>Ds
��A�H�H�X�4Fr r[r�	�r�	r>s r�$test_interrupted_read_retry_buffered�0SignalsTest.test_interrupted_read_retry_bufferedAs��	
�)�)�*F�/3�	*�	5r c�(�URSSSS9 g)Nc��U$rQr#r0s rrk�>SignalsTest.test_interrupted_read_retry_text.<locals>.<lambda>Js��Ar r.rqr�	r�	r>s r� test_interrupted_read_retry_text�,SignalsTest.test_interrupted_read_retry_textGs��	
�)�)�+�/2�X�	*�	Gr c��^^^
^^^^�[R"S5m[Rn[R
"5um
nSUS'/mSmSmUU
UUU4Sjn[R"US9mSTlU4SjnU4S	jmX-n[R"[RU5 URR"U40UD6n[R"S
5 URU5n	URX95 UR!5 SmTR#5 UR%T5 URU['ST555 [R"S5 Sm[R("U5 [R("T
5 UR)5 g![*a)n
U
R,[,R.:waeSn
A
gSn
A
ff=f![R"S5 Sm[R("U5 [R("T
5 WR)5 f![*a)n
U
R,[,R.:waeSn
A
fSn
A
ff=f=f)
z�Check that a buffered write, when it gets interrupted (either
returning a partial result or EINTR), properly invokes the signal
handler and retries if the latter returned successfully.�selectFrBNc� >�T(dlTTRT///S5S;aF[R"TS5nTRU5 TTRT///S5S;aMFT(dMkgg![anUmSnAgSnAff=f)Ng�?rr8)r�	rjr�rR�
BaseException)rra�errorr.r�	r�	�write_finisheds  �����rr�8SignalsTest.check_interrupted_write_retry.<locals>._read_s����
�(��v�}�}�a�S�"�b�#�>�q�A�A��G�G�A�t�,��$�+�+�A�.��v�}�}�a�S�"�b�#�>�q�A�A�)�.��!�
����
�s�A'A7�,A7�7
B
�B�B
r�Tc�|>�[R"[RT5 [R"S5 gr�)rv	rw	r7)r~	r	�alarm2s  �r�alarm1�9SignalsTest.check_interrupted_write_retry.<locals>.alarm1js ����M�M�&�.�.�&�1��L�L��Or c�&>�TR5 grQ)rt)r~	r	rKs  �rr�	�9SignalsTest.check_interrupted_write_retry.<locals>.alarm2ms���
�G�G�Ir r=c3�8# �UHn[U5v� M g7frQ)r)�.0r%s  r�	<genexpr>�<SignalsTest.check_interrupted_write_retry.<locals>.<genexpr>�s���#A�L�q�C��F�F�L�s�r)rrPrr�	rjrfr�rsr�	rv	rw	r�r2r7rTr;r�r
rW�sumr�r�r�r�)r?r�	r�	r�rVrr�	r�	r�	rr�r�	r�	r.r�	r�	rKr�	s           @@@@@@@r�check_interrupted_write_retry�)SignalsTest.check_interrupted_write_retryMs�����,�,�X�6��
�!�!���w�w�y���1�#(�
�i� �
������	�	�
���E�*�����	�	��X�
��
�
�f�n�n�f�-�	��'�'�,�,�q�2�M�2�C��L�L��O��i�i�
�+�G����Q�(��I�I�K�!�N�
�F�F�H����e�$����Q��#A�L�#A� A�B��L�L��O�!�N��H�H�Q�K��H�H�Q�K�
��	�	����
��7�7�e�k�k�)��*��
��
�L�L��O�!�N��H�H�Q�K��H�H�Q�K�
��	�	����
��7�7�e�k�k�)��*��
�sP�,B*G"�F,�,
G�6G�G�"AI/�(H9�8I/�9
I,�I'�"I/�'I,�,I/c�$�URSSS9 g)NrFrXr�	�r�	r>s r�%test_interrupted_write_retry_buffered�1SignalsTest.test_interrupted_write_retry_buffered�s��	
�*�*�4�d�*�;r c�&�URSSSS9 g)Nr%rVrqr�	r�	r>s r�!test_interrupted_write_retry_text�-SignalsTest.test_interrupted_write_retry_text�s��	
�*�*�3�S�8�*�Lr )ry	N)r%r&r'r(r.r2rx	r�	�requires_alarmr<r?r�rjr�	r�	r�	rrmr�	r�	r�	r�	r�r�	r�	r�	r�	r�	r)r#r rrt	rt	�s���K�4��K�Z�
�����V�,�.B�C�K�D��K��
�����V�,�.B�C�>�D��>��
�����V�,�.B�C�N�D��N�
������6�5��5��E��E��0����z�*�5�+��5�����z�*�G�+��G�B�H����z�*�<�+��<�����z�*�M�+��Mr rt	c��\rSrSr\rSrg)�CSignalsTesti�r#N)r%r&r'r(r�r)r#r rr�	r�	�s��	�Br r�	c� �\rSrSr\rSrSrSrg)�
PySignalsTesti�Nr#)	r%r&r'r(r�r�r�	r�	r)r#r rr�	r�	�s��	
�B�%)�!� $�r r�	c�,^�[[[[[[
[[[[[[[[[[[ ["[$[&[(4n[*[,[.[0[2[4[6[8[:4	n[<R>nUVs0sHoU[A[<U5_M nnUVs0sHoU[A[BU5_M nn[E5mURGU4SjU55 URGU4SjU55 UH�nURHRKS5(a.URM5HupY[OX�U	5 M SUl(MQURHRKS5(dMsURM5HupY[OX�U	5 M SUl(M� URS5n
UH#nU
RUURWU55 M% U
$s snfs snf)Nc3�^># �UH"oRTSUR-4v� M$ g7f)r�N�r%�r�	r%�globss  �rr�	�load_tests.<locals>.<genexpr>�s&����H�%�Q�J�J��c�A�J�J�&6� 7�8�%���*-c3�^># �UH"oRTSUR-4v� M$ g7f)�PyNr�	r�	s  �rr�	r�	�s&����J�E�q�Z�Z��t�a�j�j�'8�!9�:�E�r�	r�Tr�	F),rBr�r�r�r�rOrWr�r�r<rBrtr�r�r{r�rR	rn	r�	r�	rLr�r�r�r�rr�rDr�r�r��__all__r�r��globalsr�r%r�rg�setattrr��
suiteClass�addTest�loadTestsFromTestCase)�loaderr�r_	�mocks�all_membersr��c_io_ns�py_io_nsr�r�suiter�	s           @r�
load_testsr�	�s����
�h��
 �"6�
 �"6�
 �"6�
 �"6�
+�
+�-L�
�!4�
�,�
�=�,�

�E����^�
!�#3�5I�
�4�
6�E��*�*�K�4?�@�K�D�g�b�$�'�'�K�G�@�7B�C�{�t�w�t�T�*�*�{�H�C��I�E��N�N�H�%�H�H��O�O�J�E�J�J����=�=�#�#�C�(�(�$�]�]�_�	����C�(�-��D�I�
�]�]�
%�
%�d�
+�
+�%�^�^�-�	����C�(�.��D�I��
����E���
�
�
�f�2�2�4�8�9���L��%A��Cs�0H�H�__main__){ryr%r,r�r�rjrr�rv	r�rD	r�r�r<r�rU�collectionsrr�	itertoolsrrr�r�test.support.script_helperrr	r
�test.supportrrr
rr�test.support.os_helperrrFr�ro	r�rr�	Structurer�ImportErrorr6r?r�r�	r9rDr�r{rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr$r'�TestCaser)rBr4rLr�r�r�r&r6r�r�r�rOrWrYr�r�r�r<rBrGrDrrrtr|rr r{r�r�r�r�r�rR	rn	r=r�rt	r�	r�	r�	r%�mainr#r r�<module>r�	s#��#�*���
�	�
�
�
�
�������'�"��C�C���,�
�	��
��
�
�f�&�&�
��
�$�$��F�G��<���
��6�6�p	�0�"�,�,�	�	�1�4�>�>�	��$��	��B�L�L�	�	�)�T�^�^�	��i��"	�����	�	�����	��Y��	�n�b�l�l�	�	�~�t�~�~�	��Y��	�n�b�l�l�	�	�~�t�~�~�	��� 	�*�b�j�j�	�	�:�t�|�|�	�8�8�3�(�"�*�*�3�5�)�4�<�<�5��j��	�6��
�
�	�	� 7����	�.�.�`)�0�"�,�,�)�+�1�4�>�>�+�n5�X�
�
�n5�b$�f�$�(	���e-�8�$�$�e-��e-�N	�v�	�	���h�h�'�'�h��h�{�{�|5�5�,L6��*�*�,?�L6�^
4A�,�j�4A�n�-��d��*�*�,?�d�P	!6�,�j�!6�H�-��N��*�*�N�`�,���-��|&�+�-?�|&�~
6�,�j�
6��-��I��!:�!:�I�\;�)4�X�%6�%6�)4�VX��)�)�X�v&2�R�Z�Z�2��q�*�q�h<�+�<�
s>�H�$5�$5�s>�j;�%B�;�	�&C�	�r5��"�"�r5�j?>�*�?>�D'�:�'�
������D��"I�J�{M�(�#�#�{M�K�{M�|�;��%�K�%�%�N�z���M�M�O���u\�3�3�3�s�T
�
	T�T

Youez - 2016 - github.com/yon3zu
LinuXploit