Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_fileio.cpython-311.opt-1.pyc
�

�Ke�O���ddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZmZm
Z
mZmZddlmZmZmZmZddlmZddlmZddlZddlZGd	�d
��ZGd�deej��ZGd
�deej��ZGd�d��ZGd�deej��Z Gd�deej��Z!d�Z"e#dkrej$��dSdS)�N)�array)�proxy��wraps)�cpython_only�	swap_attr�
gc_collect�
is_emscripten�is_wasi)�TESTFN�TESTFN_ASCII�TESTFN_UNICODE�make_bad_fd)�check_warnings)�UserListc�*�eZdZd�Zd�Zd�Zd�Zd�Zej	e
d��d���Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej	ejdkd��d���Zd�Zd�Zed���Zed���Z ed���Z!ed���Z"ed���Z#ed ���Z$ed!���Z%ed"���Z&ed#���Z'ed$���Z(d%�Z)ed&���Z*ed'���Z+ed(���Z,d)S)*�
AutoFileTestsc�F�|�td��|_dS�N�w)�FileIOr�f��selfs �:/usr/local/apps/python3/lib/python3.11/test/test_fileio.py�setUpzAutoFileTests.setUps�����V�S�)�)�����c�x�|jr|j���tjt��dS�N)r�close�os�removerrs r�tearDownzAutoFileTests.tearDowns1���6�	��F�L�L�N�N�N�
�	�&�����rc��t|j��}|�tt	d������|�|j���|�����|j���d|_t��|�	tt|d��dS)N�
�tell)rr�write�bytes�range�assertEqualr&r r	�assertRaises�ReferenceError�getattr)r�ps  r�testWeakRefszAutoFileTests.testWeakRefs$s����$�&�M�M��	����e�B�i�i� � �!�!�!���������������1�1�1������������������.�'�1�f�=�=�=�=�=rc��|j�ttd������|�|j���d��|j�d��|�|j���d��|j�d��|�|j���d��|j�dd��|�|j���d��|j�dd��|�|j���d��|j�dd��|�|j���d��dS)	N�rr%�������)rr'r(r)r*r&�seekrs r�testSeekTellzAutoFileTests.testSeekTell.sN������U�5��9�9�%�%�&�&�&�����������+�+�+�����A��������������*�*�*�����B��������������+�+�+�����A�q��������������+�+�+�����B���������������+�+�+�����B���������������+�+�+�+�+rc���|j}|�|jd��|�|jd��dD],}|�t
tft||d���-dS)N�wbF)�mode�closed�oops)rr*r;r<r+�AttributeError�	TypeError�setattr)rr�attrs   r�testAttributeszAutoFileTests.testAttributes<s����F��������&�&�&������5�)�)�)�%�	8�	8�D����~�y�9�%�q�$��
8�
8�
8�
8�	8�	8rz WASI does not expose st_blksize.c��tj}ttd��r<tj|j�����}t|d|��}|�|jj	|��dS)N�fstat�
st_blksize)
�io�DEFAULT_BUFFER_SIZE�hasattrr!rDr�filenor-r*�_blksize)r�blksize�fsts   r�testBlksizezAutoFileTests.testBlksizeHsh���(���2�w���	:��(�4�6�=�=�?�?�+�+�C��c�<��9�9�G�������'�2�2�2�2�2rc��|j�tgd�����|j���t	d��}|�td��5}|�|��}ddd��n#1swxYwY|�|d��|�|d��dS)N�r3r6r��abcdefgh�r��efgh�)	rr'r(r �	bytearrayrr�readintor*)r�bar�ns    r�testReadintoByteArrayz#AutoFileTests.testReadintoByteArraySs�������U�>�>�>�*�*�+�+�+��������
�{�
#�
#��
�[�[���
%�
%�	���
�
�2���A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����4�5�5�5�����A�����s�-B�B�Bc��|j�tgd�����|j���t	td����}|�td��5}|�|��}ddd��n#1swxYwY|�	|d��|�	|d��t	td�����
dddg���}|�td��5}|�|��}ddd��n#1swxYwY|�	t|��d��|�	|d��dS)	NrOrQrRrSrT�Hr6)�shape)rr'r(r �
memoryviewrUrrrVr*�cast)r�mrrXs    r�_testReadintoMemoryviewz%AutoFileTests._testReadintoMemoryview]s�������U�>�>�>�*�*�+�+�+���������y��-�-�.�.��
�[�[���
%�
%�	���
�
�1�
�
�A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����3�4�4�4�����A�����y��-�-�.�.�3�3�C��1�v�3�F�F��
�[�[���
%�
%�	���
�
�1�
�
�A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����q���#:�;�;�;�����A�����s$�:B�B �#B �!E�E�
Ec��|j�tgd�����|j���t	dd��}|�td��5}|�|��}ddd��n#1swxYwY|�|t	dgd�����|�|d��t	dd��}|�td��5}|�|��}ddd��n#1swxYwY|�|t	dgd�����|�|d��t	d	d��}|�td��5}|�|��}ddd��n#1swxYwY|�|t	d	d
����|�|d��dS)NrO�BrQrR)r3r6rrP�e�f�g�hrT�b)r3r6r���rcrdrerf�IrS)	rr'r(r rrrrVr*)r�arrXs    r�_testReadintoArrayz AutoFileTests._testReadintoArraymst������U�>�>�>�*�*�+�+�+���������#�{�#�#��
�[�[���
%�
%�	���
�
�1�
�
�A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����E�#�'I�'I�'I�J�J�K�K�K�����A�����#�{�#�#��
�[�[���
%�
%�	���
�
�1�
�
�A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����E�#�'H�'H�'H�I�I�J�J�J�����A�����#�{�#�#��
�[�[���
%�
%�	���
�
�1�
�
�A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����E�#�'>�?�?�@�@�@�����A�����s6�.B�B�B�D$�$D(�+D(�F8�8F<�?F<c��ddg}|j�|��|j���|�td��|_|j���}|�|d��dS�Ns123s456�rbs123456)r�
writelinesr rr�readr*�r�l�bufs   r�testWritelinesListz AutoFileTests.testWritelinesList�sq��
�V�������!��������������V�T�*�*����f�k�k�m�m������i�(�(�(�(�(rc�,�tddg��}|j�|��|j���|�t
d��|_|j���}|�|d��dSrm)rrror rrrpr*rqs   r�testWritelinesUserListz$AutoFileTests.testWritelinesUserList�sy���f�f�%�&�&������!��������������V�T�*�*����f�k�k�m�m������i�(�(�(�(�(rc���|�t|jjgd���|�t|jjd��|�t|jjd��dS)N)r3r6��abc)r+r?rrors r�testWritelinesErrorz!AutoFileTests.testWritelinesError�sc�����)�T�V�%6�	�	�	�B�B�B����)�T�V�%6��=�=�=����)�T�V�%6��>�>�>�>�>rc��|j�d��|j���|�td��|_|�|j�d��d��|j�d��|�|j�d��d��|�|j�	d��ddg��dS)Ns
hi
bye
abcrRrshi
sbye
�abc)
rr'r rrr*rpr7�readline�	readlinesrs r�test_none_argszAutoFileTests.test_none_args�s�������_�%�%�%�����������V�S�)�)����������T�*�*�O�<�<�<�����A������������.�.��8�8�8������)�)�$�/�/�(�F�1C�D�D�D�D�Drc�R�|�t|jjd��dS)NzHello!)r+r?rr'rs r�test_rejectzAutoFileTests.test_reject�s$�����)�T�V�\�8�<�<�<�<�<rc
���|�t|j��d|j�d|jj�d|jj�d���|j`|�t|j��d|j�d|j����d|jj�d���|j���|�t|j��d|j�d���dS)N�<�
.FileIO name=� mode=z closefd=True>z.FileIO fd=z.FileIO [closed]>)r*�reprr�
modulename�namer;rIr rs r�testReprzAutoFileTests.testRepr�s�������d�f�����/�/�/�4�6�;�;�;������E�	F�	F�	F�
�F�K�����d�f�����/�/�/�4�6�=�=�?�?�?�?�D�F�K�K�K�I�	J�	J�	J�	
�����������d�f����37�?�?�?�D�	F�	F�	F�	F�	Frc��tjttj��}	|�|dd���5}|�t
|��d|j�d|j�d|j	�d���ddd��n#1swxYwYtj
|��dS#tj
|��wxYw)NrRF)�closefdr�r�r�z closefd=False>)r!�openr�O_RDONLYrr*r�r�r�r;r )r�fdrs   r�testReprNoCloseFDzAutoFileTests.testReprNoCloseFD�s���
�W�V�R�[�
)�
)��	����R��e��4�4�
D��� � ��a����"&�/�/�/�1�6�6�6�1�6�6�6�"C�D�D�D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D����
D�
D�
D�
D�

�H�R�L�L�L�L�L��B�H�R�L�L�L�L���s.�B(�=B�;B(�B�B(�B�B(�(B>c��t|jd|j��5|�t��5t	|j��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr�)rrr+�RuntimeErrorr�rs r�testRecursiveReprzAutoFileTests.testRecursiveRepr�s���
�t�v�v�t�v�
.�
.�	�	��"�"�<�0�0�
�
��T�V����
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s4�A0�A�A0�A	�A0�A	� A0�0A4�7A4c�<�|j}|�|�����|�|j��|�t
|jd��|���|�|j��|�	td��}|�t|jd��|�|j��|���|�|j��dS)Nr%rR�)
r�assertFalse�isattyr<r+�
ValueErrorrpr �
assertTruerrr?rV�rrs  r�
testErrorszAutoFileTests.testErrors�s����F����������$�$�$������"�"�"����*�a�f�b�1�1�1�	���	�	�	������!�!�!��K�K���$�$�����)�Q�Z��4�4�4������"�"�"�	���	�	�	������!�!�!�!�!rc�Z�gd�}|j���|�|jj��|D]2}t	|j|��}|�t|���3|�t|jj��|�t|jjtd����|�t|jj
��|�t|jj
d��|�t|jj��|�t|jjd��|�t|jj��|�t|jjd��dS)N)rIr��seekable�readable�writablerp�readallr}r~r&�truncate�flushr3rr)
rr r�r<r-r+r�r?rVrUr7r'ro)r�methods�
methodname�methods    r�testMethodszAutoFileTests.testMethods�sY��0�0�0��	
������������
�&�&�&�!�	2�	2�J��T�V�Z�0�0�F����j�&�1�1�1�1����)�T�V�_�5�5�5����*�d�f�o�y��|�|�D�D�D����)�T�V�[�1�1�1����*�d�f�k�1�5�5�5����)�T�V�\�2�2�2����*�d�f�l�C�8�8�8����)�T�V�%6�7�7�7����*�d�f�&7��=�=�=�=�=rc��	|�dd��|�d��dS#t$rA}|�|jd��|�|jd��Yd}~dSd}~wwxYw)N�.rR�Should have raised OSErrorr)r�fail�OSError�assertNotEqual�errnor*�filename)r�es  r�testOpendirzAutoFileTests.testOpendir�s���	4��K�K��S�!�!�!�

�I�I�2�3�3�3�3�3��	�	.�	.�	.�������+�+�+����Q�Z��-�-�-�-�-�-�-�-�-�����	.���s�/�
A:�6A5�5A:�ntz&test only works on a POSIX-like systemc�P�tjdtj��}|�t��5}|�|d��ddd��n#1swxYwYtj|��|�|jj	tj
��dS)Nr�rR)r!r�r�r+r�rr r*�	exceptionr��EISDIR)rr��cms   r�
testOpenDirFDzAutoFileTests.testOpenDirFD�s���
�W�S�"�+�
&�
&��
�
�
�w�
'�
'�	!�2��K�K��C� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�����������+�U�\�:�:�:�:�:s�A�A!�$A!c�<��t����fd���}|S)Nc�0��|j}tj|�����	�||��	|j���dS#t$rYdSwxYw#	|j���w#t$rYwwxYwxYwr)rr!r rIr�)rr�funcs  �r�wrapperz'AutoFileTests.ClosedFD.<locals>.wrapper�s������A��H�Q�X�X�Z�Z� � � �
���T�1�
�
�
���F�L�L�N�N�N�N�N�������D�D��������F�L�L�N�N�N�N�������D�������s@�A)�A�
A&�%A&�)B�+B�B�
B�B�B�Br�r�r�s` r�ClosedFDzAutoFileTests.ClosedFD�s3���	�t���
	�
	�
	�
	�
��
	��rc�<��t����fd���}|S)Nc����|j}tj|�����	�||��|�d��n<#t
$r/}|�|jtj��Yd}~nd}~wwxYw	|j���dS#t
$rYdSwxYw#	|j���w#t
$rYwwxYwxYw)Nr�)	rr!r rIr�r�r*r��EBADF)rrr�r�s   �rr�z-AutoFileTests.ClosedFDRaises.<locals>.wrapper
s�����A��H�Q�X�X�Z�Z� � � �

���T�1�
�
�
��	�	�6�7�7�7�7���
7�
7�
7�� � ���%�+�6�6�6�6�6�6�6�6�����
7����
��F�L�L�N�N�N�N�N�������D�D��������F�L�L�N�N�N�N�������D�������sd�A�B;�
B�%B�B;�B�B;�B*�*
B8�7B8�;C'�=C�C'�
C$�!C'�#C$�$C'rr�s` r�ClosedFDRaiseszAutoFileTests.ClosedFDRaises	s3���	�t���	�	�	�	�
��	��rc�.�|���dSr)r r�s  r�testErrnoOnClosezAutoFileTests.testErrnoOnCloses��	���	�	�	�	�	rc�0�|�d��dS)N�a)r'r�s  r�testErrnoOnClosedWritez$AutoFileTests.testErrnoOnClosedWrite s��	����
�
�
�
�
rc�0�|�d��dS�Nr)r7r�s  r�testErrnoOnClosedSeekz#AutoFileTests.testErrnoOnClosedSeek$s��	���q�	�	�	�	�	rc�.�|���dSr)r&r�s  r�testErrnoOnClosedTellz#AutoFileTests.testErrnoOnClosedTell(s��	�������rc�0�|�d��dSr�)r�r�s  r�testErrnoOnClosedTruncatez'AutoFileTests.testErrnoOnClosedTruncate,s��	�
�
�1�
�
�
�
�
rc�.�|���dSr)r�r�s  r�testErrnoOnClosedSeekablez'AutoFileTests.testErrnoOnClosedSeekable0���	�
�
�����rc�.�|���dSr)r�r�s  r�testErrnoOnClosedReadablez'AutoFileTests.testErrnoOnClosedReadable4r�rc�.�|���dSr)r�r�s  r�testErrnoOnClosedWritablez'AutoFileTests.testErrnoOnClosedWritable8r�rc�.�|���dSr)rIr�s  r�testErrnoOnClosedFilenoz%AutoFileTests.testErrnoOnClosedFileno<s��	���
�
�
�
�
rc�V�|�|���d��dS)NF)r*r�r�s  r�testErrnoOnClosedIsattyz%AutoFileTests.testErrnoOnClosedIsatty@s&����������U�+�+�+�+�+rc��	|j���n#t$rYnwxYw|�td��|_tj|j�����|jS)NrR)rr r�rrr!rIrs r�
ReopenForReadzAutoFileTests.ReopenForReadDsn��	��F�L�L�N�N�N�N���	�	�	��D�	�������V�S�)�)���
��������!�!�!��v�
s��
)�)c�X�|���}|�d��dS)Nr3)r�rpr�s  r�testErrnoOnClosedReadz#AutoFileTests.testErrnoOnClosedReadMs&����� � ��	���q�	�	�	�	�	rc�V�|���}|���dSr)r�r�r�s  r�testErrnoOnClosedReadallz&AutoFileTests.testErrnoOnClosedReadallRs$����� � ��	�	�	�����rc�x�|���}tdd��}|�|��dS)Nrgs
xxxxxxxxxx)r�rrV)rrrjs   r�testErrnoOnClosedReadintoz'AutoFileTests.testErrnoOnClosedReadintoWs5����� � ���#�w����	�
�
�1�
�
�
�
�
rN)-�__name__�
__module__�__qualname__rr#r/r8rB�unittest�skipIfrrMrYr`rkrtrvrzrr�r�r�r�r�r�r�r!r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��rrrrs!������*�*�*����
>�>�>�,�,�,�
8�
8�
8��X�_�W�@�A�A�3�3�B�A�3������� ���,)�)�)�)�)�)�?�?�?�
E�E�E�=�=�=�
F�
F�
F�������"�"�"�>�>�>�,
4�
4�
4��X�_�R�W��_�&N�O�O�;�;�P�O�;�
�
�
����&����^������^������^������^������^������X������X������X������X���,�,��X�,��������^������^������^���rrc� �eZdZejZdZdS)�CAutoFileTests�_ioN)r�r�r�r�rr�r�rrr�r�]s������
�Z�F��J�J�Jrr�c� �eZdZejZdZdS)�PyAutoFileTests�_pyioN)r�r�r�r�rr�r�rrr�r�as������
�\�F��J�J�Jrr�c��eZdZd�Zd�Zd�Zd�Zd�Zej	e
j��dkd��d���Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�ZdS)�OtherFileTestsc��	|�td��}|�|���d��|�|���d��|�|���d��|���|�td��}|�|���d��|�|���d��|�|���d��|���|�td��}|�|���d��|�|���d��|�|���d��|�|���d��|���tj	dk�r!t�s	|�dd��}|�|���d��|�|���d��tj	d	krUd
tj	vrGtj	�d��s(|�|���d��|�|���d��|���n#t$rYnwxYwtjt��dS#tjt��wxYw)NrFTrRza+�win32z/dev/ttyrj�darwin�bsd)�sunos�aix)rrr*r�r�r�r r��sys�platformr
�
startswithr�r!�unlinkr�s  r�	testAbleszOtherFileTests.testAbleshs���'	����F�C�(�(�A����Q�Z�Z�\�\�5�1�1�1����Q�Z�Z�\�\�4�0�0�0����Q�Z�Z�\�\�4�0�0�0�
�G�G�I�I�I����F�C�(�(�A����Q�Z�Z�\�\�4�0�0�0����Q�Z�Z�\�\�5�1�1�1����Q�Z�Z�\�\�4�0�0�0�
�G�G�I�I�I����F�D�)�)�A����Q�Z�Z�\�\�4�0�0�0����Q�Z�Z�\�\�4�0�0�0����Q�Z�Z�\�\�4�0�0�0����Q�X�X�Z�Z��/�/�/�
�G�G�I�I�I��|�w�&�&�}�&�����J��4�4�A��$�$�Q�Z�Z�\�\�5�9�9�9��$�$�Q�Z�Z�\�\�4�8�8�8��|�x�/�/��C�L�0�0��<�2�2�3C�D�D�1��(�(������u�=�=�=��$�$�Q�X�X�Z�Z��6�6�6��G�G�I�I�I�I�������D�	���� 
�I�f�������B�I�f�������s1�H6M,�9M�C2M,�
M�M,�
M�M,�,Nc��dD]Z}	|�t|��}|���|�d|z���K#t$rY�WwxYwdS)N)r��aUzwU+�rw�rtz%r is an invalid file mode)rrr r�r�)rr;rs   r�testInvalidModeStringsz%OtherFileTests.testInvalidModeStrings�s��1�	?�	?�D�
?��K�K���-�-�����	�	�	��	�	�6��=�>�>�>�>��	�
�
�
���
����	?�	?s�A�
A�Ac���	dD]\}|�t|d��5}|�|j|d��ddd��n#1swxYwY�]	tj�t��rt	jt��dSdS#tj�t��rt	jt��wwxYw)N))rr:)r:r:)zwb+�rb+)zw+br�)rj�ab)r�r�)�ab+r)za+br)rRrn)rnrn)r�r�)zr+br�rr3)rrr*r;r!�path�existsr�)r�modesrs   r�testModeStringszOtherFileTests.testModeStrings�s��
	"�H�
7�
7��
�[�[���q��2�2�7�a��$�$�Q�V�U�1�X�6�6�6�7�7�7�7�7�7�7�7�7�7�7����7�7�7�7��
7��w�~�~�f�%�%�
"��	�&�!�!�!�!�!�
"�
"��r�w�~�~�f�%�%�
"��	�&�!�!�!�!�
"���s/�%B#�"A�	B#�A	�B#�A	�B#�#AC#c��|�tt��d��}|���t	jt��dSr)r�strrr r!r�r�s  r�testUnicodeOpenzOtherFileTests.testUnicodeOpen�s>���K�K��F���S�)�)��	���	�	�	�
�	�&�����rc���tjd��}|�|d��}	|�d��|���ttd��5}|�|���d��ddd��n#1swxYwYtj	t��dS#tj	t��wxYw)N�asciirr|rn)
r
�encoderr'r r�r*rpr!r��r�fnrs   r�
testBytesOpenzOtherFileTests.testBytesOpen�s���
�
 ��
)�
)���K�K��C� � ��	$�
�G�G�F�O�O�O�
�G�G�I�I�I��l�D�)�)�
3�Q�� � ������6�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�
�I�l�#�#�#�#�#��B�I�l�#�#�#�#���s/�>C�*)B�C�B#�#C�&B#�'C�C �utf-8z%test only works for utf-8 filesystemsc�$�	tjd��}n-#t$r |�dtz��YnwxYw|�|d��}	|�d��|���ttd��5}|�|�	��d��ddd��n#1swxYwYtjt��dS#tjt��wxYw)Nrzcould not encode %r to utf-8rr|rn)rr
�UnicodeEncodeError�skipTestrr'r r�r*rpr!r�rs   r�testUtf8BytesOpenz OtherFileTests.testUtf8BytesOpen�s9��	K��&�w�/�/�B�B��!�	K�	K�	K��M�M�8�>�I�J�J�J�J�J�	K�����K�K��C� � ��	&�
�G�G�F�O�O�O�
�G�G�I�I�I��n�d�+�+�
3�q�� � ������6�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�
�I�n�%�%�%�%�%��B�I�n�%�%�%�%���s?��'A�A�>C4�)C�C4�C�C4�C�C4�4Dc��d}|�t|j|d��|�t|jt|d��d��dS)Nzfoobarrr	)r+r�rr()r�fn_with_NULs  r�testConstructorHandlesNULCharsz-OtherFileTests.testConstructorHandlesNULChars�sP�� �����*�d�k�;��D�D�D����*�d�k�5��g�3N�3N�PS�T�T�T�T�Trc�(�|�t|jd��|�t|jt	����t
jdkr3ddl}|�t|jt	����dSdS)Ni����r�r)	r+r�rr�rr�r��msvcrt�
get_osfhandle)rrs  r�
testInvalidFdzOtherFileTests.testInvalidFd�s}�����*�d�k�3�7�7�7����'�4�;��
�
�>�>�>��<�7�"�"��M�M�M����g�v�';�[�]�]�K�K�K�K�K�#�"rc�l�d}	|�t|��}|���|�d|z��dS#t$r\}|jddkr:t
|��}t|vs||vr$|�d|z��Yd}~dSYd}~dSYd}~dSd}~wwxYw)N�qwertyzno error for invalid mode: %srz&bad error message for invalid mode: %s)rrr r�r��argsr)r�bad_moder�msg�ss     r�testBadModeArgumentz"OtherFileTests.testBadModeArgument�s�����	B����F�H�-�-�A�
�G�G�I�I�I��I�I�5��@�A�A�A�A�A���	L�	L�	L��x��{�a�����H�H���Q�;�;�(�!�"3�"3��I�I�F��J�K�K�K�K�K�K�K�K�K� ������"3�"3�"3�"3�"3�"3�����	L���s�A
�
B3�AB.�.B3c	���|�td��}|�tt	td��������|�|���d��|�d��|�|���d��|�|�	dtj��d��|�d��|�|���d��|�|�	dtj��d��|���dS)Nrr%r2rr4)
rrr'r(rUr)r*r&r�r7rF�SEEK_ENDr r�s  r�testTruncatezOtherFileTests.testTruncate�s���K�K���$�$��	����i��b�	�	�*�*�+�+�,�,�,���������2�&�&�&�	�
�
�1�
�
�
���������2�&�&�&��������2�;�/�/��3�3�3�	�
�
�2������������1�%�%�%��������2�;�/�/��4�4�4�	���	�	�	�	�	rc����fd�}	|��tjt��dS#tjt��wxYw)Nc�t����td��}|�tt	d������|�����td��}|�d��}|tt	d����kr��d|z��|���dkr*��d|���z��|�	��|���dkr*��d|���z��|���tj�t��}|dkr��d|z��dSdS)	Nr�zr+r2z(Read on file opened for update failed %rzFile pos after read wrong %dz!File pos after ftruncate wrong %dz"File size after ftruncate wrong %d)
rrr'r(r)r rpr�r&r�r!r�getsize)r�data�sizers   �r�	bug801631z7OtherFileTests.testTruncateOnWindows.<locals>.bug801631�sS������F�C�(�(�A�
�G�G�E�%��)�)�$�$�%�%�%�
�G�G�I�I�I����F�4�(�(�A��6�6�!�9�9�D��u�U�1�X�X���&�&��	�	�D�t�K�L�L�L��v�v�x�x�1�}�}��	�	�8�1�6�6�8�8�C�D�D�D�
�J�J�L�L�L��v�v�x�x�1�}�}��	�	�=������H�I�I�I�
�G�G�I�I�I��7�?�?�6�*�*�D��q�y�y��	�	�>��E�F�F�F�F�F��yr)r!r�r)rr*s` r�testTruncateOnWindowsz$OtherFileTests.testTruncateOnWindows�s]���	G�	G�	G�	G�	G�.	��I�K�K�K��I�f�������B�I�f�������s	�
-�Ac�6�	ttd��}|�d��|���ttd��}|�d��|���ttd��}|���}|���|�|d��	t
jt��dS#YdSxYw#	t
jt��w#YwxYwxYw)Nr:sspamr�seggsrnsspameggs)r�rr'r rpr*r!r�)rr�ds   r�
testAppendzOtherFileTests.testAppends���	��V�T�"�"�A�
�G�G�G����
�G�G�I�I�I��V�T�"�"�A�
�G�G�G����
�G�G�I�I�I��V�T�"�"�A������A�
�G�G�I�I�I����Q��,�,�,�
��	�&�!�!�!�!�!��
��������
��	�&�!�!�!�!��
��������s0�CC5�C-�-C2�5D�7D�D�D�Dc�L�|�t|jddd��dS)N�1r)r+r?rrs r�testInvalidInitzOtherFileTests.testInvalidInit&s&�����)�T�[�#�q�!�<�<�<�<�<rc��td���5}|�|jg��|�t|jg��|�|jg��|�t|jdd��|�|jg��ddd��dS#1swxYwYdS)NT��quietz/some/invalid/namer�)rr*�warningsr+r?rr�)rrs  r�testWarningszOtherFileTests.testWarnings)s���
�$�
'�
'�
'�	-�1����Q�Z��,�,�,����i���b�9�9�9����Q�Z��,�,�,����j�$�+�7K�T�R�R�R����Q�Z��,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�BB3�3B7�:B7c����Gd�dt���G��fd�d|j���tjttj��}|���|��tj|��dS)Nc��eZdZdS)�=OtherFileTests.testUnclosedFDOnException.<locals>.MyExceptionN)r�r�r�r�rr�MyExceptionr92s�������rr:c�$���eZdZ���fd�Z�xZS)�:OtherFileTests.testUnclosedFDOnException.<locals>.MyFileIOc�n��|dkr�d���t�|���||��S)Nr�zblocked setting name)�super�__setattr__)rr��valuer:�MyFileIO�	__class__s   ���rr?zFOtherFileTests.testUnclosedFDOnException.<locals>.MyFileIO.__setattr__4s=����6�>�>�%�+�&<�=�=�=��X�t�,�,�8�8��u�E�E�Er)r�r�r�r?�
__classcell__)rBr:rAs@��rrAr<3sN��������
F�
F�
F�
F�
F�
F�
F�
F�
F�
F�
FrrA)�	Exceptionrr!r��__file__r�r+r )rr�r:rAs  @@r�testUnclosedFDOnExceptionz(OtherFileTests.testUnclosedFDOnException1s�����*�*�*�*�*�)�*�*�*�	F�	F�	F�	F�	F�	F�	F�	F�t�{�	F�	F�	F�
�W�X�r�{�
+�
+�����+�x��4�4�4�
�������rN)r�r�r�r�r�rrr
r�r�r��getfilesystemencodingrrrr r#r+r.r1r6rFr�rrr�r�fs2������(�(�(�T	?�	?�	?�
"�
"�
"����
$�
$�
$��X�_�.�S�.�0�0�G�;�<�>�>�
&�
&�>�>�
&�U�U�U�
L�L�L�B�B�B� 
�
�
����:���$=�=�=�-�-�-�	�	�	�	�	rr�c�<�eZdZejZdZed���Zd�ZdS)�COtherFileTestsr�c��ddl}|�t|j|jdz��|�t|j|jdz
��dS)Nrr3)�	_testcapir+r?r�INT_MAX�INT_MIN)rrKs  r�testInvalidFd_overflowz&COtherFileTests.testInvalidFd_overflowAsZ��	�������)�T�[�)�2C�a�2G�H�H�H����)�T�[�)�2C�a�2G�H�H�H�H�Hrc�J�|�td��5}|���}ddd��n#1swxYwYtjt��5}|���}ddd��n#1swxYwY|�||��dS)Nrn)rrErpr��	open_coder*)rr�expected�actuals    r�test_open_codezCOtherFileTests.test_open_codeHs���[�[��4�
(�
(�	 �A��v�v�x�x�H�	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �
�]�8�
$�
$�	���V�V�X�X�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����6�*�*�*�*�*s!�=�A�A�!B�B�	BN)	r�r�r�r�rr�rrNrSr�rrrIrI=sK������
�Z�F��J��I�I��\�I�+�+�+�+�+rrIc�&�eZdZejZdZd�ZdS)�PyOtherFileTestsr�c���|�td��5}|���}ddd��n#1swxYwYtd���5}t	jt��5}|���}ddd��n#1swxYwY|�||��|�|jg��ddd��dS#1swxYwYdS)NrnTr3)	rrErprr��_open_code_with_warningr*r�r5)rrrQrrRs     rrSzPyOtherFileTests.test_open_codeVs����[�[��4�
(�
(�	 �A��v�v�x�x�H�	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �
�$�
'�
'�
'�	0�1��.�x�8�8�
"�A�������
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"����X�v�.�.�.�����
�B�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0sE�=�A�A�C�2B�C�B	�C�B	�4C�C �#C N)r�r�r�r�rr�rSr�rrrUrURs/������
�\�F��J�
0�
0�
0�
0�
0rrUc��tj�t��rtjt��dSdSr)r!rrrr�r�rr�tearDownModulerYcs:��
�w�~�~�f����
�	�&�������r�__main__)%r�r!rFr�r�r�weakrefr�	functoolsr�test.supportrrr	r
r�test.support.os_helperrr
rr�test.support.warnings_helperr�collectionsrr�r�r�TestCaser�r�r�rIrUrYr��mainr�rr�<module>rcsw���
�
�
�	�	�	�	�	�	�	�	�����������������������������������������������������8�7�7�7�7�7� � � � � � �
�
�
�
�����B�B�B�B�B�B�B�B�H
�����]�H�$5���������m�X�%6����
T�T�T�T�T�T�T�T�n+�+�+�+�+�n�h�&7�+�+�+�*0�0�0�0�0�~�x�'8�0�0�0�"����z����H�M�O�O�O�O�O��r