Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_pathlib.cpython-312.pyc

�

'Μg9'�� �ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlm
Z
ddlmZddlmZddlmZmZddlmZddlmZmZ	ddlZddlZGd�d	e�ZGd
�de�ZGd�d
eej:�ZGd�deej:�ZGd�deej:�Z ejBjEe�Z#d�Z$d�Z%ejLejNdk7d�Z(ejLejNdk(d�Z)e)Gd�de��Z*e(Gd�de��Z+Gd�de�Z,Gd�dej:�Z-Gd�d e,ej:�Z.e)Gd!�d"e,ej:��Z/e(Gd#�d$e,ej:��Z0Gd%�d&eej:�Z1Gd'�d(e,ej:�Z2Gd)�d*ej:�Z3e4d+k(rejj�yy#e$rdxZZY���wxYw),�N)�mock)�
import_helper)�set_recursion_limit)�
is_emscripten�is_wasi)�	os_helper)�TESTFN�FakePathc�$��eZdZ�fd�Zd�Z�xZS)�_BasePurePathSubclassc�,��t�|�|�||_y�N)�super�__init__�
session_id)�selfr�pathsegments�	__class__s   ��./usr/local/lib/python3.12/test/test_pathlib.pyrz_BasePurePathSubclass.__init__ s���
���,�'�$���c�8�t|�|d|ji�S)Nr)�typer)rrs  r�
with_segmentsz#_BasePurePathSubclass.with_segments$s���t�D�z�<�D�D�O�O�D�Dr)�__name__�
__module__�__qualname__rr�
__classcell__)rs@rrrs���%�Errc��eZdZgd�gd�d�Zd�Zd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �Z d!�Z!d"�Z"d#�Z#d$�Z$d%�Z%d&�Z&d'�Z'd(�Z(d)�Z)d*�Z*y+),�_BasePurePathTest)
��a�b)�a/r")r!�b/)r#r$��a/b/)za//b)za//b//)�r!r")r!r'r")r!r"r'))r!�/b/c�d)�/ar(r))�/r"r'�c/d)r+r'zb/c/d)r'�/b/c/d)�a/br-c��|jd�}|j|_|jj|_|jj|_y�Nr!)�cls�_flavour�flavour�sep�altsep�r�ps  r�setUpz_BasePurePathTest.setUp:s<���H�H�S�M���z�z����<�<�#�#����l�l�)�)��rc	�`�|j}|d�}|j||�|ddd�|ddd�|d�|d�|td��|j||d��|d��|j||d�d�|d��|j||d�|d��|d��|j||d�|d�|d��|td���|j||d��|d��y)	Nr!r"�cr*�a/b/c�/a/b/cr.�./a:b)r1�assertIsInstancer
�assertEqual�r�Pr7s   r�test_constructor_commonz)_BasePurePathTest.test_constructor_common@s����H�H��
�c�F�����a��#�	�#�s�C��	�$��S��	�'�
�	�(��	�(�7�
������1�S�6��A�c�F�+�����1�S�6�3���5��2�����1�S�6�1�S�6�*�A�e�H�5�����1�S�6�1�S�6�1�S�6�2�A�h�w�6G�4H�I�����1�W�:���'�
�3rc�F�|j}d}|jt|�5|d�ddd�|jt|�5|dd�ddd�|jt|�5|dd�ddd�|jt�5|d�j	d�ddd�|jt�5|d�dzddd�|jt�5d|d�zddd�|jt�5|d�jd�ddd�|jt�5|d�j
d�ddd�|jt�5|d�jd�ddd�|jt�5|d�jd�ddd�|jt�5|d�jd�ddd�y#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��qxYw#1swY��UxYw#1swY��-xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)Nz^argument should be a str or an os\.PathLike object where __fspath__ returns a str, not 'bytes'�ar"r!�b)
r1�assertRaisesRegex�	TypeError�assertRaises�joinpath�match�relative_to�	with_name�	with_stem�with_suffix)rrA�messages   r�
test_bytesz_BasePurePathTest.test_bytesOs����H�H��B��
�
#�
#�I�w�
7�
�d�G�8�
�
#�
#�I�w�
7�
�d�C�L�8�
�
#�
#�I�w�
7�
�c�4�L�8�
�
�
�y�
)�
�c�F�O�O�D�!�*�
�
�
�y�
)�
�c�F�T�M�*�
�
�
�y�
)��1�S�6�M�*�
�
�
�y�
)�
�c�F�L�L���*�
�
�
�y�
)�
�c�F���t�$�*�
�
�
�y�
)�
�c�F���T�"�*�
�
�
�y�
)�
�c�F���T�"�*�
�
�
�y�
)�
�c�F���t�$�*�
)�)8�
7��
7�
7��
7�
7��
)�
)��
)�
)��
)�
)��
)�
)��
)�
)��
)�
)��
)�
)��
)�
)�s��	H�
H$�4
H1�H>�I�9I�"I%�I2�I?�J�6J�H!�$H.�1H;�>I�I�I"�%I/�2I<�?J�J�J c����Gd�dt��|j}|�fd�|D��}|j|||��|jD]!}|j	t|�t��#y)Nc��eZdZy)�:_BasePurePathTest._check_str_subclass.<locals>.StrSubclassN�rrr�rr�StrSubclassrSn���rrVc3�.�K�|]}�|����y�wrrU)�.0�xrVs  �r�	<genexpr>z8_BasePurePathTest._check_str_subclass.<locals>.<genexpr>qs�����-��1��A���s�)�strr1r?�parts�assertIsr)r�argsrAr7�partrVs     @r�_check_str_subclassz%_BasePurePathTest._check_str_subclassjs\���	�#�	��H�H��
�-��-�.������A�t�H�%��G�G�D��M�M�$�t�*�c�*�rc��|jd�|jd�|jd�|jd�|jd�y)Nr'�.r!za/b.txtz/a/b.txt�ra�rs r�test_str_subclass_commonz*_BasePurePathTest.test_str_subclass_commonvsH��� � ��$�� � ��%�� � ��%�� � ��+�� � ��,rc�t�Gd�dt|j�}|ddd��}|jd|dzj�|jdd|zj�|jd|j	d�j�|jd|jd�j�|jd|j
d�j�|jd|jd�j�|jd|jd�j�|jd|jd�j�|jd|jj�|jD]}|jd|j�� y)Nc��eZdZy)�6_BasePurePathTest.test_with_segments_common.<locals>.PNrTrUrrrAri~rWrrA�foo�bar�*�rz.foo)rr1r?rrIrLrMrNrrK�parent�parents)rrAr7rns    r�test_with_segments_commonz+_BasePurePathTest.test_with_segments_common}sO��	�%�t�x�x�	�
�e�U�r�*������a�%�i�3�3�4�����e�a�i�3�3�4�����Q�Z�Z��.�9�9�:�����Q�[�[��/�:�:�;�����Q�[�[��/�:�:�;�����Q�]�]�6�2�=�=�>�����Q�_�_�U�3�>�>�?�����Q�]�]�5�1�<�<�=�����Q�X�X�0�0�1��i�i�F����R��!2�!2�3� rc�f�|j|�}|j|j|jfSr)r1�drive�rootr])rr]�paths   r�_get_drive_root_partsz'_BasePurePathTest._get_drive_root_parts�s+���t�x�x�����z�z�4�9�9�d�j�j�0�0rc	�z�|jj}|j|D�cgc]}|jd|���c}�}|j	||�|jj
x}rB|j|D�cgc]}|jd|���c}�}|j	||�yycc}wcc}w�Nr+)r3r4ru�replacer?r5)r�arg�expectedr4rZ�actualr5s       r�_check_drive_root_partsz)_BasePurePathTest._check_drive_root_parts�s����l�l�����+�+�#�,N�#�Q�Q�Y�Y�s�C�-@�#�,N�O�������*��\�\�(�(�(�6�(��/�/�QT�0U�QT�A����3��1G�QT�0U�V�F����V�X�.�)��-O��1Vs�B3�?B8c���|j}|jj}|dddd�|dddd�|dddd�|dddd�|dddd�|dddd�|dddd	�|d
ddd	�|dddd	�|dddd�|d
ddd�|dddd�|dddd�|dd||ddf�|dd||ddf�|dd||ddf�|dd||ddf�|dd||df�y)NrUr')r!)r#r �r.r%)r!zb/cr))r!r"r:r))r!zb//cr))r!zb/c/r))rc)rcrcr")r")r!rcr")r!rcrc)�/a/br!r")r*r")�/a/r"�r!�/br:r:)r!r��/c)r|r3r4)r�checkr4s   r�test_drive_root_parts_commonz._BasePurePathTest.test_drive_root_parts_common�s<���,�,���l�l����
�b�B��B�/�
�f�B��F�3�
�g�B��F�3�
�j�B��J�7�
�h�B��J�7�
�i�B��J�7�
��B��,@�A�
� �B��,@�A�
� �B��,@�A�
�f�B��B�/�
�o�B��F�3�
�o�B��J�7�
�o�B��F�3�
�i�B��c�3��_�=�
�k�B��c�3��_�=�
�l�B��c�3��_�=�
��B��c�3��_�=�
��B��c�3�Z�8rc���|j}|d�}|jd�}|j||d��|jt	|�t	|��|jdd�}|j||d��|j|d��}|j||d��|jd�}|j||d��y)Nr.r:r;r)�a/b/c/dr�)r1rIr?r^r�rrAr7�pps    r�test_join_commonz"_BasePurePathTest.test_join_common�s����H�H��
�e�H��
�Z�Z��_������Q�w�Z�(��
�
�d�2�h��Q��(�
�Z�Z��S�
!������Q�y�\�*�
�Z�Z��#��
������Q�w�Z�(�
�Z�Z��
������Q�t�W�%rc���|j}|d�}|dz}|j||d��|jt|�t|��|dz}|j||d��|dzdz}|j||d��d|zdz}|j||d��||d�z}|j||d��|dz}|j||d��y)	Nr.r:r;r,r�r)zc/a/b/dr�)r1r?r^rr�s    r�test_div_commonz!_BasePurePathTest.test_div_common�s����H�H��
�e�H��
��W������Q�w�Z�(��
�
�d�2�h��Q��(�
��Y������Q�y�\�*�
��W�s�]������Q�y�\�*�
�1�W�s�]������Q�y�\�*�
��3��Z������Q�w�Z�(�
��W������Q�t�W�%rc��|j|�}|jt|�|jd|j��yrw)r1r?r\rxr4)rrzr_r7s    r�
_check_strz_BasePurePathTest._check_str�s6���D�H�H�d�O������Q���!1�!1�#�t�x�x�!@�Arc�\�dD]}|j||f��|jdd�y)N�r!r.r;r+rr<rc)r')r�)r�pathstrs  r�test_str_commonz!_BasePurePathTest.test_str_common�s-��C�G��O�O�G�g�Z�0�D�	
����U�#rc�v�|j}dD](}|j||�j�|��*y)Nr�)r1r?�as_posix)rrAr�s   r�test_as_posix_commonz&_BasePurePathTest.test_as_posix_common�s3���H�H��C�G����Q�w�Z�0�0�2�G�<�Drc��tj|j�}|j}|j	t|d��d|zdz�y)Nr.rDrE)�os�fsencoder4r1r?�bytes)rr4rAs   r�test_as_bytes_commonz&_BasePurePathTest.test_as_bytes_common�s>���k�k�$�(�(�#���H�H������q��x��$��*�t�*;�<rc��|j}|jt�5|d�j�ddd�|jt�5|�j�ddd�y#1swY�=xYw#1swYyxYwr0)r1rH�
ValueError�as_uri�rrAs  r�test_as_uri_commonz$_BasePurePathTest.test_as_uri_common�s\���H�H��
�
�
�z�
*�
�c�F�M�M�O�+�
�
�
�z�
*�
�C�J�J�L�+�
*�+�
*��
*�
*�s�A5�B�5A>�B
c���dD]�}|j|��5|j|�}|jj}t	|�}|j|j
|dz�|�|j|jd�|�|t|�dzd}|jt|�|j��ddd���y#1swY��xYw)Nr��r��(�)����)�subTestr1rr�repr�
assertTrue�
startswith�endswith�lenr?�evalr�)rr�r7�clsname�r�inners      r�test_repr_commonz"_BasePurePathTest.test_repr_common�s���C�G����g��.��H�H�W�%���+�+�.�.����G��������W�s�]� ;�Q�?�����
�
�3���3��#�g�,��*�R�0��� � ��e��a�j�j�l�;�/�.�D�.�.�s�B2C�C	c�r�dD]�}|j|��5|j|�}t|�}t|tj
�}|j
|j|j�|j||�|jt|�|�ddd���y#1swY��xYw)Nr�r�)	r�r1r�r��pathlib�__dict__r^rr?)rr�r7r��qs     r�test_repr_roundtripsz&_BasePurePathTest.test_repr_roundtrips�s���C�G����g��.��H�H�W�%����G����G�,�,�-���
�
�a�k�k�1�;�;�7�� � ��A�&�� � ��a��!�,�/�.�D�.�.�s�B
B-�-B6	c�P�|j}|j|d�|d��|j|d�|dd��|j|d�|d��|j|d�|d��|j|d�|��|j|d�|d��|j|�|d��|j|�d�|j|�i�|j|�t�y)Nr.r!r"rr+r')r1r?�assertNotEqual�intr�s  r�test_eq_commonz _BasePurePathTest.test_eq_common	s����H�H������5��1�U�8�,�����5��1�S�#�;�/����A�e�H�a��f�-����A�e�H�a��i�0����A�e�H�a�c�*����A�f�I�q��v�.����A�C��3��(����A�C��$����A�C��$����A�C��%rc��
�|j}|jt|d�jd�|jt|d�jd�|j	|d�jd��|j	|d�jd��|j	|d�jd��|j|d�jd��|j|d�jd��|j|d	�jd��|j|d
�jd��|j	|d�jd��|j	|d�jd��|j	|d�jd��|j|d�jd��|j|d
�jd��|j|d
�jd��|j	|d�jd��|j	|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j	|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j	|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j	|d�jd��|j|d�jdd���|j	|d�jdd���|j|d�jd d���|j	|d�jd!d���|j|�jd"��|j	|�jd#��|j|�jd$��y)%Nr!r'rc�b.py�a/b.py�/a/b.pyza.pyzb/pyz/a.pyzb.py/cz*.pyzb.pyczb./pyzab/c.pyza*/*.pyz
/d/ab/c.pyz	/dab/c.pyz	ab/c.py/d�/b.py�/*.pyz/a/*.pyz/ab.pyz	/a/b/c.pyz/**/*.pyz
/a/**/*.py�A.py�a.PYT��case_sensitiveF�	c:/a/B.Py�	C:/A/*.pYz	/A/*/*.Py�*�**�**/*)r1rHr�rJr��assertFalser�s  r�test_match_commonz#_BasePurePathTest.test_match_commons����H�H�����*�a��f�l�l�B�7����*�a��f�l�l�C�8�����&�	����/�0�����(��)�)�&�1�2�����)��*�*�6�2�3�����6�����0�1�����6�����0�1�����7��)�)�&�1�2�����8��*�*�6�2�3�����&�	����/�0�����(��)�)�&�1�2�����)��*�*�6�2�3�����7��)�)�&�1�2�����7��)�)�&�1�2�����8��*�*�6�2�3�����)��*�*�9�5�6�����,��-�-�i�8�9�����6�����3�4�����;��-�-�i�8�9�����;��-�-�i�8�9�����'�
�(�(��1�2�����6�����1�2�����8��*�*�7�3�4�����9��+�+�G�4�5�����)��*�*�9�5�6�����8��*�*�9�5�6�����;��-�-�i�8�9�����;��-�-�j�9�:�����+��,�,�\�:�;�����6�������E�F�����&�	����u��E�F�����;��-�-�k�$�-�O�P�����+��,�,�[��,�O�P��������3��(������	�	�$��(��������6�*�+rc�����fd�}�j}|d�}|d�}|d�}|d�}|||�|||�|||�|||�|||��j}|d�}|d�}|d�}|d	�}|||�|||�|||�|||�|||��jt�5|�ikddd�y#1swYyxYw)
Nc�N���j||��j||�yr)�
assertLess�
assertGreater�r!r"rs  �rr�z:_BasePurePathTest.test_ordering_common.<locals>.assertLessGs!����O�O�A�q�!����q�!�$rr!r.�abcr"r*rz/abcr�)r1rHrG)rr�rAr!r"r:r)s`      r�test_ordering_commonz&_BasePurePathTest.test_ordering_commonEs����	%�
�H�H��
�c�F��
�e�H��
�e�H��
�c�F���1�a���1�a���1�a���1�a���1�a���H�H��
�d�G��
�f�I��
�f�I��
�d�G���1�a���1�a���1�a���1�a���1�a��
�
�
�y�
)�
�C�"�H�*�
)�
)�s�C"�"C+c���|j}|j}|d�}|j}|j|d�|d�}|j}|j||ddf�y)Nr.r rr!r")r4r1r]r?)rr4rAr7r]s     r�test_parts_commonz#_BasePurePathTest.test_parts_commonas^���h�h���H�H��
�e�H����������
�+�
�f�I�����������c�3��0rc��|j}|d�}|j|j�d�|jtj|�d�y)Nr.r~)r1r��
__fspath__r��fspathr@s   r�test_fspath_commonz$_BasePurePathTest.test_fspath_commonms>���H�H��
�e�H����������1�����	�	�!��h�/rc	����jj�D�]"\}}|jd�j�}|j�jd�}||k7r7||D�cgc]}t	�fd�|D����c}z}|j|f��j
|�}|D]�}�j|�}�j||dj|���jt|�t|���jt|�|��j|j�|�����%ycc}w)Nr+c3�V�K�|] }|jd�j����"y�w)r+N)rxr4)rYr`rs  �rr[z6_BasePurePathTest.test_equivalences.<locals>.<genexpr>ys!�����D�!�$�$�,�,�s�D�H�H�5�!�s�&)zfailed with args {})�equivalences�itemsrxr4�tuple�appendr1r?�format�hashr\r�)r�k�tuples�canon�posix�t�pcanonr7s`       r�test_equivalencesz#_BasePurePathTest.test_equivalencesss����*�*�0�0�2�I�A�v��I�I�c�4�8�8�,�E��I�I�d�h�h��,�E���~��#�#�#���D�!�D�D�#�#����
�
�u�i�(��X�X�e�_�F����D�H�H�a�L��� � ��F�,A�,H�,H��,K�L�� � ��a��$�v�,�7�� � ��Q���/�� � �����u�5��3��#s�%Ec�H�|j}|d�}|j|j|d��|j|jj|d��|j|jjj|��|j|jjjj|��|d�}|j|j|d��|j|jj|d��|j|jjj|d��|j|jjjj|d��y)Nr;r.r!r<rr*r+�r1r?rnr@s   r�test_parent_commonz$_BasePurePathTest.test_parent_common�s���H�H��
�g�J��������1�U�8�,���������!�C�&�1���������/�/���5���������/�/�6�6���<�
�h�K��������1�V�9�-���������!�D�'�2���������/�/��3��8���������/�/�6�6��#��?rc�\	�|j}|d�}|j}|jt|�d�|j|d|d��|j|d|d��|j|d|d��|j|d	|d��|j|d
|d��|j|d|d��|j|dd|d�f�|j|dd|d�|d�f�|j|dd	|d�|d�f�|j|dd|d�|d�f�|j|ddd�|d�|d�f�|j|ddd	�|d�|d�|d�f�|jt	|�|d�|d�|d�g�|jt�5|dddd�|jt�5|dddd�|jt�5||d<ddd�|d
�}|j}|jt|�d�|j|d|d��|j|d|d��|j|d|d��|j|d	|d��|j|d
|d��|j|d|d��|j|dd|d�f�|j|dd|d�|d�f�|j|dd	|d�|d�f�|j|dd|d�|d�f�|j|ddd�|d�|d�f�|j|ddd	�|d�|d�|d�f�|jt	|�|d�|d�|d�g�|jt�5|dddd�|jt�5|dddd�y#1swY��pxYw#1swY��ZxYw#1swY��DxYw#1swY�TxYw#1swYyxYw)Nr;�rr.r�r!�rcr����������r<rr*r+)r1ror?r��listrH�
IndexErrorrG�rrAr7�pars    r�test_parents_commonz%_BasePurePathTest.test_parents_common�s���H�H��
�g�J���i�i������S��1�%�����Q���5��*�����Q���3��(�����Q���3��(�����R��!�C�&�)�����R��!�C�&�)�����R��!�E�(�+�����Q�q��A�e�H�;�/�����R�a��1�U�8�Q�s�V�"4�5�����S�b��A�e�H�a��f�#5�6�����Q�R��1�S�6�1�S�6�"2�3�����S�q�S��A�e�H�a��f�#5�6�����T�r�T��Q�s�V�Q�s�V�Q�u�X�$>�?�����c��Q�u�X�q��v�q��v�$>�?�
�
�
�z�
*���G�+�
�
�
�z�
*���F�+�
�
�
�y�
)��C��F�*�
�h�K���i�i������S��1�%�����Q���6��+�����Q���4��)�����Q���3��(�����R��!�C�&�)�����R��!�D�'�*�����R��!�F�)�,�����Q�q��A�f�I�<�0�����R�a��1�V�9�a��g�"6�7�����S�b��A�f�I�q��w�#7�8�����Q�R��1�T�7�A�c�F�"3�4�����S�q�S��A�f�I�q��v�#6�7�����T�r�T��Q�s�V�Q�t�W�a��i�$@�A�����c��Q�v�Y��$���3��$@�A�
�
�
�z�
*���G�+�
�
�
�z�
*���F�+�
*�3+�
*��
*�
*��
)�
)��&+�
*��
*�
*�s<�;Q/�Q<�R	�=R� R"�/Q9�<R�	R�R�"R+c���|j}|j|d�jd�|j|d�jd�|j|d�jd�y)Nr.r'r�r1r?rrr�s  r�test_drive_commonz#_BasePurePathTest.test_drive_common�sS���H�H������5�����,�����6����"�-�����2����b�)rc�D�|j}|j}|j|d�jd�|j|d�jd�|j|d�j|�|j|d�j|�y�Nr'r.r+r)r1r4r?rs�rrAr4s   r�test_root_commonz"_BasePurePathTest.test_root_common�st���H�H���h�h������2����R�(�����5�����+�����3����c�*�����6�����-rc�D�|j}|j}|j|d�jd�|j|d�jd�|j|d�j|�|j|d�j|�yr�)r1r4r?�anchorr�s   r�test_anchor_commonz$_BasePurePathTest.test_anchor_common�sv���H�H���h�h������2����r�*�����5����"�-�����3�����,�����6��)�)�3�/rc�<�|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd	�|j|d
�jd	�y)Nr'rcr+r.r"r�/a/b/.r�r�r��r1r?�namer�s  r�test_name_commonz"_BasePurePathTest.test_name_common�s����H�H������2����R�(�����3����b�)�����3����b�)�����5�����,�����6�����-�����8��)�)�3�/�����8��)�)�6�2�����9��*�*�F�3rc��|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd	�|j|d
�jd	�|j|d�jd�|j|d�jd�|j|d
�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�y)Nr'rc�..r+r.rrr��.pyr��a/.hgrc�/a/.hgrc�a/.hg.rc�.rc�	/a/.hg.rc�
a/b.tar.gz�.gz�/a/b.tar.gz�a/Some name. Ending with a dot.� /a/Some name. Ending with a dot.�r1r?�suffixr�s  r�test_suffix_commonz$_BasePurePathTest.test_suffix_common�s����H�H������2����r�*�����3�����+�����4�����,�����3�����+�����5����"�-�����6��)�)�2�.�����8��+�+�R�0�����8��+�+�U�3�����9��,�,�e�4�����9��,�,�b�1�����:��-�-�r�2�����:��-�-�u�5�����;��.�.��6�����<��/�/��7�����=�)�0�0�%�8�����<�=�D�D�b�I�����=�>�E�E�r�Jrc�l�|j}|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jdg�|j|d	�jdg�|j|d
�jg�|j|d�jg�|j|d�jd
g�|j|d�jd
g�|j|d�jddg�|j|d�jddg�|j|d�jg�|j|d�jg�y)Nr'rcr+r.rrr�rr�rrr	r
rr�.tarr
rrr�r1r?�suffixesr�s  r�test_suffixes_commonz&_BasePurePathTest.test_suffixes_common�s����H�H������2�����,�����3����"�-�����3����"�-�����5��*�*�B�/�����6��+�+�R�0�����8��-�-�r�2�����8��-�-��w�7�����9��.�.���8�����9��.�.��3�����:��/�/��4�����:��/�/�%��9�����;��0�0�5�'�:�����<��1�1�F�E�?�C�����=�)�2�2�V�U�O�D�����<�=�F�F��K�����=�>�G�G��Lrc���|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd	�|j|d
�jd�|j|d�jd
�|j|d�jd�y)Nr'rcrr+r.r"r�r�.hgrcr	�.hgr�b.tarr�Some name. Ending with a dot.�r1r?�stemr�s  r�test_stem_commonz"_BasePurePathTest.test_stem_commons
���H�H������2����R�(�����3����b�)�����4����t�,�����3����b�)�����5�����,�����8��)�)�3�/�����9��*�*�G�4�����:��+�+�U�3�����<��-�-�w�7�����<�=�B�B�8�	:rc��|j}|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d	�jd�|d��|jt|d
�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd
�|jt|d�jd�|jt|d�jd
�|jt|d�jd�|jt|d�jd�y)Nr.�d.xmlza/d.xmlrz/a/d.xmlr�r��
a/Dot ending.�/a/Dot ending.r'rcr+r��c/r,)r1r?rLrHr�r�s  r�test_with_name_commonz'_BasePurePathTest.test_with_name_commons����H�H������5��+�+�G�4�a�	�l�C�����6��,�,�W�5�q��}�E�����8��.�.�w�7��9��F�����9��/�/��8�!�J�-�H�����?�+�5�5�g�>��)��M�����+�,�6�6�w�?��:��O����*�a��e�o�o�w�?����*�a��f�&6�&6��@����*�a��f�&6�&6��@����*�a��h�&8�&8�"�=����*�a��h�&8�&8�#�>����*�a��h�&8�&8�$�?����*�a��h�&8�&8�$�?����*�a��h�&8�&8�%�@rc��|j}|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d	��|j|d
�jd�|d��|j|d�jd�|d��|j|d
�jd�|d��|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�y)Nr.r)za/drz/a/dr�za/d.pyr�z/a/d.pyrz/a/d.gzr#r$r'rcr+r�r%r,)r1r?rMrHr�r�s  r�test_with_stem_commonz'_BasePurePathTest.test_with_stem_common*s����H�H������5��+�+�C�0�!�E�(�;�����6��,�,�S�1�1�V�9�=�����8��.�.�s�3�Q�x�[�A�����9��/�/��4�a�	�l�C�����=�)�3�3�C�8�!�I�,�G�����?�+�5�5�c�:�A�e�H�E�����+�,�6�6�s�;�Q�v�Y�G����*�a��e�o�o�s�;����*�a��f�&6�&6��<����*�a��f�&6�&6��<����*�a��h�&8�&8�"�=����*�a��h�&8�&8�#�>����*�a��h�&8�&8�$�?����*�a��h�&8�&8�$�?����*�a��h�&8�&8�%�@rc��|j}|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|jt|d�jd�|jt|d	�jd�|jt|d
�jd�|jt|d�jd�|jt|d�jd
�|jt|d�jd	�|jt|d�jd�|jt|d�jd
�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�j|j
jdf�y)Nr.r
za/b.gzrz/a/b.gzr�r�r'rcr+�gz�/.gzr,z.c/.dz./.dz.d/.r))r1r?rNrHr�r3r4r�s  r�test_with_suffix_commonz)_BasePurePathTest.test_with_suffix_common<s?���H�H������5��-�-�e�4�a��k�B�����6��.�.�u�5�q��|�D�����8��0�0��7��8��E�����9��1�1�%�8�!�I�,�G�����8��0�0��4�a��h�?�����6��.�.�r�2�A�f�I�>����*�a��e�&7�&7��?����*�a��f�&8�&8�%�@����*�a��f�&8�&8�%�@����*�a��h�&:�&:�D�A����*�a��h�&:�&:�C�@����*�a��h�&:�&:�C�@����*�a��h�&:�&:�F�C����*�a��h�&:�&:�E�B����*�a��h�&:�&:�G�D����*�a��h�&:�&:�F�C����*�a��h�&:�&:�F�C����*�a��h�&:�&:��<�<�+�+�S�1�	3rc���|j}|d�}|jt|j�|jt|jd�|j	|j|��|d��|j	|jd�|d��|j	|j|d��|d��|j	|jd�|d��|j	|jd�|d��|j	|j|d��|��|j	|jd�|��|j	|j|�d��|d��|j	|jdd��|d��|j	|j|d�d��|d��|j	|jdd��|d��|j	|jdd��|d��|j	|j|d�d��|��|j	|jdd��|��|j	|j|d	�d��|d
��|j	|jd	d��|d
��|j	|j|d�d��|d��|j	|jdd��|d��|j	|j|d
�d��|d��|j	|jd
d��|d��|jt�5|jdd�|jddd��ddd�|jt|j|d
��|jt|j|d��|jt|j|d	��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d�d��|jt|j|d�d��|jt|j|d�d��|jt|j|d�d��|jt|j|d�d��|d�}|j	|j|d��|d��|j	|jd�|d��|j	|j|d��|d��|j	|jd�|d��|j	|jd�|d��|j	|j|d��|��|j	|jd�|��|j	|j|d�d��|d��|j	|jdd��|d��|j	|j|d�d��|d��|j	|jdd��|d��|j	|jdd��|d��|j	|j|d�d��|��|j	|jdd��|��|j	|j|d�d��|d
��|j	|jdd��|d
��|j	|j|d�d��|d��|j	|jdd��|d��|j	|j|d�d��|d��|j	|jdd��|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|��|jt|jd�|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d�d��|jt|j|d�d��|jt|j|d�d��|jt|j|d�d��|jt|j|d�d��y#1swY��nxYw)Nr.rDr'r!r"r#T��walk_up�a/cz../br;rr:z../a/br*z../aza/..z/a/..r+rr��/a/cr<r�)r1rHrGrKr?�assertWarns�DeprecationWarningr�r@s   r�test_relative_to_commonz)_BasePurePathTest.test_relative_to_commonUs{���H�H��
�e�H�����)�Q�]�]�3����)�Q�]�]�D�9�������q�s�+�Q�u�X�6�������r�*�A�e�H�5�������q��v�.��#��7�������s�+�Q�s�V�4�������t�,�a��f�5�������q��x�0�!�#�6�������u�-�q�s�3�������q�s�D��9�1�U�8�D�������r�4��8�!�E�(�C�������q��v�t��<�a��f�E�������s�D��9�1�S�6�B�������t�T��:�A�c�F�C�������q��x���>���D�������u�d��;�Q�S�A�������q��x���>��&�	�J�������u�d��;�Q�v�Y�G�������q��z�4��@�!�D�'�J�������w���=�q��w�G�������q��v�t��<�a��k�J�������s�D��9�1�X�;�G�
�
�
�0�
1�
�M�M�#�s�#�
�M�M�#�s�D�M�1�2�	
���*�a�m�m�Q�s�V�<����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�u�X�>����*�a�m�m�Q�t�W�=����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�w�Z���N�
�f�I��������q��v�.��%��9�������s�+�Q�u�X�6�������q��w�/��3��8�������t�,�a��f�5�������u�-�q��v�6�������q��y�1�1�3�7�������v�.���4�������q��v�t��<�a��h�G�������s�D��9�1�U�8�D�������q��w���=�q��v�F�������t�T��:�A�c�F�C�������u�d��;�Q�s�V�D�������q��y�$��?���E�������v�t��<�a�c�B�������q��y�$��?��6��K�������v�t��<�a��i�H�������q��{�D��A�1�T�7�K�������x���>��$��H�������q��w���=�q��{�K�������t�T��:�A�h�K�H����*�a�m�m�Q�t�W�=����*�a�m�m�Q�x�[�A����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�S�9����*�a�m�m�R�8����*�a�m�m�Q�s�V�<����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�r�U�D��I����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�w�Z���N�g2�
1�s�'m�mc��|j}|d�}|jt|j�|jt|jd�|j	|j|���|j	|jd��|j	|j|d���|j	|jd��|j	|j|d���|j	|jd��|jt�5|jdd�ddd�|j|j|d���|j|j|d���|j|j|d	���|j|j|d
���|d�}|j	|j|d���|j	|jd��|j	|j|d
���|j	|jd
��|j	|jd
��|j	|j|d���|j	|jd��|j|j|d���|j|j|d���|j|j|d���|j|j|���|j|jd��|j|j|d���y#1swY��zxYw)Nr.rDr'r!r#r"r:r;r0r*rr+r�r�r<r1)r1rHrG�is_relative_tor�r2r3r�r@s   r�test_is_relative_to_commonz,_BasePurePathTest.test_is_relative_to_common�s����H�H��
�e�H�����)�Q�%5�%5�6����)�Q�%5�%5�t�<�����(�(���-�.�����(�(��,�-�����(�(��3��0�1�����(�(��.�/�����(�(��5��2�3�����(�(��/�0�
�
�
�0�
1�
���S�#�&�2�	
����)�)�!�C�&�1�2�����)�)�!�G�*�5�6�����)�)�!�E�(�3�4�����)�)�!�D�'�2�3�
�f�I������(�(��3��0�1�����(�(��-�.�����(�(��4��1�2�����(�(��.�/�����(�(��/�0�����(�(��6��3�4�����(�(��0�1�����)�)�!�D�'�2�3�����)�)�!�H�+�6�7�����)�)�!�F�)�4�5�����)�)�!�#�.�/�����)�)�"�-�.�����)�)�!�C�&�1�2�+2�
1�s�<O�Oc���|j}|d�}tdtjdz�D]�}tj||�}tj
|�}|j
|j|j�|j||�|jt|�t|��|jt|�t|����y)Nrrr�)r1�range�pickle�HIGHEST_PROTOCOL�dumps�loadsr^rr?r�r\)rrAr7�proto�dumpedr�s      r�test_pickling_commonz&_BasePurePathTest.test_pickling_common�s����H�H��
�f�I���1�f�5�5��9�:�E��\�\�!�U�+�F����f�%�B��M�M�"�,�,����4����R��#����T�"�X�t�A�w�/����S��W�c�!�f�-�
;rN)+rrrr�r8rBrPrarfrprur|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr r&r(r,r4r7r@rUrrrr(s���
���L�*�
4�%�6
+�-�4� 1�/�9�8&�&�$B�$�=�=�
�
<�	-�&�-,�^�8
1�0�6�$
@�-�^*�.�0�	4�K�(M�&:�A�"A�$3�2MO�^!3�F	.rrc�f�eZdZejZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zy)
�PurePosixPathTestc��|j}|dddd�|dddd�|dddd�|d	ddd	�|d
ddd
�|dddd�y)N)�//ar"r'�//)rEr!r")�///ar"r+)r+r!r")z////ar"��c:a)�c:\a)z\a�r|�rr�s  r�test_drive_root_partsz'PurePosixPathTest.test_drive_root_parts�sd���,�,��	�l��D�2B�C�
�m��C��A�
�n��C��A�
�h��B��9�
�j��B�
�;�
�h��B��9rc���|j}|j|d�jd�|j|d�jd�|j|d�jd�y)Nrr+z///a/b�//a/brE�r1r?rsr�s  r�	test_rootzPurePosixPathTest.test_root�sU���H�H������6�����-�����8��)�)�3�/�����7����$�/rc���|j}|j|d�|d��|j|d�|d��|j|d�|d��y)Nr.�A/br*rFrD)r1r�r?r�s  r�test_eqzPurePosixPathTest.test_eq�sS���H�H�����A�e�H�a��h�/�����4��!�F�)�,����A�d�G�Q�u�X�.rc��|j}|j|d�j�d�|j|d�j�d�|j|d�j�d�y)Nr+zfile:///z/a/b.cz
file:///a/b.cz/a/b%#czfile:///a/b%25%23c)r1r?r�r�s  r�test_as_urizPurePosixPathTest.test_as_uri�s`���H�H������3�����*�5�����8��+�+�-��?�����9��,�,�.�0D�Erc	��ddlm}|j}	tjd�|j|d�j�d|tjd��z�y#t
$r|j
d�Y�_wxYw)Nr)�quote_from_bytes�éz1\xe9 cannot be encoded to the filesystem encodingu/a/bézfile:///a/b)	�urllib.parserWr1r�r��UnicodeEncodeError�skipTestr?r�)rrWrAs   r�test_as_uri_non_asciiz'PurePosixPathTest.test_as_uri_non_ascii�sw��1��H�H��	P��K�K���	
����:��-�-�/�&�)9�"�+�+�f�:M�)N�N�	P��"�	P��M�M�N�O�	P�s�A,�,B	�B	c�h�|j}|j|d�jd��y)Nr�r�)r1r�rJr�s  r�
test_matchzPurePosixPathTest.test_match�s&���H�H������6�����0�1rc�j�|j}|j|�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��y)Nr!r&r+r*�/a/b/rDrN�r1r��is_absoluter�r�s  r�test_is_absolutez"PurePosixPathTest.test_is_absolutes����H�H���������*�+�����3��+�+�-�.�����6��.�.�0�1�����#��*�*�,�-�����$��+�+�-�.�����'�
�.�.�0�1�����%��,�,�.�/�����'�
�.�.�0�1rc�L�|j}|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��y)NFr'r+�/foo/barz/dev/con/PRN/NUL�r1r^�is_reservedr�s  r�test_is_reservedz"PurePosixPathTest.test_is_reservedsy���H�H���
�
�e�Q�r�U�.�.�0�1��
�
�e�Q�s�V�/�/�1�2��
�
�e�Q�z�]�6�6�8�9��
�
�e�Q�1�2�>�>�@�Arc�:�|j}|d�}|jd�}|j||d��|d�jd�}|j||d��|d�jd�}|j||d��y�NrDr"rNr*z//cr��r1rIr?r�s    r�	test_joinzPurePosixPathTest.test_joins����H�H��
�e�H��
�Z�Z��_������Q�w�Z�(�
�t�W�
�
�e�
$������Q�u�X�&�
�u�X�
�
�t�
$������Q�t�W�%rc���|j}|d�}|dz}|j||d��|d�dz}|j||d��|d�dz}|j||d��yrj�r1r?r�s    r�test_divzPurePosixPathTest.test_divss���H�H��
�e�H��
��W������Q�w�Z�(�
�t�W�u�_������Q�u�X�&�
�u�X��_������Q�t�W�%rc��|j}|ddd�}|tjd��}|j||�y)N�c:r!r"�c:\a\b)r1r��PureWindowsPathr?r�s    r�test_parse_windows_pathz)PurePosixPathTest.test_parse_windows_path*s>���H�H��
�d�C����
�w�&�&�z�2�
3������B�rN)rrrr��
PurePosixPathr1rLrPrSrUr\r^rcrhrlrortrUrrrBrB�sG��
�
�
�C�
:�0�/�F�P�2�	2�B�&�	&� rrBc�2�eZdZejZejj�Zejdggd�gd�dgddgd��d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#y")#�PureWindowsPathTest)r=)�rqr!)rqr#)rcrqr!))�c:/r!)rqr+r!)rqr*)z/zryr!)z//x/yryr!�rN)rNr:)�//a/b/r:)r=rH�c:/ar{�//a/b/cc��|j}|dddd�|dddd�|dddd�|d	ddd
�|dddd�|d
ddd�|dddd�|dddd�|dddd�|dddd�|dddd�|dddd�|dddd �|d!ddd"�|d#d$dd%�|d&ddd'�|d(d$dd%�|d)d*dd+�|d,d-dd.�|d/d-dd0�|d1d-dd2�|d3d4dd5�|d6d7dd8�|d9d:dd;�|d<d=dd>�|d?d@ddA�|dBdCddD�|dEdFddG�|dHdFddG�|dIdFddJ�|dKdLddM�|dNdOddP�|dQdRddS�|dTdUddV�|dWdXddY�|dZddd[�|d\ddd"�|d]d^dd_�|d`ddda�|dbdddc�|ddddde�|dfdddf�|dgdhddi�|djdhddk�|dldmddn�|dodmddp�y)qN)rqrqr')ry�\)�c:\)r+)rrGrx)r|)r�r!)r*)rr!)rE�\\)r�)rD�\\a)r�)z//a/�\\a\)r�rz�\\a\b)�\\a\b\)r{)r})r�r:)r!zZ:br:�Z:)r�r"r:)r!zZ:/br:)�Z:\r"r:)r!z//b/cr)z\\b\c)z\\b\c\r))r!z	Z://b//c/zd/)r�r"r:r))r!z//b/c//r))z//./c:�\\.\c:)r�)z//?/c:/z\\?\c:)�\\?\c:\)�//?/c:/a)r�r!)r�r�)r�r")z//?�\\?)r�)z//?/�\\?\)r�)z//?/UNC�\\?\UNC)r�)z//?/UNC/�\\?\UNC\)r�)z	//?/UNC/b�	\\?\UNC\b)r�)z
//?/UNC/b/�
\\?\UNC\b\)r�)z//?/UNC/b/cz\\?\UNC\b\c)�\\?\UNC\b\c\)z//?/UNC/b/c/)z
//?/UNC/b/c/d)r�r))z//./BootPartition/z\\.\BootPartition)z\\.\BootPartition\)z//?/BootPartition/z\\?\BootPartition)z\\?\BootPartition\)z//./PhysicalDrive0�\\.\PhysicalDrive0)r�)z
//?/Volume{}/z\\?\Volume{})z
\\?\Volume{}\)z//./nul�\\.\nul)r�r�)rr"r:)zZ:/ar�r:)z//?/Z:/ar�r:z\\?\Z:)z\\?\Z:\r"r:)�c:/a/b�c:x/y)r�r!r"rZ�y)r��c:/x/y)r�rZr�)z./c:s)�c:s)zcc:s)zC:c:s�C:)r�r�)zC:/c:s)�C:\r�)zD:a�./c:b�D:)r�r!�c:b)zD:/ar�)zD:\r!r�rJrKs  rrLz)PureWindowsPathTest.test_drive_root_partsBs����,�,��
�g��b�'�:�
�h��d�I�>�
�f��D�'�:�
�h��b�+�>�
�i��d�M�B�
�g��D�+�>�
�g���I�>�
�h���Z�@�
�i�	�2�|�D�
�j�
�D�/�J�
�k�
�D�/�J�
�l�
�D�:M�N�
���b�2B�C�
� ��d�4F�G�
�!�
�D�:M�N�
�&��d�4K�L�
�#�
�D�:M�N�
�k��R��H�
�l��T�;K�L�
�m��T�;O�P�
� ��T�;O�P�
�h���Z�@�
�i�	�2�|�D�
�l��b�/�J�
�m���<M�N�
�n���=O�P�
�o�(9�2�?S�T�
��(:�D�BY�Z�
��(:�D�BY�Z�
� �(:�D�B]�^�
�%�)?��Gb�c�
�%�)?��Gb�c�
�%�)@�"�F`�a�
� �):�D�BX�Y�
�l��r�?�K�
���D�2B�C�
�!��d�4F�G�
�%��T�;T�U�	�!��d�4P�Q�
�"��d�4F�G�
�j��B��9�
�i��B�	�:�
�j��b�-�@�
�k��d�O�D�
���b�2D�E�
���d�4H�Irc��|jd�}|jt|�d�|jd�}|jt|�d�|jd�}|jt|�d�|jd�}|jt|�d�|jd	�}|jt|�d
�y)Nr;za\b\czc:/a/b/czc:\a\b\crNr�r}z\\a\b\c�	//a/b/c/dz	\\a\b\c\d)r1r?r\r6s  r�test_strzPureWindowsPathTest.test_str�s����H�H�W�������Q���+��H�H�Z� ������Q���/��H�H�W�������Q���.��H�H�Y�������Q���/��H�H�[�!������Q��!1�2rc�X�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd	�|jd
�y)Nz.\a:brqrHz	c:a\b.txtr�rIz
c:\a\b.txtz\\some\sharez\\some\share\az\\some\share\a\b.txtrdres r�test_str_subclassz%PureWindowsPathTest.test_str_subclass�s���� � ��*�� � ��&�� � ��'�� � ��.�� � ��(�� � ��)�� � ��0�� � �!2�3�� � �!5�6�� � �!<�=rc�<�|j}|j|d�|d��|j|d�|ddd��|j|d�|d��|j|d�|d��|j|d�|d��|j|d�|d	��|j|d
�|d��|j|d�|d
��|j|d�|d��y)N�c:a/brqr!r"zd:a/br�rza/BrR�C:a/B�c:A/b�//Some/SHARE/a/Bz//somE/share/A/buİui̇)r1r?r�r�s  rrSzPureWindowsPathTest.test_eq�s����H�H������7��Q�w�Z�0�����7��Q�t�S�#�%6�7����A�g�J��'�
�3����A�g�J��(��4����A�f�I�q��{�3�����5��1�U�8�,�����7��Q�w�Z�0�����-�.��2D�0E�F�����8��a�	�l�3rc�4�|j}|jt�5|d�j�ddd�|jt�5|d�j�ddd�|j	|d�j�d�|j	|d�j�d�|j	|d�j�d�|j	|d	�j�d
�|j	|d�j�d�|j	|d
�j�d�|j	|d�j�d�y#1swY��IxYw#1swY��"xYw)Nrr�ryzfile:///c:/zc:/a/b.czfile:///c:/a/b.cz	c:/a/b%#czfile:///c:/a/b%25%23cuc:/a/bézfile:///c:/a/b%C3%A9z
//some/share/zfile://some/share/z//some/share/a/b.czfile://some/share/a/b.cu//some/share/a/b%#céz"file://some/share/a/b%25%23c%C3%A9)r1rHr�r�r?r�s  rrUzPureWindowsPathTest.test_as_uri�s9���H�H��
�
�
�z�
*�
�f�I����+�
�
�
�z�
*�
�g�J����+�����5����*�M�:�����:��-�-�/�1C�D�����;��.�.�0�2I�J�����<��/�/�1�3I�J�����?�+�2�2�4�6J�K�����/�0�7�7�9�2�	4�����4�5�<�<�>�=�	?�+�
*��
*�
*�s�F�F
�F
�
Fc��|j}|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d	�jd��|j|d	�jd��|j|d
�jd��|j|d
�jd��|j|d
�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d�jd��|j|d
�jd��y)Nzc:/b.pyz*:/*.pyzc:/*.pyzd:/b.pyr�r�zc:*.pyzc:b.pyr�z//some/share/a.pyz
//*/*/*.pyz//some/share/*.pyz//other/share/a.pyz//some/share/a/b.pyzB.pyzb.PYr�r�z//Some/Share/B.Pyz//somE/sharE/*.pY)r1r�rJr�r�s  rr^zPureWindowsPathTest.test_match�sI���H�H������)��*�*�9�5�6�����)��*�*�9�5�6�����9��+�+�I�6�7�����6�����1�2�����6�����2�3�����6�����3�4�����8��*�*�7�3�4�����8��*�*�9�5�6�����7��)�)�(�3�4�����7��)�)�)�4�5�����-�.�4�4�\�B�C�����-�.�4�4�5H�I�J�����/�0�6�6�7J�K�L�����0�1�7�7�8K�L�M�����&�	����/�0�����+��,�,�[�9�:�����-�.�4�4�5H�I�J�����9��+�+�G�4�5�����9��+�+�H�5�6�����.�/�5�5�g�>�?rc�,���fd�}�j}|d�}|d�}|||��j||k��j||kD�|d�}|d�}|||��j||k��j||kD�y)Nc�N���j||��j||�yr)�assertLessEqual�assertGreaterEqualr�s  �r�assertOrderedEqualzDPureWindowsPathTest.test_ordering_common.<locals>.assertOrderedEqual�s#���� � ��A�&��#�#�A�q�)rr�r�z//some/Share/A/br�)r1r�)rr�rAr7r�s`    rr�z(PureWindowsPathTest.test_ordering_common�s����	*�
�H�H��
�g�J��
�g�J���1�a� �����Q�������Q���
� �!��
� �!���1�a� �����Q�������Q��rc��|j}|d�}|j}|j|d�|d�}|j}|j|d�|d�}|j}|j|d�y)Nr�)rqr!r"r�)r�r!r"r�)r�r:r))r1r]r?)rrAr7r]s    r�
test_partszPureWindowsPathTest.test_parts�st���H�H��
�g�J���������� 0�1�
�h�K���������� 2�3�
�k�N���������� 8�9rc�d�|j}|d�}|j|j|d��|j|jj|d��|j|jjj|d��|j|jjjj|d��|d�}|j|j|d��|j|jj|d��|j|jjj|d��|j|jjjj|d��|d	�}|j|j|d
��|j|jj|d��|j|jjj|d��y)Nzz:a/b/czz:a/b�z:a�z:zz:/a/b/czz:/a/b�z:/a�z:/r�r}rNr�r@s   r�test_parentzPureWindowsPathTest.test_parent�sx���H�H��
�i�L��������1�W�:�.���������!�E�(�3���������/�/��4��9���������/�/�6�6��$��@�
�j�M��������1�X�;�/���������!�F�)�4���������/�/��5��:���������/�/�6�6��%��A�
�k�N��������1�Y�<�0���������!�G�*�5���������/�/��7��<rc��|j}|d�}|j}|jt|�d�|j|d|d��|j|d|d��|j|dd|d�f�|j|dd|d�f�|j|dd|d�|d�f�|j|dd|d�f�|j|ddd�|d�f�|j|ddd�|d�|d�f�|jt	|�|d�|d�g�|jt�5|dddd�|d�}|j}|jt|�d�|j|d|d	��|j|d|d
��|j|dd|d	�f�|j|dd|d	�f�|j|dd|d	�|d
�f�|j|dd|d
�f�|j|ddd�|d	�f�|j|ddd�|d
�|d	�f�|jt	|�|d	�|d
�g�|jt�5|dddd�|d�}|j}|jt|�d�|j|d|d��|j|d|d
��|j|dd|d�f�|j|dd|d�f�|j|dd|d�|d
�f�|j|dd|d
�f�|j|ddd�|d�f�|j|ddd�|d
�|d�f�|jt	|�|d�|d
�g�|jt�5|dddd�y#1swY���xYw#1swY���xYw#1swYyxYw)Nzz:a/b/r�rr�r�r�r�zz:/a/b/r�r�r�r}rN)r1ror?r�r�rHr�r�s    r�test_parentsz PureWindowsPathTest.test_parents�s
���H�H��
�h�K���i�i������S��1�%�����Q���5��*�����Q���4��)�����Q�q��A�e�H�;�/�����S�b��A�e�H�;�/�����R�a��1�U�8�Q�t�W�"5�6�����Q�R��1�T�7�*�-�����S�q�S��A�e�H�;�/�����T�r�T��Q�t�W�a��h�$7�8�����c��Q�u�X�q��w�$7�8�
�
�
�z�
*���F�+�
�i�L���i�i������S��1�%�����Q���6��+�����Q���5��*�����Q�q��A�f�I�<�0�����Q�r��Q�v�Y�L�1�����R�a��1�V�9�a��h�"7�8�����Q�R��1�U�8�+�.�����S�q�S��A�f�I�<�0�����T�r�T��Q�u�X�q��y�$:�;�����c��Q�v�Y��%��$9�:�
�
�
�z�
*���F�+�
�k�N���i�i������S��1�%�����Q���9��.�����Q���7��,�����Q�q��A�i�L�?�3�����Q�r��Q�y�\�O�4�����R�a��1�Y�<��7��"<�=�����Q�R��1�W�:�-�0�����S�q�S��A�i�L�?�3�����T�r�T��Q�w�Z��9��$>�?�����c��Q�y�\�1�W�:�$>�?�
�
�
�z�
*���F�+�
*�9+�
*��+�
*��+�
*�s$�,Q�Q"�Q/�Q�"Q,�/Q8c�<�|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d	�jd
�y)Nrqr�ry�c:/a/b/rNr�r{r�z./c:ar'r�r�s  r�
test_drivezPureWindowsPathTest.test_drive-s����H�H������4�����-�����7��)�)�4�0�����5�����.�����9��+�+�T�2�����7��)�)�:�6�����8��*�*�J�7�����;��-�-�z�:�����7��)�)�2�.rc��|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d	�jd�y)
Nrqr'r�ryrr�rNr{r�rOr�s  rrPzPureWindowsPathTest.test_root8s����H�H������4����r�*�����7����"�-�����5�����-�����9��*�*�D�1�����7����$�/�����8��)�)�4�0�����;��,�,�d�3rc��|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d	�jd�y)
Nrqr�ryr�r�rNr�r{r�)r1r?r�r�s  r�test_anchorzPureWindowsPathTest.test_anchorBs����H�H������4�����.�����7��*�*�D�1�����5����&�1�����9��,�,�f�5�����7��*�*�L�9�����8��+�+�\�:�����;��.�.��=rc�<�|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d	�jd�|j|d
�jd�|j|d�jd�y)Nrqr'ryr�r"r��c:a/b.pyr��	c:/a/b.py�//My.py/Share.php�//My.py/Share.php/a/brr�s  r�	test_namezPureWindowsPathTest.test_nameLs����H�H������4����r�*�����5�����+�����7����#�.�����8��)�)�3�/�����:��+�+�V�4�����;��,�,�f�5�����.�/�4�4�b�9�����2�3�8�8�#�>rc�\�|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d	�jd�|j|d
�jd�|j|d�jd�|j|d
�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�y)Nrqr'ryr�r�r�rr��	c:a/.hgrc�
c:/a/.hgrc�
c:a/.hg.rcr
�c:/a/.hg.rc�c:a/b.tar.gzr
�
c:/a/b.tar.gz�!c:a/Some name. Ending with a dot.�"c:/a/Some name. Ending with a dot.r�r�rr�s  r�test_suffixzPureWindowsPathTest.test_suffixWs����H�H������4�����,�����5����"�-�����7��*�*�B�/�����8��+�+�R�0�����:��-�-�u�5�����;��.�.��6�����;��.�.��3�����<��/�/��4�����<��/�/��7�����=�)�0�0�%�8�����>�*�1�1�5�9�����?�+�2�2�E�:�����>�?�F�F��K�����?�@�G�G��L�����.�/�6�6��;�����2�3�:�:�B�?rc�l�|j}|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jdg�|j|d�jdg�|j|d�jg�|j|d	�jg�|j|d
�jdg�|j|d�jdg�|j|d
�jddg�|j|d�jddg�|j|d�jg�|j|d�jg�|j|d�jg�|j|d�jg�y)Nrqryr�r�r�rr�r�r�r�r
r�r�rr
r�r�r�r�r�rr�s  r�
test_suffixesz!PureWindowsPathTest.test_suffixesjs����H�H������4��)�)�2�.�����5��*�*�B�/�����7��,�,�b�1�����8��-�-�r�2�����:��/�/�%��9�����;��0�0�5�'�:�����;��0�0�"�5�����<��1�1�2�6�����<��1�1�E�7�;�����=�)�2�2�U�G�<�����>�*�3�3�f�e�_�E�����?�+�4�4�v�u�o�F�����.�/�8�8�"�=�����2�3�<�<�b�A�����>�?�H�H�"�M�����?�@�I�I�2�Nrc���|j}|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d�jd�|j|d	�jd�|j|d
�jd�|j|d�jd
�|j|d�jd�|j|d�jd�y)Nrqr'zc:.zc:..rryr�r"r�r�rr�rr�rr�rrr�s  r�	test_stemzPureWindowsPathTest.test_stem}s���H�H������4����r�*�����5�����+�����6�����.�����5�����+�����7����#�.�����:��+�+�S�1�����;��,�,�g�6�����<��-�-�u�5�����>�*�/�/��9�����>�?�D�D�8�	:rc�~�|j}|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|jt|d�jd�|jt|d	�jd�|jt|d
�jd�|jt|d�jd��d
�|jt|d�jd��d�|j|d�jd�|d��|j|d�jd�|d��|jt|d�jd�|jt|d�jd
�y)Nr�r"z	c:a/d.xmlr�z
c:/a/d.xml�c:a/Dot ending.�c:/a/Dot ending.rqry�
//My/Sharer!�d:�.\d:�d:e�.\d:e�c:a/d:�c:a/d:e�d:/e)r1r?rLrHr�r\r�s  r�test_with_namez"PureWindowsPathTest.test_with_name�s����H�H������7��-�-�g�6��+��G�����8��.�.�w�7��<��I�����,�-�7�7��@�!�K�.�Q�����-�.�8�8��A�1�\�?�S����*�a��g�&7�&7��A����*�a��h�&8�&8�'�B����*�a��o�&?�&?��I�����Q�s�V�-�-�d�3�4�g�>�����Q�s�V�-�-�e�4�5�x�@�����7��-�-�d�3�Q�x�[�A�����7��-�-�e�4�a�	�l�C����*�a��j�&:�&:�F�C����*�a��j�&:�&:�L�Irc�~�|j}|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|jt|d�jd�|jt|d	�jd�|jt|d
�jd�|jt|d�jd��d
�|jt|d�jd��d�|j|d�jd�|d��|j|d�jd�|d��|jt|d�jd�|jt|d�jd
�y)Nr�r)zc:a/dr�zc:/a/dr�r�rqryr�r!r�r�r�r�r�r�r�)r1r?rMrHr�r\r�s  r�test_with_stemz"PureWindowsPathTest.test_with_stem�s����H�H������7��-�-�c�2�A�g�J�?�����8��.�.�s�3�Q�x�[�A�����,�-�7�7��<�a��j�I�����-�.�8�8��=�q��{�K����*�a��g�&7�&7��=����*�a��h�&8�&8�#�>����*�a��o�&?�&?��E�����Q�s�V�-�-�d�3�4�g�>�����Q�s�V�-�-�e�4�5�x�@�����7��-�-�d�3�Q�x�[�A�����7��-�-�e�4�a�	�l�C����*�a��j�&:�&:�F�C����*�a��j�&:�&:�L�Irc��|j}|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|j|d�jd�|d��|jt|d�jd�|jt|d	�jd�|jt|d
�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd
�|jt|d�jd
�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�|jt|d�jd�y)Nr�r
zc:a/b.gzr�z	c:/a/b.gzr�r�r'rcr+r�r*rrqr+z\.gzzc:.gzr,zc\dz.c/dz.c\d)r1r?rNrHr�r�s  r�test_with_suffixz$PureWindowsPathTest.test_with_suffix�s;���H�H������7��/�/��6��*�
�F�����8��0�0��7��;��H�����:��2�2�5�9�1�Z�=�I�����;��3�3�E�:�A�k�N�K����*�a��e�&7�&7��?����*�a��f�&8�&8�%�@����*�a��f�&8�&8�%�@����*�a��o�&A�&A�5�I����*�a��j�&<�&<�d�C����*�a��j�&<�&<�c�B����*�a��j�&<�&<�d�C����*�a��j�&<�&<�d�C����*�a��j�&<�&<�f�E����*�a��j�&<�&<�g�F����*�a��j�&<�&<�g�F����*�a��j�&<�&<�e�D����*�a��j�&<�&<�f�E����*�a��j�&<�&<�f�E����*�a��j�&<�&<�g�Frc��|j}|d�}|j|j|d��|d��|j|jd�|d��|j|j|d��|d��|j|jd�|d��|j|jd�|d��|j|j|d��|��|j|jd�|��|j|j|d�d�	�|d��|j|jdd�	�|d��|j|j|d�d�	�|d��|j|jdd�	�|d��|j|jdd�	�|d��|j|j|d�d�	�|��|j|jdd�	�|��|j|j|d
�d�	�|d��|j|j|d�d�	�|d
��|j|j|d�d�	�|d��|jt|j|��|jt|jd�|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d
��|jt|j|d��|jt|j|�d�	�|jt|jdd�	�|jt|j|d�d�	�|jt|j|d�d�	�|jt|j|d�d�	�|jt|j|d�d�	�|jt|j|d�d�	�|d�}|j|j|d��|d��|j|jd�|d��|j|j|d��|d��|j|jd�|d��|j|jd�|d��|j|j|d��|��|j|jd�|��|j|j|d�d�	�|d��|j|jdd�	�|d��|j|j|d�d�	�|d��|j|jdd�	�|d��|j|jdd�	�|d��|j|j|d�d�	�|��|j|jdd�	�|��|j|jdd�	�|d��|j|jdd�	�|d��|j|jdd�	�|d
��|jt|jd�|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d��|jt|j|d ��|jt|j|d��|jt|j|d��|jt|j|d!��|jt|jdd�	�|jt|j|d�d�	�|jt|j|d�d�	�|jt|j|d�d�	�|jt|j|d �d�	�|jt|j|d�d�	�|jt|j|d�d�	�|jt|j|d!�d�	�|d"�}|j|j|d#��|d��|j|jd#�|d��|j|jd$�|d��|j|j|d%��|d��|j|jd%�|d��|j|jd&�|d��|j|j|d'��|��|j|jd'�|��|j|j|d#�d�	�|d��|j|jd#d�	�|d��|j|jd$d�	�|d��|j|j|d%�d�	�|d��|j|jd%d�	�|d��|j|jd&d�	�|d��|j|j|d'�d�	�|��|j|jd'd�	�|��|j|j|d(�d�	�|d��|j|jd(d�	�|d��|jt|j|d)��|jt|j|d*��|jt|j|d+��|jt|j|d,��|jt|j|d)�d�	�|jt|j|d*�d�	�|jt|j|d+�d�	�|jt|j|d,�d�	�y)-N�	C:Foo/BarrqzFoo/Bar�c:foO�Bar�c:foO/�	c:foO/baRTr.�
C:Foo/Bar/Bazr�	C:Foo/Bazz../Barz	C:Baz/Barz
../../Foo/Barr'r�r+�Foo�/Foo�C:/Foo�
C:/Foo/Barry�c:/foO�c:/foO/�
c:/foO/baR�C:/Bazz
../Foo/Bar�C:/Foo/Bar/Baz�
C:/Foo/Baz�C:Foo�d:/�//C/Foo�//Server/Share/Foo/Bar�//sErver/sHare�//sErver/sHare/�//sErver/sHare/Foo�//sErver/sHare/Foo/�//sErver/sHare/Foo/Barz//sErver/sHare/bar�/Server/Share/Foo�c:/Server/Share/Foo�
//z/Share/Foo�//Server/z/Foo)r1r?rKrHr�r@s   r�test_relative_toz$PureWindowsPathTest.test_relative_to�s����H�H��
�k�N��������q��w�/��9��>�������t�,�a�	�l�;�������q��z�2�A�e�H�=�������w�/��5��:�������x�0�!�E�(�;�������q��~�6���<�������{�3�Q�S�9�������q��w���=�q��|�L�������t�T��:�A�i�L�I�������q��z�4��@�!�E�(�K�������w���=�q��x�H�������x���>��%��I�������q��~�t��D�a�c�J�������{�D��A�1�3�G�������q��'9�4��H�!�D�'�R�������q��~�t��D�a��k�R�������q��~�t��D�a��FX�Y����*�a�m�m�Q�S�9����*�a�m�m�R�8����*�a�m�m�Q�t�W�=����*�a�m�m�Q�s�V�<����*�a�m�m�Q�u�X�>����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�x�[�A����*�a�m�m�Q��5G�H����*�a�m�m�Q�{�^�D����*�a�m�m�Q�S�$��G����*�a�m�m�R���F����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�u�X�t��L����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�x�[�$��O�
�l�O��������q��x�0�!�I�,�?�������u�-�q��|�<�������q��{�3�Q�u�X�>�������x�0�!�E�(�;�������y�1�1�U�8�<�������q���7���=�������|�4�a�c�:�������q��x���>��)��M�������u�d��;�Q�y�\�J�������q��{�D��A�1�U�8�L�������x���>��%��I�������y�$��?��5��J�������q�����E�q�s�K�������|�T��B�A�C�H�������x���>��,��P�������'7���F��$��P�������|�T��B�A�h�K�P����*�a�m�m�T�:����*�a�m�m�Q�t�W�=����*�a�m�m�Q�x�[�A����*�a�m�m�Q�7G�5H�I����*�a�m�m�Q�|�_�E����*�a�m�m�Q�w�Z�@����*�a�m�m�Q�t�W�=����*�a�m�m�Q�u�X�>����*�a�m�m�Q�s�V�<����*�a�m�m�Q�v�Y�?����*�a�m�m�Q�y�\�B����*�a�m�m�T�4��H����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�w�Z���N����*�a�m�m�Q�t�W�d��K����*�a�m�m�Q�u�X�t��L����*�a�m�m�Q�s�V�T��J����*�a�m�m�Q�v�Y���M����*�a�m�m�Q�y�\�4��P�
�&�'��������q�)9�':�;�Q�y�\�J�������'7�8�!�I�,�G�������'8�9�1�Y�<�H�������q�)=�'>�?��5��J�������';�<�a��h�G�������'<�=�q��x�H�������q�)A�'B�C�Q�S�I�������'?�@�!�#�F�������q�)9�':�D��I�1�Y�<�X�������'7���F��)��U�������'8�$��G��9��V�������q�)=�'>���M�q�QV�x�X�������';�T��J�A�e�H�U�������'<�d��K�Q�u�X�V�������q�)A�'B�D��Q�ST�SV�W�������'?���N�PQ�PS�T�������q�)=�'>���M�q�Q]��_�������';�T��J�A�l�O�\����*�a�m�m�Q�7J�5K�L����*�a�m�m�Q�7L�5M�N����*�a�m�m�Q��5G�H����*�a�m�m�Q�7G�5H�I����*�a�m�m�Q�7J�5K�UY��Z����*�a�m�m�Q�7L�5M�W[��\����*�a�m�m�Q��5G�QU��V����*�a�m�m�Q�7G�5H�RV��Wrc�r�|j}|d�}|j|j|d���|j|jd��|j|j|d���|j|jd��|j|jd��|j|j|d���|j|jd��|j|j|���|j|jd��|j|j|d���|j|j|d���|j|j|d	���|j|j|d
���|j|j|d���|j|j|d���|j|j|d
���|d�}|j|j|d���|j|j|d���|j|jd��|j|j|d���|j|jd��|j|jd��|j|j|d���|j|j|d���|j|j|d���|j|j|d���|j|j|d���|j|j|d���|j|j|d���|j|j|d
���|j|j|d���|d�}|j|j|d���|j|jd��|j|jd��|j|j|d���|j|jd��|j|jd��|j|j|d���|j|jd��|j|j|d���|j|j|d ���|j|j|d!���|j|j|d"���y)#Nr�rqr�r�r�r'r�r+r�r�r�r�r�r�ryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr)r1r�r6r�r@s   r�test_is_relative_toz'PureWindowsPathTest.test_is_relative_to,s����H�H��
�k�N������(�(��4��1�2�����(�(��.�/�����(�(��7��4�5�����(�(��1�2�����(�(��2�3�����(�(��;��8�9�����(�(��5�6�����)�)�!�#�.�/�����)�)�"�-�.�����)�)�!�D�'�2�3�����)�)�!�C�&�1�2�����)�)�!�E�(�3�4�����)�)�!�F�)�4�5�����)�)�!�H�+�6�7�����)�)�!�O�*<�=�>�����)�)�!�K�.�9�:�
�l�O������(�(��5��2�3�����(�(��8��5�6�����(�(��3�4�����(�(��<��9�:�����(�(��6�7�����)�)�$�/�0�����)�)�!�H�+�6�7�����)�)�!�,<�*=�>�?�����)�)�!�L�/�:�;�����)�)�!�G�*�5�6�����)�)�!�D�'�2�3�����)�)�!�E�(�3�4�����)�)�!�C�&�1�2�����)�)�!�F�)�4�5�����)�)�!�I�,�7�8�
�&�'������(�(��+;�)<�=�>�����(�(�)9�:�;�����(�(�):�;�<�����(�(��+?�)@�A�B�����(�(�)=�>�?�����(�(�)>�?�@�����(�(��+C�)D�E�F�����(�(�)A�B�C�����)�)�!�,?�*@�A�B�����)�)�!�,A�*B�C�D�����)�)�!�O�*<�=�>�����)�)�!�,<�*=�>�?rc��|j}|j|�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d�j��|j|d	�j��|j|d
�j��|j|d�j��|j|d�j��|j|d
�j��|j|d�j��|j|d�j��y)Nr!r&r+r*r`rqrHzc:a/b/ryr|r�rNr{r}r�rar�s  rrcz$PureWindowsPathTest.test_is_absoluteas����H�H���������*�+�����3��+�+�-�.�����6��.�.�0�1�����3��+�+�-�.�����4��,�,�.�/�����7��/�/�1�2�����4��,�,�.�/�����5��-�-�/�0�����8��0�0�2�3�����%��,�,�.�/�����&�	�-�-�/�0�����)��0�0�2�3�����'�
�.�.�0�1�����(��/�/�1�2�����)��0�0�2�3�����+��2�2�4�5rc��|j}|d�}|jd�}|j||d��|jd�}|j||d��|jd�}|j||d��|jd�}|j||d��|jd�}|j||d��|jd	�}|j||d��|jd
�}|j||d��|j|d��}|j||d��|j|d
��}|j||d��|j|d��}|j||d��|d�jd�}|j||d��|d�jd�}|j||d��|d�jd�}|j||d��y)N�C:/a/b�x/y�
C:/a/b/x/y�/x/y�C:/x/y�D:x/y�D:/x/y�//host/share/x/yr�r��./d:s�
C:/a/b/d:s�./dd:s�C:/a/b/dd:s�E:d:srE�serverz//server�sharez//server/sharez//./BootPartition�Windowsz//./BootPartition/Windowsrkr�s    rrlzPureWindowsPathTest.test_joinvs����H�H��
�h�K��
�Z�Z��
������Q�|�_�-�
�Z�Z��
������Q�x�[�)��Z�Z��
 ������Q�w�Z�(�
�Z�Z��
!������Q�x�[�)�
�Z�Z�*�
+������Q�1�2�3��Z�Z��
 ������Q�|�_�-�
�Z�Z��
!������Q�x�[�)��Z�Z��'�
�
#������Q�|�_�-�
�Z�Z��(��
$������Q�}�-�.�
�Z�Z��'�
�
#������Q�w�Z�(�
�t�W�
�
�h�
'������Q�z�]�+�
�z�]�
#�
#�G�
,������Q�/�0�1�
�"�
#�
,�
,�Y�
7������Q�:�;�<rc�\�|j}|d�}|j|dz|d��|j|dzdz|d��|j|dz|d��|j|dzdz|d��|j|d	z|d	��|j|d
zdz|d	��|j|dz|d��|j|d
zdz|d��|j|dz|d��|j|d
z|d��|j|dz|d��|j||d�z|d��|j||d�z|d��|j||d�z|d��y)Nrrr	rZr�r
rz/xrr�r
rr�r�rrrrrrnr@s   rrozPureWindowsPathTest.test_div�s����H�H��
�h�K������U��A�l�O�4�����S��3���,��8�����V��Q�x�[�1�����T��C���8��5�	
����W��a��j�1�����T��E�)�1�W�:�6�����X��q��{�3�����T��F�*�A�h�K�8�����/�/��3E�1F�G�	
����W��a��o�6�����X��q��{�3�	
����Q�w�Z���<��9�����Q�x�[��!�M�*:�;�����Q�w�Z���7��4rc�<�|j}|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d	�j��|jd|d
�j��|jd|d�j��|jd|d�j��|jd|d
�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��|jd|d�j��y)NFr'r+rez//my/share/nul/con/auxT�nul�aux�prn�conzconin$zconout$�COM1�LPT9ucom¹ucom²ulpt³zNUL.txtzPRN  z	AUX  .txtzCOM1:barzLPT9   :barzbar.com9zbar.lpt9zc:/baz/con/NULzc:/NUL/con/bazrfr�s  rrhz$PureWindowsPathTest.test_is_reserved�s����H�H���
�
�e�Q�r�U�.�.�0�1��
�
�e�Q�s�V�/�/�1�2��
�
�e�Q�z�]�6�6�8�9��
�
�e�Q�7�8�D�D�F�G��
�
�d�A�e�H�0�0�2�3��
�
�d�A�e�H�0�0�2�3��
�
�d�A�e�H�0�0�2�3��
�
�d�A�e�H�0�0�2�3��
�
�d�A�h�K�3�3�5�6��
�
�d�A�i�L�4�4�6�7��
�
�d�A�f�I�1�1�3�4��
�
�d�A�f�I�1�1�3�4��
�
�d�A�i�L�4�4�6�7��
�
�d�A�i�L�4�4�6�7��
�
�d�A�i�L�4�4�6�7�	
�
�
�d�A�i�L�4�4�6�7��
�
�d�A�g�J�2�2�4�5��
�
�d�A�k�N�6�6�8�9��
�
�d�A�j�M�5�5�7�8��
�
�d�A�m�,�8�8�:�;�	
�
�
�e�Q�z�]�6�6�8�9��
�
�e�Q�z�]�6�6�8�9��
�
�d�A�.�/�;�;�=�>��
�
�e�Q�/�0�<�<�>�?rN)$rrrr�rsr1rr��copy�updaterLr�r�rSrUr^r�r�r�r�r�rPr�r�r�r�r�r�r�r�rrrcrlrorhrUrrrwrw1s���
�
!�
!�C�$�1�1�6�6�8�L������>���.��O����<J�|
3�
>�4�?� @�6 �"
:�=�$,�\	/�4�>�	?�@�&O�&:�J� J� G�0gX�R3@�j6�*#=�J5�2!@rrwc�6�eZdZejZd�Zd�Zd�Zy)�PurePathTestc���|jd�}|jt|�tjdk(rt
j�yt
j�y�Nr!�nt)r1r^rr�rr�rsrur6s  r�test_concrete_classz PurePathTest.test_concrete_class�sD���H�H�S�M���
�
�d�1�g�')�w�w�$��G�#�#�	S�<C�<Q�<Q�	Src�|�tjd�}tjd�}|j||�yr0)r�rursr��rr7r�s   r�test_different_flavours_unequalz,PurePathTest.test_different_flavours_unequal�s2���!�!�#�&���#�#�C�(�����A�q�!rc���tjd�}tjd�}|jt�5||kddd�|jt�5||kddd�|jt�5||kDddd�|jt�5||k\ddd�y#1swY�sxYw#1swY�\xYw#1swY�ExYw#1swYyxYwr0)r�rursrHrGr(s   r�!test_different_flavours_unorderedz.PurePathTest.test_different_flavours_unordered�s����!�!�#�&���#�#�C�(��
�
�
�y�
)�
��E�*�
�
�
�y�
)�
��F�*�
�
�
�y�
)�
��E�*�
�
�
�y�
)�
��F�*�
)�
*�
)��
)�
)��
)�
)��
)�
)�s0�B8�#C�C�)C�8C�C
�C�C%N)	rrrr��PurePathr1r&r)r+rUrrr"r"�s��
�
�
�C�S�
"�

rr"c�J�tjjtg|���Sr)r�rt�join�BASE�rZs r�<lambda>r1�s��"�'�'�,�,�t�(�a�(rc�J�tjjtg|���Sr)r�rtr.r	r0s rr1r1�s��b�g�g�l�l�6�.�A�.rr%z)test requires a Windows-compatible systemz'test requires a POSIX-compatible systemc�$�eZdZejZy)�PosixPathAsPureTestN)rrrr��	PosixPathr1rUrrr4r4�s
��
�
�
�Crr4c�0�eZdZejZd�Zd�Zy)�WindowsPathAsPureTestc��|j}|jt�5|d�j�ddd�y#1swYyxYw�Nry)r1rH�NotImplementedError�ownerr�s  r�
test_ownerz WindowsPathAsPureTest.test_owner�4���H�H��
�
�
�2�
3�
�e�H�N�N��4�
3�
3���A�Ac��|j}|jt�5|d�j�ddd�y#1swYyxYwr9)r1rHr:�groupr�s  r�
test_groupz WindowsPathAsPureTest.test_groupr=r>N)rrrr��WindowsPathr1r<rArUrrr7r7s��
�
�
�C��
rr7c��eZdZdZd�Zejdk(rd�Znd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zej ed
ud��d��Zd�Zd�Zd�Zej ed�d��Zd�Zd�Zd�Zd�Zd�Zd�Zej>d��Z d�Z!d�Z"d�Z#d �Z$ej>d!��Z%d"�Z&d#�Z'ej>d$��Z(ej>d%��Z)d&�Z*djd'�Z+e+xZ,Z-ej>d(��Z.ej>d)��Z/d*�Z0d+�Z1ejdd,��Z3e4ejdd-���Z5ejdd.��Z6ej>d/��Z7d0�Z8ej>d1��Z9d2�Z:ejved3�d4��Z<ejve=d5�d6��Z>d7�Z?d8�Z@d9�ZAejveBed:�d;�d<��ZCej eBed:�d=�d>��ZDd?�ZEd@�ZFej>dA��ZGdB�ZHdC�ZIdD�ZJdE�ZKdF�ZLdG�ZMej eNdH�dI��ZOePdJ��ZQdK�ZRdL�ZSdM�ZTej>dN��ZUdO�ZVdP�ZWdQ�ZXdR�ZYdS�ZZdT�Z[ejveBedU�dV�ej e\j�dWk(dX�dY���Z^dZ�Z_ejveBe`d[�d\�ej eNd]�ej ed^�d_����Zad`�Zbda�Zcdb�Zddc�Zedd�Zfde�Zgej>df��Zhej>dg��Ziej>dh��Zjdi�Zky
)k�
_BasePathTestz?Tests for the FS-accessing functionalities of the Path classes.c�.�d�}|j|�tjt�tjt	d��tjt	d��tjt	d��tjt	dd��tjt	d��tt	d�d�5}|j
d	�ddd�tt	dd
�d�5}|j
d�ddd�tt	dd�d�5}|j
d
�ddd�tt	dd�d�5}|j
d�ddd�tt	ddd�d�5}|j
d�ddd�tjt	d�d�tj�r�tjdt	d��tjdt	d��|jdt	d��|jtjj	dd�t	dd��|jtjj	dd�t	dd��tjdt	d��yy#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��_xYw)Nc�t�tjtd�d�tjt
�y)N�dirE�)r��chmodr.r�rmtreer/rUrr�cleanupz$_BasePathTest.setUp.<locals>.cleanup*s"���H�H�T�&�\�5�)����T�"r�dirA�dirB�dirC�dirDrG�fileA�wbsthis is file A
�fileBsthis is file B
�fileCsthis is file C
z	novel.txtsthis is a novel
�fileDsthis is file D
r�linkA�non-existing�
brokenLink�linkBr�linkC�linkD�brokenLinkLoop)
�
addCleanupr��mkdirr/r.�open�writerIr�can_symlink�symlink�dirlinkrt)rrK�fs   rr8z_BasePathTest.setUp)s��	#�	
���� �
�����
����f���
����f���
����f���
����f�f�%�&�
����f���
�$�w�-��
&�!�
�G�G�'�(�'�
�$�v�w�'��
.�!�
�G�G�'�(�/�
�$�v�w�'��
.�!�
�G�G�'�(�/�
�$�v�{�+�T�
2�a�
�G�G�(�)�3�
�$�v�v�w�/��
6�!�
�G�G�'�(�7�
����f��q�!�� � �"��J�J�w��W�
�.��J�J�~�t�L�'9�:��L�L���g��/��L�L������d�F�3�T�&�'�5J�K��L�L������d�F�3�T�&�'�5J�K��J�J�'�$�/?�*@�A�#�'�
&��
.�
.��
.�
.��
2�
2��
6�
6�s<�K�
K#�:K0�*K=�L
�K �#K-�0K:�=L�
Lr%c�4�tj||d��y)NT��target_is_directory�r�ra�r�src�dests   rrbz_BasePathTest.dirlinkLs���J�J�s�D�d�;rc�0�tj||�yrrgrhs   rrbz_BasePathTest.dirlinkOs���J�J�s�D�!rc��|jtjjt	|�t	|��|�d|�d��y)Nz and z don't point to the same file)r�r�rt�samefiler\�r�path_a�path_bs   r�
assertSamez_BasePathTest.assertSameRs3��������(�(��V��c�&�k�B���)�	*rc���|jt�5}||i|��ddd�|jjjtj
�y#1swY�>xYwr)rH�FileNotFoundErrorr?�	exception�errno�ENOENT)r�funcr_�kwargs�cms     r�assertFileNotFoundz _BasePathTest.assertFileNotFoundWsL��
�
�
�0�
1�R��$�!�&�!�2�������+�+�U�\�\�:�2�
1�s�	A�A%c��|jtjj|�tjj|��yr)r?r�rt�normcaserns   r�assertEqualNormCasez!_BasePathTest.assertEqualNormCase\s0��������)�)�&�1�2�7�7�3C�3C�F�3K�Lrc�<�|jtj��}|j||�|j	t|�t|��|j
t|�t|��|j|j��yr)
r1r��getcwdr?r}r\r^rr�rbr(s   r�	_test_cwdz_BasePathTest._test_cwd_sf���H�H�R�Y�Y�[�!������A��� � ��Q���Q��0��
�
�d�1�g�t�A�w�'�����
�
��(rc�Z�|jj�}|j|�yr)r1�cwdr�r6s  r�test_cwdz_BasePathTest.test_cwdfs���H�H�L�L�N�����q�rc
�t�|j}tjd�5}t|_|jt
|�j��t�|jt
|d�j��t�|jt
|d�j��tjjtd��|jt
|ddd�j��tjjtddd��|jt
|dd�j��tjjtdd��|jt
|d�j��tjjtd��|jt
|d	�j��tjjtd	��|jt
|d
�j��tjjtd
��|jt
|dd
�j��tjjtdd
��|jt
|d
d�j��tjjtd
d��ddd�y#1swYyxYw)N�	os.getcwdrcr!r"r:rXrRrWr[r)r1r�patchr/�return_valuer?r\�absoluter�rtr.)rrArs   r�test_absolute_commonz"_BasePathTest.test_absolute_commonjs���H�H��
�Z�Z��
$��"&�F��
���S������0�$�7����S��3����!2�3�T�:����S��3����!2�3�R�W�W�\�\�$��5L�M����S��3��S�!1�!:�!:�!<�=�r�w�w�|�|�D�RU�WZ�\_�?`�a�
���S��7�G�!4�!=�!=�!?�@�"�'�'�,�,�t�U\�^e�Bf�g����S��<��!9�!9�!;�<�b�g�g�l�l�4�Q]�>^�_����S��#3�!4�!=�!=�!?�@�"�'�'�,�,�t�Ue�Bf�g�
���S��4��!1�!1�!3�4�b�g�g�l�l�4��6N�O����S��3���!6�!6�!8�9�2�7�7�<�<��c�SW�;X�Y����S��4���!6�!6�!8�9�2�7�7�<�<��d�TW�;X�Y�#%�
$�
$�s�LL.�.L7c�R�|jtjjd��}|j	||�|jt
|�t
|��|jt|�t|��|j|j��y)N�~)r1r�rt�
expanduserr?r}r\r^rr�rbr(s   r�
_test_homez_BasePathTest._test_home�so���H�H�R�W�W�'�'��,�-������A��� � ��Q���Q��0��
�
�d�1�g�t�A�w�'�����
�
��(rNz(Test requires pwd module to get homedir.)�reasonc��tj�5}|j|jj	��|j�tjjtd�|d<|j|jj	��tjjtd�|d<|j|jj	��ddd�y#1swYyxYw)N�userprofile�USERPROFILE�home�HOME)
r�EnvironmentVarGuardr�r1r��clearr�rtr.r/)r�envs  r�	test_homez_BasePathTest.test_home�s����
*�
*�
,���O�O�D�H�H�M�M�O�,��I�I�K�!#�����d�M�!B�C�
���O�O�D�H�H�M�M�O�,��'�'�,�,�t�V�4�C��K��O�O�D�H�H�M�M�O�,�-�
,�
,�s�CC8�8Dc�T�Gd�dt|j�}|td��}|jd|j	�j
�|jd|j
�j
�ts9|jd|jd�j�j
�|jd|dzj|dz�j
�|jd|dzj|dz�j
�tj�r-|jd|dzj�j
�|j�D]}|jd|j
�� |j!d	�D]}|jd|j
�� |j#d	�D]}|jd|j
�� |j%�D]"\}}}|jd|j
��$y)
Nc��eZdZy)�+_BasePathTest.test_with_segments.<locals>.PNrTrUrrrAr��rWrrArlrmr�rPrRrUr�)rr1r/r?r�r�resolverrr��renamerxrr`�readlink�iterdir�glob�rglob�walk)rrAr7rt�dirpath�dirnames�	filenamess       r�test_with_segmentsz _BasePathTest.test_with_segments�s���	�%�t�x�x�	�
�d�r�"������Q�Z�Z�\�4�4�5�����Q�Y�Y�[�3�3�4�����R�����!5�!@�!@�!B�!M�!M�N�����a�'�k�1�1�!�g�+�>�I�I�J�����a�'�k�2�2�1�w�;�?�J�J�K�� � �"����R�!�g�+�!7�!7�!9�!D�!D�E��I�I�K�D����R����1� ��F�F�3�K�D����R����1� ��G�G�C�L�D����R����1�!�,-�F�F�H�(�G�X�y����R��!3�!3�4�-5rc���tjjtd�}tjjtdd�}|j	|�}|j	|�}|j	|�}|j|j
|��|j|j
|��|j|j
|��|j|j
|��tjjtd�}|j	|�}|jt|j|�|jt|j|�|jt|j|�|jt|j|�|jt|j|�|jt|j|�y)NrPrMrRrj)
r�rtr.r/r1r�rmr�rHrs)r�
fileA_path�
fileB_pathr7r�r��non_existentr�s        r�
test_samefilez_BasePathTest.test_samefile�sX���W�W�\�\�$��0�
��W�W�\�\�$���8�
��H�H�Z� ��
�X�X�j�
!���H�H�Z� ������
�
�:�.�/�����
�
�2��'�������J�/�0�������A��'��w�w�|�|�D�%�0���H�H�\�"�����+�Q�Z�Z��;����+�Q�Z�Z��F����+�Q�Z�Z��;����+�Q�Z�Z��F����+�Q�Z�Z��;����+�Q�Z�Z��Frc��|jd�}|j|j�tjd��y)Nr'rc)r1r?�statr�r6s  r�test_empty_pathz_BasePathTest.test_empty_path�s-���H�H�R�L���������2�7�7�3�<�0rzWASI has no user accounts.c���|j}|d�}|j|j�|tjjd���|d�}|j|j�|�|d�}|j|j�|�|d�}|j|j�|�||d�j�j�dz}|j|j�|�|d�}|j|j�|tjjd�d��y)Nr�rj�/~�../~r'z~/a:br=)r1r?r�r�rtr�r�r@s   r�test_expanduser_commonz$_BasePathTest.test_expanduser_common�s���H�H��
�c�F����������2�7�7�+=�+=�c�+B�)C�D�
�e�H����������+�
�d�G����������+�
�f�I����������+�
�a��e�n�n��%�%�&��,����������+�
�g�J����������2�7�7�+=�+=�c�+B�G�)L�Mrc�n�|j}|t�}|jd|j��|jd|dzj��|jd|dzj��|jd|dzdzj��t	j
�r�|jd|dzj��|jd|dzj��|jd|dzdzj��|jd|dzdzj��|jd|d	zj��|jd|d	zjd�
��|jd|dzj��|jd|d�j��|jd|td
z�j��|jd|tdz�j��y)NTrLrPF�bahrUrXrRrW��follow_symlinksrjz/xyzzy���)r1r/r^�existsrr`r@s   r�test_existsz_BasePathTest.test_exists�s����H�H��
�d�G���
�
�d�A�H�H�J�'��
�
�d�Q��Z�/�/�1�2��
�
�d�Q��[�0�0�2�3��
�
�e�a�'�k�E�1�9�9�;�<�� � �"��M�M�$��W�� 4� 4� 6�7��M�M�$��W�� 4� 4� 6�7��M�M�$��W��w�!6� >� >� @�A��M�M�%�!�g�+��"5�!=�!=�!?�@��M�M�%�!�l�"2�!:�!:�!<�=��M�M�$��\�!1� 9� 9�%� 9� P�Q��
�
�e�a�%�i�/�/�1�2��
�
�e�Q�x�[�/�/�1�2��
�
�e�Q�t�h��/�6�6�8�9��
�
�e�Q�t�f�}�-�4�4�6�7rc���|jt�}|dzjd�5}|j|tj
�|j
|j�d�ddd�|dzjd�5}|j|tj�|j
|j�j�d�ddd�|dzjdd��5}|j|tj�|j
|j�j�d�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)NrPr�zthis is file A
�rb�this is file Ar)�	buffering)r1r/r^r>�io�
TextIOBaser?�read�BufferedIOBase�strip�	RawIOBase)rr7rcs   r�test_open_commonz_BasePathTest.test_open_common�s���H�H�T�N���'�k�
�
��
$���!�!�!�R�]�]�3����Q�V�V�X�'9�:�%��'�k�
�
��
%���!�!�!�R�%6�%6�7����Q�V�V�X�^�^�-�/@�A�&��'�k�
�
���
�
2�a��!�!�!�R�\�\�2����Q�V�V�X�^�^�-�/@�A�3�
2�
%�
$��&�
%��3�
2�s&�AE�AE�4AE$�E�E!�$E-c�*�|jt�}|dzjd�|j|dzj	�d�|jt|dzjd�|j|dzj	�d�y)NrPsabcdefg�somestr)r1r/�write_bytesr?�
read_bytesrHrGr6s  r�test_read_write_bytesz#_BasePathTest.test_read_write_bytes�sw���H�H�T�N��	
�W��!�!�*�-����!�g�+�1�1�3�Z�@����)�a�'�k�%>�%>�	�J����!�g�+�1�1�3�Z�@rc�8�|jt�}|dzjdd��|j|dzj	dd��d�|jt|dzjd	�|j|dzj	d��d�y)
NrPuäbcdefgzlatin-1��encoding�utf-8�ignore)r��errors�bcdefgs	somebytes)r1r/�
write_textr?�	read_textrHrGr6s  r�test_read_write_textz"_BasePathTest.test_read_write_text�s����H�H�T�N��	
�W�� � ��i� �@����!�g�+�0�0��X�1�/�08�	:�	
���)�a�'�k�%=�%=�|�L����!�g�+�0�0�)�0�D�j�Qrc�@�|jt�}|dzjdd��|j|dzj	�d�|dzjdd��|j|dzj	�d�|dzjdd��|j|dzj	�d	�ttjd
��}|dzjd�|j|dzj	�d
|zdz|zdz�y)NrPzabcde
fghlk

mnopq�
)�newlinesabcde
fghlk

mnopq�
sabcde

fghlk

mnopqz
sabcde

fghlk

mnopq�asciir�zabcde
fghlk

mnopqsabcdesfghlks
mnopq)r1r/r�r?r�r�r��linesep)rr7�os_linesep_bytes   r�test_write_text_with_newlinesz+_BasePathTest.test_write_text_with_newliness���H�H�T�N��	
�W�� � �!:�D� �I����!�g�+�1�1�3�3�	5�
�W�� � �!:�D� �I����!�g�+�1�1�3�3�	5�
�W�� � �!:�F� �K����!�g�+�1�1�3�7�	9� ��
�
�W�=��	
�W�� � �!8�9����!�g�+�1�1�3�"�_�4�x�?�/�Q�T^�^�	`rc
��|j}|t�}|j�}t|�}gd�}t	j
�r|gd�z
}|j
||D�chc]}|t|���c}�ycc}w)N)rLrMrNrGrP)rUrXrWr[)r1r/r��setrr`r?)rrAr7�it�pathsrzr�s       r�test_iterdirz_BasePathTest.test_iterdirsl���H�H��
�d�G��
�Y�Y�[���B���<��� � �"��J�J�H�����h� @�h��!�D�!�*�h� @�A�� @s�#A?
c���|j}|td�}t|j��}dD�chc]}|td|���}}|j	||�ycc}w)NrX)rRrZ)r1r/r�r�r?)rrAr7r�r�rzs      r�test_iterdir_symlinkz"_BasePathTest.test_iterdir_symlink"s^��
�H�H��
�d�G����A�I�I�K� ��2D�F�2D�Q�Q�t�W�a�(�2D��F������)��Gs�A!c�\�|jtd�}|jt�5}t	|j��ddd�|j
jjtjtjtjf�y#1swY�]xYw�NrP)r1r/rH�OSError�nextr��assertInrtru�ENOTDIRrv�EINVAL�rr7rys   r�test_iterdir_nodirz _BasePathTest.test_iterdir_nodir+sr���H�H�T�7�#��
�
�
�w�
'�2�������(�	
�
�
�b�l�l�(�(�5�=�=�+0�<�<����+G�	H�	(�
'�s�B"�"B+c�������fd�}�j��t�}|jd�}�j|tj
j�||dg�||jd�g�||jd�ddg�tj�s||jd�ddg�n||jd�gd	��tj�s||jd
�dg�n||jd
�gd��tj�s||jd�dg�n||jd�dd
g�tj�r||jd�dg�tj�s||jd�gd��y||jd�gd��y)Nc
�x���jt|�|D�chc]}�t|���c}�ycc}wr)r?r�r/)r�rzr�rArs   ��r�_checkz._BasePathTest.test_glob_common.<locals>._check6s/������S��Y�h�(H�h��!�D�!�*�h�(H�I��(Hs�7
rPrRz
dir*/file*�
dirB/fileB�
dirC/fileCz*ArL)rLrPrUz*B/*)r��
dirB/linkD�linkB/fileBzlinkB/linkD�*/fileBr�rW�*/)rLrMrNrG)rLrMrNrGrX)	r1r/r�r>�collectionsr��Iteratorrr`�rr�r7r�rAs`   @r�test_glob_commonz_BasePathTest.test_glob_common5ss���	J��H�H��
�d�G��
�V�V�G�_�����b�+�/�/�":�":�;��r�G�9���q�v�v�g���#��q�v�v�l�#�l�L�%A�B��$�$�&��1�6�6�$�<�&�'�!2�3��1�6�6�$�<�!;�<��$�$�&��1�6�6�&�>�L�>�2��1�6�6�&�>�$B�
C��$�$�&��1�6�6�)�$�|�n�5��1�6�6�)�$�|�]�&C�D�� � �"��1�6�6�,�'�,��8��$�$�&��1�6�6�$�<�!A�B��1�6�6�$�<�!J�Krc�����j���fd�}�t�}||ddg�||dddg�||ddg�||dddg�y)Nc	����|j||��D�chc]
}t|���}}|D�chc]}t�t|����}}�j||�ycc}wcc}w)Nr�)r�r\r/r?)rt�patternr�rzr�r{rArs      ��rr�z6_BasePathTest.test_glob_case_sensitive.<locals>._checkVsa���&*�i�i���i�&W�X�&W��c�!�f�&W�F�X�19�:��A��A�d�A�J���H�:����V�X�.��Y��:s
�A!�A&z
DIRB/FILE*TFr�z
dirb/file*)r1r/)rr�rtrAs`  @r�test_glob_case_sensitivez&_BasePathTest.test_glob_case_sensitiveTsX����H�H��	/���w���t�\�4��,��t�\�5�<�.�9��t�\�4��,��t�\�5�<�.�9rc������fd�}�j��t�}|jd�}�j|tj
j�||dg�||jd�dg�||jd�dg�||jd�g�tj�s||jd�dg�n||jd�gd��||jd	�gd
��tj�s||jd�gd��n||jd�gd
��||jd�gd���td�}||jd�gd��||jd	�ddg�||jd�ddg�||jd�dg�||jd�dg�||jd�dg�||jd�ddg�||jd�ddg�||jd�dg�||jd�dg�y)Nc�`���jt|�t�fd�|D���y)Nc3�8�K�|]}�t|����y�wr)r/)rYr�rAs  �rr[zB_BasePathTest.test_rglob_common.<locals>._check.<locals>.<genexpr>bs�����1O�h��!�D�!�*�h�s�)r?�sorted)r�rzrArs  ��rr�z/_BasePathTest.test_rglob_common.<locals>._checkas"������V�D�\�6�1O�h�1O�+O�PrrPrRr�z**/fileBz*/fileAr�)r�zdirB/linkD/fileBr�zdirA/linkC/fileBzfile*)rPr�r��dirC/dirD/fileDr�)rLrMrN�	dirC/dirDrG)rL�
dirA/linkCrMr�rNrrGrXr')r'rLrMrNrGrrNr�)r��dirC/novel.txtrrr�rz**/file*zdir*/**rz*/*r�z*.txtrz*.*)	r1r/r�r>r�r�r�rr`r�s`   @r�test_rglob_commonz_BasePathTest.test_rglob_common`s ���	Q��H�H��
�d�G��
�W�W�W�
�����b�+�/�/�":�":�;��r�G�9���q�w�w�w��,��0��q�w�w�z�"�\�N�3��q�w�w�y�!�2�&��$�$�&��1�7�7�9�%��~�6��1�7�7�9�%�(K�
L��q�w�w�w��"C�	D��$�$�&��1�7�7�4�=�#�
�
�1�7�7�4�=�#�
�	�q�w�w�r�{�M�N�
�d�F�O���q�w�w�s�|�>�	?��q�w�w�w��,�0A�!B�C��q�w�w�z�"�\�3D�$E�F��q�w�w�y�!�K�=�1��q�w�w�u�~� 1�2�3��q�w�w�t�}�{�m�,��q�w�w�r�{�V�[�1�2��q�w�w�t�}�v�{�3�4��q�w�w�w��"2�!3�4��q�w�w�u�~� 0�1�2rc��|j}|t�}t|jd��}hd�}|j	||D�chc]}||z��	c}�ycc}w)Nr�>rLrMrNrGrPrUrXrWr[rrr�r�r�rr)r1r/r�r�r?)rrAr7�given�expectrZs      r�test_rglob_symlink_loopz%_BasePathTest.test_rglob_symlink_loop�sW��
�H�H��
�d�G���A�G�G�C�L�!��
��	
����� 7��1��Q��� 7�8�� 7s�A
c��d}|j}|t�dz}||gdg|z���}|jd��djdg|z�}t	d�D�cgc]}|j|���}}|D]}|j
t|�|��t	d�D�cgc]}|jd���}}|}t	|�D])}	|dz}|D]}|j
t|�|���+ycc}wcc}w)	N��deepr)T�ror+r��d)	r1r/r]r.r9r�r?r�r�)
r�depthrA�baser7r��j�itersr��is
          r�test_glob_many_open_filesz'_BasePathTest.test_glob_many_open_files�s������H�H����w����
�d�#�s�e�E�k�#��	�������(�(�C�5�5�=�)��-2�3�Z�8�Z�����7�#�Z��8��B����T�"�X�q�)��*/��*�5�*�Q����C��*��5����u��A��C��A���� � ��b��1�-����9��6s�C<�(Dc
��|j}|t�}|jt|j	d��|td�h�|jt|j	d��|tdd�h�|jt|j	d��|tdd�h�|jt|j	d��|td�h�|jt|j	d��t��|jt|j	d��t��|jt|j	d	��t��|jt|j	d
jdgdz���|tgdgdz���h�y)Nrz../..zdirA/..rLz
dirA/../file*z
dirA/../fileAzdirA/../file*/..z../xyzzyzxyzzy/..r+�2)r1r/r?r�r�r.r@s   r�test_glob_dotdotz_BasePathTest.test_glob_dotdot�sW���H�H��
�d�G������Q�V�V�D�\�*�a��d�m�,=�>�����Q�V�V�G�_�-��4��t�1D�/F�G�����Q�V�V�I�.�/�1�T�6�4�3H�1J�K�����Q�V�V�O�4�5��4��9Q�7S�T�����Q�V�V�$6�7�8�#�%�@�����Q�V�V�J�/�0�#�%�8�����Q�V�V�J�/�0�#�%�8�����Q�V�V�C�H�H�d�V�b�[�$9�:�;�q��?T���QS��?T�=U�Vrc	���|j}|t�dz}|j�|jtj
|�t
d�D]I}|d|��z}|dzr|j|tdd���.|j|td���K|jtt|jd���d�|jtt|jd	���d
�|jtt|jd���d
�|jtt|jd���d
�y)
N�permissionsr�linkr�rG�nonexistentrNr�r�rz*/fileCz*/file*)r1r/r]r\rrJr9�
symlink_tor?r�r�r�)rrArrrs     r�test_glob_permissionsz#_BasePathTest.test_glob_permissions�s��
�H�H����w��&���
�
�����	�(�(�$�/��s��A��D���*�$�D��1�u�����$��
� >�?�����$���0��	
����S����3��0�1�3�7�����S����4��1�2�B�7�����S����9�!5�6�7��<�����S����9�!5�6�7��<rc���|jt�dz}|j�|dz}|jd�|j	t|j
d��|g�y)N�long_symlink�bad_link�Xbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadr�)r1r/r]rr?rr�)rrr s   r�test_glob_long_symlinkz$_BasePathTest.test_glob_long_symlink�sW���x�x��~��.���
�
���*�$�����K�(������	�	�&� 1�2�X�J�?rc�&�d}|dz}tjtjd�}tj|gdg|z���}|j	d��t|�5t
|jd��ddd�y#1swYyxYw)Nr�
rr)Tr
r�)r��Pathrr	r]rr�r��r�recursion_limit�directory_depthrrts     r�test_glob_above_recursion_limitz-_BasePathTest.test_glob_above_recursion_limit�ss����)�B�.���|�|�I�,�,�f�5���|�|�D�=�S�E�O�$;�=���
�
�4�
� �
 ��
1�����4��!�2�
1�
1�s�#B�Bc�J�|j|�}|j||�yr)r�r?)rr7rz�strictr�s     r�_check_resolvez_BasePathTest._check_resolve�s ��
�I�I�f�������H�%rc�	�|j}|td�}|jt�5}|j	d��ddd�|jjjtj�|jt|j	d���tjjtd��|tddd�}|jt|j	d���tjjtddd��|tdddd�}|jt|j	d���tjjtjjddd���|tdd	�}|j||�|td
�}|j||td��|tdd
d	�}|j||tdd	��|tddd	�}|j||tdd	��|tdd
d	ddd�}|j||tdd	ddd�d�|tdd
dddd�}tj dk(r"|j||tdddd�d�n |j||tddd�d�t#j$t'j(dtj*����}|j-t"j.|�tj0tjj|�tdd��tj0td�tjj|d��|tdddd	�}|j3||tdd	��|tdddddd�}|j||tdddd�d�|tddddddd�}tj dk(r|j|||ddd�d�y|j||tddd�d�y#1swY��:xYw)NrjT�r+F�in�spamrrMrRrUrPrLrYrZr%z-dirD)r�dir�linkX�linkY)r1r/rHr�r�r?rtrurvr}r\r�rtr.�abspath�_check_resolve_relativerr�	_longpath�tempfile�mkdtemprr\rJra�_check_resolve_absolute)rrAr7ryr)s     r�test_resolve_commonz!_BasePathTest.test_resolve_common�s����H�H��
�d�E�N��
�
�
�w�
'�2�
�I�I�T�I�"�(�������+�+�U�\�\�:�� � ��Q�Y�Y�e�Y�%<�!=�!#�����d�E�!:�	<�
�d�E�4��(��� � ��Q�Y�Y�e�Y�%<�!=�!#�����d�E�4��!H�	J�
�d�D�%��v�.��� � ��Q�Y�Y�e�Y�%<�!=�!#����������e�T�6�1R�!S�	U�
�d�F�G�$���$�$�Q��*�
�d�G����$�$�Q��$��(8�9�
�d�F�G�W�-���$�$�Q��$���(@�A�
�d�F�G�W�-���$�$�Q��$���(@�A�
�d�F�G�W�e�T�6�B���$�$�Q��$�����*0�)2�38�	:�
�d�F�G�T�5�$��?��
�7�7�d�?�
�(�(��A�d�F�E�4�.4�-6�7<�
>�

�(�(��A�d�E�4��,H�%�P����� 0� 0��57�Y�Y�[�!B�
C�����	�(�(�!�,�
�
�
�2�7�7�<�<��?�D���$9�:�
�
�
�4��<������a��!9�:�
�d�F�G�W�g�6���$�$�Q��$���(@�A�
�d�F�G�W�e�T�6�B���$�$�Q��$���t�V�(L�%*�	,�
�d�F�G�W�d�E�4��H��
�7�7�d�?�
�(�(��A�a���f�,E�u�M�
�(�(��A�d�E�4��,H�%�P�o(�
'�s�Q:�:Rc�:�|jt�}|jdtd��|jtj
jdd�td��|jtj
jdd�td��|dz}|j
|jd��|�|dzdz}|jt|jd��|j
|jd	��|dzdz�y)
Nrc�0�1�2Tr.�3�4F)
r1r/rbr.r�rtr?r�rHrs)rr7r�r�s    r�test_resolve_dotz_BasePathTest.test_resolve_dot(s���
�H�H�T�N�����S�$�s�)�$����R�W�W�\�\�#�s�+�T�#�Y�7����R�W�W�\�\�#�s�+�T�#�Y�7�
��G��������$��/��3�
��G�c�M�����+�Q�Y�Y�t��D�������%��0�!�c�'�C�-�@rc�J�|jdd�}tj�}tjt�	|j|j
�|jt|��tj|�y#tj|�wxYw)N�non�exist)r1r�r�chdirr/r?r�)rr7�old_cwds   r�)test_resolve_nonexist_relative_issue38671z7_BasePathTest.test_resolve_nonexist_relative_issue386716sg���H�H�U�G�$���)�)�+��
�����	����Q�Y�Y�[�$�(�(�4��*;�<��H�H�W���B�H�H�W��s�4B�B"c��|jt�}|j�}|j�}t|�|j	t
�5|5	ddd�ddd�t|�t|�|j
�|j�|j�|j	t
�5|5	ddd�ddd�y#1swY��xYw#1swY��xYw#1swY�*xYw#1swYyxYwr)	r1r/r�r�r2r3r�r�r�)rr7r��it2s    r�	test_withz_BasePathTest.test_with@s����H�H�T�N��
�Y�Y�[���i�i�k���S�	�
�
�
�0�
1����2�
	
�R���S�	�	���
�	�	�	��	�
�
��
�
�
�0�
1����2�
1����2�
1�����2�
1�sH�C(�C�C(�D�	C4�D�C%	�!C(�(C1�4C=	�9D�D	c�h�|jt�dz}|j�j}|dz}|j	|�|j|j�j|�|dz}|j	|�|j|j�j|�y)NrP�m����)r1r/r��st_moderIr?)rr7�mode�new_modes    r�
test_chmodz_BasePathTest.test_chmodTs����H�H�T�N�W�$���v�v�x�����&�=��	������������)�)�8�4��%�<��	������������)�)�8�4rc��|jt�dz}|j�}|j�j}|dz}|j|d��|j
|j�j|�|dz}|j|d��|j
|j�j|�y)NrUrLTr�rM)r1r/r�r�rNrIr?)rr7r�rOrPs     r�test_chmod_follow_symlinks_truez-_BasePathTest.test_chmod_follow_symlinks_truebs���
�H�H�T�N�W�$��
�I�I�K���v�v�x�����&�=��	����$��/��������)�)�8�4��%�<��	����$��/��������)�)�8�4rc�\�|jt�dz}|j�}|j|j�|�|j	|j
dz�|j
|j|j
�|j|j�|�y)NrPrM)r1r/r�r?rIrNr\r��rr7�sts   r�	test_statz_BasePathTest.test_statssv���H�H�T�N�W�$��
�V�V�X���������2�&�	����
�
�U�"�#����������,����A�F�F�H�b�)rc��|jt�dz}|j�}|j||jd���y)NrUFr�)r1r/r�r�rUs   r�test_stat_no_follow_symlinksz*_BasePathTest.test_stat_no_follow_symlinks}s:���H�H�T�N�W�$��
�V�V�X�����B����u�� =�>rc��|jt�dz}|j�}|j||jd���y)NrPFr�)r1r/r�r?rUs   r�&test_stat_no_follow_symlinks_nosymlinkz4_BasePathTest.test_stat_no_follow_symlinks_nosymlink�s:���H�H�T�N�W�$��
�V�V�X������Q�V�V�E�V�:�;rc��|jt�dz}|j�}|j||j	��y)NrU)r1r/r�r��lstatrUs   r�
test_lstatz_BasePathTest.test_lstat�s5���H�H�T�N�G�#��
�V�V�X�����B����	�*rc��|jt�dz}|j�}|j||j	��yr�)r1r/r�r?r]rUs   r�test_lstat_nosymlinkz"_BasePathTest.test_lstat_nosymlink�s5���H�H�T�N�W�$��
�V�V�X������Q�W�W�Y�'rz&the pwd module is needed for this testc�.�|jt�dz}|j�j}	t	j
|�j}|j|j��y#t$r|jd|z�Y�@wxYw)NrPz4user %d doesn't have an entry in the system database)r1r/r��st_uid�pwd�getpwuid�pw_name�KeyErrorr[r?r;)rr7�uidrs    rr<z_BasePathTest.test_owner�s}���H�H�T�N�W�$���f�f�h�o�o��	N��<�<��$�,�,�D�	
����q�w�w�y�)���	N��M�M�F��L�
N�	N���A4�4B�Bz&the grp module is needed for this testc�.�|jt�dz}|j�j}	t	j
|�j}|j|j��y#t$r|jd|z�Y�@wxYw)NrPz5group %d doesn't have an entry in the system database)r1r/r��st_gid�grp�getgrgid�gr_namerfr[r?r@)rr7�gidrs    rrAz_BasePathTest.test_group�s}���H�H�T�N�W�$���f�f�h�o�o��	O��<�<��$�,�,�D�	
����q�w�w�y�)���	O��M�M�G�#�M�
O�	O�rhc��|jt�dz}|j�|j|j�|j|j�yr�)r1r/�unlinkrzr�r6s  r�test_unlinkz_BasePathTest.test_unlink�sA���H�H�T�N�W�$��	���
�������'�������)rc��|jt�dz}|j|j�|jd��y)N�fileAAAT)�
missing_ok)r1r/rzrpr6s  r�test_unlink_missing_okz$_BasePathTest.test_unlink_missing_ok�s4���H�H�T�N�Y�&��������)�	���D��!rc�
�|jt�dz}|j�D]}|j��|j	�|j|j�|j|j�y)NrL)r1r/r�rp�rmdirrzr�r(s   r�
test_rmdirz_BasePathTest.test_rmdir�sZ���H�H�T�N�V�#������A�
�H�H�J��	���	�������'�������)rrzos.link() is not presentc�r�|jt�}|dz}|j�j}|dzdz}|j	|�|j|j�j|�|j
tjj||��|j
|j��|dzdz}td�}|j	|�|jtj|�j|�|j
|j��y�NrPrL�fileAArs)r1r/r��st_size�hardlink_tor?r�r�rtrmr��rel_join)rrA�target�sizer�link2�target2s       r�test_hardlink_toz_BasePathTest.test_hardlink_to�s����H�H�T�N���W����{�{�}�$�$���6�z�H�$������ ��������,�,�d�3�������(�(���6�7�����
�
��(��F�
�Y�&���7�#��
���'�"��������)�1�1�4�8��������'rzos.link() is presentc��|jt�}|dz}|dzdz}|jt�5|j	|�ddd�y#1swYyxYw)NrPrLr{)r1r/rHr:r}�rrAr7r�s    r�test_link_to_not_implementedz*_BasePathTest.test_link_to_not_implemented�sM���H�H�T�N��
��K��
��J��!��
�
�
�2�
3�
�M�M�!��4�
3�
3�s�A�Ac�Z�|jt�}|dz}|j�j}|dzdz}|j	|�}|j||�|j|j�j|�|j
|j�td�}|j	|�}|j||j|��|jtj|�j|�|j
|j�yrz)	r1r/r�r|r�r?rzr~r�)rrAr7r�r��	renamed_pr��	renamed_qs        r�test_renamez_BasePathTest.test_rename�s����H�H�T�N��
��K���v�v�x����
��J��!���H�H�Q�K�	�����A�&��������)�)�4�0�������'��Y����H�H�Q�K�	�����D�H�H�Q�K�0���������+�+�T�2�������'rc�\�|jt�}|dz}|j�j}|dzdz}|j	|�}|j||�|j|j�j|�|j
|j�tdd�}|j	|�}|j||j|��|jtj|�j|�|j
|j�y)NrPrLr{rMrR)	r1r/r�r|rxr?rzr~r�)rrAr7r�r��
replaced_pr��
replaced_qs        r�test_replacez_BasePathTest.test_replace�s����H�H�T�N��
��K���v�v�x����
��J��!���Y�Y�q�\�
�����Q�'��������)�)�4�0�������'��V�W�%���Y�Y�q�\�
�����T�X�X�a�[�1���������+�+�T�2�������'rc���|jt�}|j|dzj�|jd��|j|dzj�|jd��|j|dzj�|jd��|j	t
�5|dzj�ddd�y#1swYyxYw)NrUrPrWrVrXrM)r1r/r?r�rHr�r�s  r�
test_readlinkz_BasePathTest.test_readlink�s����H�H�T�N�����!�g�+�/�/�1�4�8�8�G�3D�E����!�l�*�4�4�6����.�1�	3����!�g�+�/�/�1�4�8�8�F�3C�D�
�
�
�w�
'�
��[�"�"�$�(�
'�
'�s�C�C'c��|jt�}|dz}|j|j��|j	�|j|j��|j
�}|j}|j}tjt|�|dz
|dz
f�|j	�|j
�}|j|j|�|j|j|�|dz}|j|j��|j	dd��|j|j��|jt|jd��y)N�newfileAr$�newfileBi�F)rO�exist_ok�r�)r1r/r�r��touchr�r��st_mtime�st_mtime_nsr��utimer\r�rHr�)rrAr7rV�	old_mtime�old_mtime_nss      r�test_touch_commonz_BasePathTest.test_touch_common	s���H�H�T�N��
�
�N���������$�	���	�������
�#�
�V�V�X���K�K�	��~�~��	����Q��)�b�.�)�b�.�9�:�	���	�
�V�V�X���������=�������Y�7�
�
�N���������$�	���U�U��+�������
�#����'�1�7�7�U��;rc��|jt�}|dz}|j�|jd�5}|j	|j�j
�d�ddd�y#1swYyxYw)NrPr�r�)r1r/r�r^r?r�r�)rrAr7rcs    r�test_touch_nochangez!_BasePathTest.test_touch_nochange	sV���H�H�T�N��
��K��	���	�
�V�V�D�\�Q����Q�V�V�X�^�^�-�/@�A��\�\�s�/A4�4A=c���|jt�}|dz}|j|j��|j	�|j|j��|j|j
��|jt�5}|j	�ddd�|jjjtj�y#1swY�>xYw)N�newdirA)
r1r/r�r�r]r��is_dirrHr�r?rtru�EEXIST)rrAr7rys    r�
test_mkdirz_BasePathTest.test_mkdir"	s����H�H�T�N��
�	�M���������$�	���	�������
�#�������
�#�
�
�
�w�
'�2�
�G�G�I�(�������+�+�U�\�\�:�(�
'�s�C+�+C4c�.�|jtdd�}|j|j��|j	t
�5}|j
�ddd�|jjjtj�|j
d��|j|j��|j|j��|j	t
�5}|j
d��ddd�|j|jjtj�tj|j�j �}|jtdd�}|j
dd��|j|j��|j|j��t"j$dk7r@|jtj|j�j �d	|z�|jtj|j&j�j �|�y#1swY��"xYw#1swY��{xYw)
N�newdirB�newdirCTr
�newdirD�newdirEimr%im)r1r/r�r�rHr�r]r?rtrurvr�r�r�r��S_IMODErNr�rrn)rr7ryrOs    r�test_mkdir_parentsz _BasePathTest.test_mkdir_parents-	s����H�H�T�9�i�0���������$�
�
�
�w�
'�2�
�G�G�I�(�������+�+�U�\�\�:�	������������
�#�������
�#�
�
�
�w�
'�2�
�G�G�D�G�!�(�������+�+�U�\�\�:��|�|�A�F�F�H�,�,�-���H�H�T�9�i�0��	����t��$�������
�#�������
�#�
�7�7�d�?����T�\�\�!�&�&�(�*:�*:�;�V�d�]�K�������a�h�h�m�m�o�&=�&=�>��E�'(�
'��(�
'�s�I=�>J
�=J�
Jc�r�|jtd�}|j�j}|j	|j��|j	|j
��|jt�5}|j�ddd�|jjjtj�|jd��|j	|j��|j|j�j|�y#1swY��xYw)NrMTr�)r1r/r��st_ctimer�r�r�rH�FileExistsErrorr]r?rtrur�)rr7�st_ctime_firstrys    r�test_mkdir_exist_okz!_BasePathTest.test_mkdir_exist_okF	s����H�H�T�6�"������*�*��������
�#�������
�#�
�
�
��
/�2�
�G�G�I�0�������+�+�U�\�\�:�	������������
�#��������*�*�N�;�0�
/�s�D-�-D6c��|jtd�}|j|j��|j	t
�5}|j
�ddd�|jjjtj�|dz}|j
d��|j�j}|j|j��|j	t
�5}|j
d��ddd�|j|jjtj�|j
dd��|j|j��|j|j�j|�y#1swY��OxYw#1swY��xYw)NrNr�Tr
�ror�)
r1r/r�r�rHr�r]r?rtrur�r�r�)rr7ryr�s    r�test_mkdir_exist_ok_with_parentz-_BasePathTest.test_mkdir_exist_ok_with_parentR	s+���H�H�T�6�"��������
�#�
�
�
��
/�2�
�G�G�I�0�������+�+�U�\�\�:�
�	�M��	����������*�*��������
�#�
�
�
��
/�2�
�G�G�D�G�!�0�������+�+�U�\�\�:�	����t��,�������
�#��������*�*�N�;�0�
/��0�
/�s�F)�=F6�)F3�6F?z)FS root cannot be modified on Emscripten.c���|jd�j�jd��|jd�j�jdd��y)Nr+Tr�r�)r1r�r]res r�test_mkdir_exist_ok_rootz&_BasePathTest.test_mkdir_exist_ok_rootc	sJ��	
����
����%�%�t�%�4�����
����%�%�d�T�%�Brc��dD](}|j|dz�}|j�r�(n|jd�|jt�5dzdzjd��ddd�y#1swYyxYw)N�ZYXWVUTSRQPONMLKJIHGFEDCBAz:\z&cannot find a drive that doesn't exist�childrtTr
)r1r�r[rHr�r])rr)r7s   r�test_mkdir_with_unknown_drivez+_BasePathTest.test_mkdir_with_unknown_drivei	sm��-�A�����U��#�A��8�8�:��.�

�M�M�B�C�
�
�
�w�
'�
��[�6�
!�(�(��(�6�(�
'�
'�s�A6�6A?c�2�|jtdd�}|j|j��|j	t
�5}|j
d��ddd�|jjjtj�|j	t
�5}|j
dd��ddd�|j|jjtj�y#1swY��xYw#1swY�JxYw)NrMrRTr
r��r1r/r�r�rHr�r]r?rtrur�r�s   r�test_mkdir_with_child_filez(_BasePathTest.test_mkdir_with_child_filet	s����H�H�T�6�7�+��������
�#��
�
��
/�2�
�G�G�D�G�!�0�������+�+�U�\�\�:�
�
�
��
/�2�
�G�G�D�4�G�0�0�������+�+�U�\�\�:�0�
/��0�
/�s�D�0D
�D
�
Dc�*�|jtd�}|j|j��|j	t
�5}|j
�ddd�|jjjtj�|j	t
�5}|j
d��ddd�|j|jjtj�y#1swY��xYw#1swY�JxYw)NrPTr�r�r�s   r�test_mkdir_no_parents_filez(_BasePathTest.test_mkdir_no_parents_file�	s����H�H�T�7�#��������
�#��
�
��
/�2�
�G�G�I�0�������+�+�U�\�\�:�
�
�
��
/�2�
�G�G�T�G�"�0�������+�+�U�\�\�:�0�
/��0�
/�s�C=�-D	�=D�	Dc	�����td�D]�}|jtd|z�}|j|j	��t
j�d���fd�	}td�D�cgc]}t|d|zz���c}�t��|dzdz}	tjd|�5|j
d	d
��ddd�|jt|���|j|j	����ycc}w#1swY�KxYw#t$r|jt|���Y�YwxYw)
N� zdirCPC%dc���t|�}�j�r�||��j|��||�yr)r\�pop�add)rtrO�concurrently_createdr��
real_mkdirs  ���r�my_mkdirzE_BasePathTest.test_mkdir_concurrent_parent_creation.<locals>.my_mkdir�	s9����4�y���;�;�=��t�T�*�(�,�,�T�2��4��&r�r��dir1�dir2zos.mkdirTFr�)rH)r9r1r/r�r�r�r]�boolr�rr��assertNotInr\r�r�r�)	r�pattern_numr7r��n�p12r�r�r�s	      @@@r�%test_mkdir_concurrent_parent_creationz3_BasePathTest.test_mkdir_concurrent_parent_creation�	s	��� ��9�K�����z�K�7�8�A����Q�X�X�Z�(����J�

'�>C�1�X�F�X��t�K�1��6�2�3�X�F�G�#&�5� ��f�*�v�%�C�
A��Z�Z�
�H�5��I�I�d�U�I�;�6�
� � ��S��+?�@��O�O�A�H�H�J�'�7%��"G�6�5��"�
>��
�
�c�#�h�(<�=�
>�s0�/D�D�3D�D�D	�D�$E�Ec���|jt�}|dz}|dzdz}|j|�|j|j	�|j	��|j|j
�|j	��|dzdz}|jt|��|j|j	�|j	��|j|j
�|j	��|j|j��|dz}|dzdz}|j|d��|j|j	�|j	��|j|j
�|j	��|j|j��|jt|j���y)	NrPrL�linkAA�linkAAArM�linkAAAATre)
r1r/rr?r�r�r]r\r�r�r�r�r�)rrArrs    r�test_symlink_toz_BasePathTest.test_symlink_to�	s\���H�H�T�N���W����6�z�H�$��������������f�k�k�m�4����D�J�J�L�&�+�+�-�8��6�z�I�%������F��$��������f�k�k�m�4����D�J�J�L�&�+�+�-�8��������'��V����6�z�J�&������D��9��������f�k�k�m�4����D�J�J�L�&�+�+�-�8�������
�&�����T�\�\�^�,�-rc���|jt�}|j|dzj��|j	|dzj��|j	|dzj��|j	|dzdzj��tj�rg|j	|dzj��|j|dzj��|j	|dzj�d�|j|d	zj�d�|j|d
zj�d�y)NrLrPrVr�rUrXrWFudirA�zdirA)r1r/r�r�r�rr`r^r�s  r�test_is_dirz_BasePathTest.test_is_dir�	s���H�H�T�N������V��+�+�-�.����!�g�+�-�-�/�0����!�n�,�4�4�6�7����!�g�+��-�5�5�7�8�� � �"����a�'�k�1�1�3�4��O�O�Q��[�0�0�2�3����a��o�5�5�7��?��
�
�q�<�'�/�/�1�5�9��
�
�q�:�~�-�-�/��7rc���|jt�}|j|dzj��|j	|dzj��|j	|dzj��|j	|dzdzj��tj�rf|j|dzj��|j	|dzj��|j	|dzj��|j|dzj�d	�|j|d
zj�d	�y)NrPrLrVr�rUrXrW�fileA�F�fileA)r1r/r��is_filer�rr`r^r�s  r�test_is_filez_BasePathTest.test_is_file�	s���H�H�T�N������W��-�-�/�0����!�f�*�-�-�/�0����!�n�,�5�5�7�8����!�g�+��-�6�6�8�9�� � �"��O�O�Q��[�1�1�3�4����a�'�k�2�2�4�5����a��o�6�6�8�9��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9rc��|jt�}tjdk(r|jd�}n|jd�}|j	|dzj��|j	|dzj��|j	|dzj��|j	|dzdzj��|j
|j��tj�r"|j	|dzj��|j|d	zj�d
�y)Nr%r�r+rPrLrVr�rUr�F)
r1r/r�rr��is_mountr�rr`r^)rrA�Rs   r�
test_is_mountz_BasePathTest.test_is_mount�	s����H�H�T�N��
�7�7�d�?����� �A�����
�A����!�g�+�/�/�1�2����!�f�*�.�.�0�1����!�n�,�6�6�8�9����!�g�+��-�7�7�9�:�����
�
��%�� � �"����a�'�k�3�3�5�6��
�
�q�8�|�-�-�/��7rc�z�|jt�}|j|dzj��|j|dzj��|j|dzj��|j|dzdzj��t	j
�rf|j
|dzj��|j
|dzj��|j
|dzj��|j|dzj�d	�|j|d
zj�d	�t	j
�rG|j|dzj�d	�|j|dzj�d	�yy)
NrPrLrVr�rUrXrWr�Fr�ulinkA�zlinkA)	r1r/r��
is_symlinkrr`r�r^r�r�s  r�test_is_symlinkz_BasePathTest.test_is_symlink�	sW���H�H�T�N�����!�g�+�1�1�3�4����!�f�*�0�0�2�3����!�n�,�8�8�:�;����!�g�+��-�9�9�;�<�� � �"��O�O�Q��[�4�4�6�7��O�O�Q��[�4�4�6�7��O�O�Q��_�8�8�:�;��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9�� � �"��M�M�1�}�,�5�5�7��?��M�M�1�{�?�3�3�5�u�=�#rc�r�|jt�}tjj	|j
d�5|j
|j�|j
jj�|j
jj|�ddd�y#1swYyxYw)N�
isjunction)r1r/rr��objectr2r?�is_junctionr�r��assert_called_once_withr�s  r�test_is_junctionz_BasePathTest.test_is_junction�	sq���H�H�T�N��
�Z�Z�
�
�q�z�z�<�
8����Q�]�]�_�a�j�j�.C�.C�.P�.P�Q�
�J�J�!�!�9�9�!�<�9�
8�
8�s
�A$B-�-B6c���|jt�}|j|dzj��|j|dzj��|j|dzj��|j|dzdzj��|j	|dzj�d�|j	|dzj�d�y�NrPrLrVr�r�Fr�)r1r/r��is_fifor^r�s  r�test_is_fifo_falsez _BasePathTest.test_is_fifo_false
s����H�H�T�N�����!�g�+�.�.�0�1����!�f�*�-�-�/�0����!�n�,�5�5�7�8����!�g�+��-�6�6�8�9��
�
�q�=�(�1�1�3�U�;��
�
�q�;��/�/�1�5�9r�mkfifozos.mkfifo() required�vxworksz%fifo requires special path on VxWorksc�L�|jtd�}	tjt	|��|j|j��|j|j��|j|j��|j|jtd�j�d�|j|jtd�j�d�y#t
$r}|j
d|z�Yd}~��d}~wwxYw)N�myfifozos.mkfifo(): %su	myfifo�Fzmyfifo)
r1r/r�r�r\�PermissionErrorr[r�r�r��	is_socketr�r^)rrA�es   r�test_is_fifo_truez_BasePathTest.test_is_fifo_true
s���
�H�H�T�8�$��	1��I�I�c�!�f��	
����	�	��$��������'��������%��
�
�d�h�h�t�^�4�<�<�>��F��
�
�d�h�h�t�\�2�:�:�<�e�D��
�	1��M�M�+�a�/�0�0��	1�s�C<�<	D#�D�D#c���|jt�}|j|dzj��|j|dzj��|j|dzj��|j|dzdzj��|j	|dzj�d�|j	|dzj�d�yr�)r1r/r�r�r^r�s  r�test_is_socket_falsez"_BasePathTest.test_is_socket_false
s����H�H�T�N�����!�g�+�0�0�2�3����!�f�*�/�/�1�2����!�n�,�7�7�9�:����!�g�+��-�8�8�:�;��
�
�q�=�(�3�3�5�u�=��
�
�q�;��1�1�3�U�;r�AF_UNIXzUnix sockets requiredz/Unix sockets are not implemented on Emscripten.zCannot create socket on WASI.c�,�|jtd�}tjtjtj�}|j|j�	|jt|��|j|j��|j|j!��|j|j#��|j%|jtd�j�d�|j%|jtd�j�d�y#t$rE}t|t�s
dt|�vr|jdt|�z�Yd}~��d}~wwxYw)N�mysockzAF_UNIX path too longzcannot bind Unix socket: u	mysock�Fzmysock)r1r/�socketr��SOCK_STREAMr\�close�bindr\r��
isinstancer�r[r�r�r�r�r�r^)rrA�sockr�s    r�test_is_socket_truez!_BasePathTest.test_is_socket_true#
s��
�H�H�T�8�$���}�}�V�^�^�V�-?�-?�@������
�
�#�	D��I�I�c�!�f��
	
������
�&��������%��������%��
�
�d�h�h�t�^�4�>�>�@�%�H��
�
�d�h�h�t�\�2�<�<�>��F���	D��1�o�.�+�s�1�v�5��
�
�9�C��F�B�C���	D�s�%E�	F�:F�Fc���|jt�}|j|dzj��|j|dzj��|j|dzj��|j|dzdzj��|j	|dzj�d�|j	|dzj�d�yr�)r1r/r��is_block_devicer^r�s  r�test_is_block_device_falsez(_BasePathTest.test_is_block_device_false:
s����H�H�T�N�����!�g�+�6�6�8�9����!�f�*�5�5�7�8����!�n�,�=�=�?�@����!�g�+��-�>�>�@�A��
�
�q�=�(�9�9�;�U�C��
�
�q�;��7�7�9�5�Arc���|jt�}|j|dzj��|j|dzj��|j|dzj��|j|dzdzj��|j	|dzj�d�|j	|dzj�d�yr�)r1r/r��is_char_devicer^r�s  r�test_is_char_device_falsez'_BasePathTest.test_is_char_device_falseC
s����H�H�T�N�����!�g�+�5�5�7�8����!�f�*�4�4�6�7����!�n�,�<�<�>�?����!�g�+��-�=�=�?�@��
�
�q�=�(�8�8�:�E�B��
�
�q�;��6�6�8�%�@rc�>�|jtj�}|j�s|j	d�|j|j
��|j|j��|j|j��|j|jtj�d��j
�d�|j|jtj�d��j
�d�y)Nznull device requiredr�Fr�)r1r��devnullr�r[r�rr�rr�r^r�s  r�test_is_char_device_truez&_BasePathTest.test_is_char_device_trueL
s����H�H�R�Z�Z� ���x�x�z��M�M�0�1�����(�(�*�+�����*�*�,�-��������%��
�
�d�h�h�"�*�*��V�4�5�D�D�F��N��
�
�d�h�h�"�*�*��T�2�3�B�B�D�e�Lrc�&�|jtd�}tdtjdz�D][}tj
||�}tj|�}|j|j�|j���]y)NrPrr�)	r1r/r9r:r;r<r=r?r�)rr7r>r?r�s     rr@z"_BasePathTest.test_pickling_commonW
sh���H�H�T�7�#���1�f�5�5��9�:�E��\�\�!�U�+�F����f�%�B����R�W�W�Y�����1�;rc���|j}|d�}|d�}|j|jd|jd�|j|jd|jd�y)Nz/usr/bin/fooz/usr/local/binr�r�r�)r1r^r]r�s    r�test_parts_interningz"_BasePathTest.test_parts_interning^
s\���H�H��
�n���
�����
�
�a�g�g�a�j�!�'�'�!�*�-��
�
�a�g�g�a�j�!�'�'�!�*�-rc��|jt�}|jtjjdd�td��|jtjjdd�td��|jtjjdd�td��|j|td��|dzj
�}|j||�|jt|�t�|dzj
�}|j||�|jt|�t�|dzj
�}|j||�|jt|�t�|dzj
�}|j||�|jt|�t�tj�}tjt�	|jd�j
�}|j||�|jt|�t�|jd�j
�}|j||�|jt|�t�|jd�j
�}|j||�|jt|�t�|jd�j
�}|j||�|jt|�t�tj|�y#tj|�wxYw)N�link0�link1r��link3)r1r/rbr�rtr.r�r?r}r\rrE)r�link0_targetrAr7�old_paths     r�_check_complex_symlinksz%_BasePathTest._check_complex_symlinksg
s����H�H�T�N�����R�W�W�\�\�'�7�3�T�'�]�C����R�W�W�\�\�'�7�3�T�'�]�C����R�W�W�\�\�'�7�3�T�'�]�C����\�4��=�1���[�!�!�#������A��� � ��Q���.�
��[�!�!�#������A��� � ��Q���.�
��[�!�!�#������A��� � ��Q���.�
��[�!�!�#������A��� � ��Q���.��9�9�;��
�����	�����!�)�)�+�A����Q��"��$�$�S��V�T�2�����!�)�)�+�A����Q��"��$�$�S��V�T�2�����!�)�)�+�A����Q��"��$�$�S��V�T�2�����!�)�)�+�A����Q��"��$�$�S��V�T�2��H�H�X���B�H�H�X��s
�EM0�0Nc�.�|jt�yr)rr/res r�test_complex_symlinks_absolutez,_BasePathTest.test_complex_symlinks_absolute�
s���$�$�T�*rc�&�|jd�y)Nrc)rres r�test_complex_symlinks_relativez,_BasePathTest.test_complex_symlinks_relative�
s���$�$�S�)rc�b�|jtjjdd��y)NrLr)rr�rtr.res r�&test_complex_symlinks_relative_dot_dotz4_BasePathTest.test_complex_symlinks_relative_dot_dot�
s���$�$�R�W�W�\�\�&�$�%?�@rc�|�|jt�5|jd��ddd�y#1swYyxYw)Nrk)rj)r2r3r1res r�test_passing_kwargs_deprecatedz,_BasePathTest.test_passing_kwargs_deprecated�
s+��
�
�
�0�
1��H�H��H��2�
1�
1�s�2�;)T)lrrr�__doc__r8r�rrbrqrzr}r�r�r�r��unittest�skipIfrcr�r�r�r�rr�r�r�r�r�r�r�r�skip_unless_symlinkr�r�r�r�rr	rrrr"r)r,r5r9r:rArGrJ�skip_unless_working_chmodrQ�
only_posixrSrWrYr[r^r`�
skipUnlessr<rkrArqrurx�hasattrr�r�r�r�r�r�r�r�r�r�r�rr��only_ntr�r�r�r�r�r�r�r�r�r�r��sys�platformr�r�r�r�rrrr@rrrrrrrUrrrDrDs���I�,B�B
�w�w�$��	<�	"�*�
;�
M�)��Z�,)��X�_�_��t��F��
-��
-�5�*G�(1�
�X�_�_�W�:�;�
N�<�
N�8�&
B�A�R�`�(B��"�"�*�#�*�H�L�>
:�)3�V�"�"�9�#�9�$.�"W��"�"�=�#�=�&�"�"�@�#�@�	"�&�
9G�F��5��"�"�:Q�#�:Q�x�"�"�A�#�A���(�(�(�
5�)�
5���(�(�5�)��5��(�(�*�)�*��"�"�?�#�?�
<�
�"�"�+�#�+�
(�
�X����F�G�*�H�*��X����F�G�*�H�*�*�"�
*��X�����V�,�.H�I�(�J�(�"�X�_�_�W�R��(�*@�A��B��(�"(�"�"�"�%�#�%�<�0B�	;�F�2
<�<�"�X�_�_�]�$O�P�C�Q�C�

�7�
�7�
;�
;�(�<�"�"�.�#�.�.8�:�
8�>� =�:��X�����X�.�0F�G��X�_�_�S�\�\�Y�.�;�=�
E�=�H�
E�<��X������3�5L�M��X�_�_��H���X�_�_��0��G���N�G� B�A�	M�2�.�'�R�"�"�+�#�+��"�"�*�#�*��"�"�A�#�A� rrDc��eZdZd�Zd�Zdd�Zd�Zd�Zejd��Z
ejd��Zd	�Zd
�Z
d�Zy)
�	WalkTestsc��|jtjtj�t	j
tjd�|_|jdz|_|jdz|_|jdz|_	|jdz}|jdz}|jdz}|jdz}|dz}|jd	z|_
t	j
tjd
�}t	j
tjd
d�}|jdz}|jd
z}	|jdz}
tj|j�tj|j�tj|�tj|�|||||fD].}t|dd��5}|jd|�d��ddd��0tj�r�tj tj"j%|�|j�tj d|d�tj t	j
dd�|	d�tj t	j
dd�|
d�|jdggd�f|_n|jdgdgf|_t(stj*|d�	tj,|�tj*|t.j0�tj2|�tj4|�|j&ddd�=y#1swY���xYw#t6$r2|jtj*|t.j0�YywxYw)N�TEST1�SUB1�SUB11�SUB2�SUB21�tmp1�tmp2�tmp3r�TEST2�tmp4�broken_link�broken_link2�broken_link3rZr�r�zI'm z' and proud of it.  Blame test_pathlib.
�brokenT�tmp5)r3r4r5rr0rr�)r\rrJr	r�r%�	walk_path�	sub1_path�
sub11_path�	sub2_path�	link_pathr��makedirsr^r_r`rartr4�	sub2_treerrI�listdirr��S_IRWXUrprwr�)
r�
sub21_path�	tmp1_path�	tmp2_path�	tmp3_path�	tmp5_path�t2_path�	tmp4_path�broken_link_path�broken_link2_path�broken_link3_pathrtrcs
             rr8zWalkTests.setUp�
s������	�(�(�)�*:�*:�;�&!���i�&6�&6��@������&�0����.�.�7�2������&�0����N�N�W�,�
��N�N�V�+�	��N�N�V�+�	��N�N�V�+�	���'�	����&�0����,�,�y�/�/��9���L�L��!1�!1�7�F�C�	��>�>�M�9�� �N�N�^�;�� �N�N�^�;��
���D�O�O�$�
���D�N�N�#�
���J��
���G���y�)�Y�	�I�D��d�C�'�2�a����$�t�f�$L�M�N�3�2�J�� � �"��J�J�r�w�w���w�/����@��J�J�x�!1�4�8��J�J�w�|�|�F�H�5�7H�$�O��J�J�w�|�|�G�V�4�6G��N�"�n�n�w�i�/�0�D�N�#�n�n�w�i�&��B�D�N���H�H�Z��#�	&��J�J�z�"�
�H�H�Z����.��I�I�i� ��H�H�Z� ����q�!�"�1�"�%�33�2��&�	@��O�O�B�H�H�j�$�,�,�?�	@�s�M>�N�>N	�8O�Oc�h�|jj�}t|�}|dj�|j	||jddgdgf�t|�}|j	||j
dgdgf�t|�}|j	||jggf�t|�}|dj�|dj�|j	||j�|jt�5t|�ddd�y#1swYyxYw)Nr�r*r,r.r+r/r�)
r8r�r��sortr?r9r:r>rH�
StopIteration)r�walker�entrys   r�test_walk_topdownzWalkTests.test_walk_topdown�
s������$�$�&���V���
�a��
�
���������&�&�1A�F�8� L�M��V����������'��V�H� E�F��V����������"�b� 9�:��V���
�a��
�
��
�a��
�
���������/�
�
�
�}�
-���L�.�
-�
-�s�D(�(D1Nc��|�|j}g}|j�D]0\}}}|j|||f�d|vs� |jd��2|j	t|�d�|j	|d|jdgdgf�|ddj
�|ddj
�|j	|d|j�y)Nr*r�rr,r.r�r�)r8r�r��remover?r�rLr>)rr8�allrs�dirs�filess      r�test_walk_prunezWalkTests.test_walk_prune�
s��������I���!*���!1��D�$���J�J��d�E�*�+���~����F�#�	"2�	
����S��1�%�����Q��$�.�.�6�(�V�H�!E�F��A��r�
�����A��q�	��������Q�����0rc�h�|jt|j�j��yr)rVr
r8r�res r�test_file_like_pathzWalkTests.test_file_like_path
s"�����X�d�n�n�5�@�@�B�Crc�<�dx}x}x}}|jjd��D�]�\}}}||jk(rf|j|�|j|�|j|�|j	t|�ddg�|j	|dg�d}�}||jk(r\|j|�|j|�|j|�|j	|dg�|j	|dg�d}��||jk(rJ|j|�|j|�|j	|g�|j	|g�d}��A||jk(r�|j|�|j|�|j	t|�t|jd	��|j	t|�t|jd
��d}���td|����|j|�y)NF��top_downr*r,r.Tr+r/r�r�zUnexpected path: )r8r�r�r�r?rr9r:r;r>�AssertionError)r�seen_testfn�	seen_sub1�
seen_sub11�	seen_sub2rtr�r�s        r�test_walk_bottom_upzWalkTests.test_walk_bottom_up
s���;@�@��@�i�@�*�y�)-���)<�)<�e�)<�)L�%�D�(�I��t�~�~�%�� � ��-����	�*����	�*�� � ���!1�F�F�3C�D�� � ��V�H�5�"������'�� � ��-�� � ��+����
�+�� � ��G�9�5�� � ��V�H�5� �	�����(�� � ��+�� � ��,�� � ��2�.�� � ��B�/�!�
�����'�� � ��-�� � ��+�� � ���!1�6�$�.�.��:K�3L�M�� � ��	�!2�F�4�>�>�!�;L�4M�N� �	�$�'8���%?�@�@�9*M�:	
����$rc���|jjd��}|D]<\}}}||jk(s�|j|g�|j|dg�y|j	d�y)NTr�r2z/Didn't follow symlink with follow_symlinks=True)r8r�r<r?�fail�r�walk_itrsrTrUs     r�test_walk_follow_symlinksz#WalkTests.test_walk_follow_symlinks.sj���.�.�%�%�d�%�;��!(��D�$���t�~�~�%�� � ��r�*�� � ����1��	")�
�I�I�G�Hrc�N�|jjd��}|D])\}}}||jk(s�|jd|�n|j	d�|jjd��}|D])\}}}||jk(s�|jd|�yy)NFr�rzsymlink not foundT)r8r�r;r�rcrds     r�test_walk_symlink_locationz$WalkTests.test_walk_symlink_location9s����.�.�%�%�e�%�<��!(��D�$���t�~�~�%��
�
�f�e�,��")�

�I�I�)�*��.�.�%�%�d�%�;��!(��D�$���t�~�~�%��
�
�f�d�+��")rc�$�g}|jj|j��}t|�\}}}|j	|g�d}||z}||zjd�}|j
|�	|D�	�
cgc]\}	}
}
|	��
}}	}
|j|�|j||�|j||�|D]}||k7s�	|j||z|��	|j
|�ycc}
}	w#|j
|�wxYw)N)�on_errorr*z.new)
r8r�r�r�r?rNr�r�r�r�)
rr�rersrTrUr��path1�path1newr��_�rootsr�s
             r�test_walk_bad_dirzWalkTests.test_walk_bad_dirKs�����.�.�%�%�v�}�}�%�=�� ��M���d�E������$����t����4�K�,�,�V�4��
���X��		#�&-�.�g�7�1�a��Q�g�E�.��O�O�F�#����U�E�*����X�u�-����4�<��M�M�$��+�u�5��
�O�O�E�"��/��
�O�O�E�"�s%�7C<�<
C6�	AC<�C<�6C<�<Dc��d}tjtjd�}tj|gdg|z���}|j	d��td�D�cgc]}|j
d����}}t|d	z�D]:}||rdgnggf}|D]}|jt|�|��|j}�<td�D�cgc]}|j
d����}}|}t|d	z�D]6}|||krdgnggf}|D]}|jt|�|��|dz}�8ycc}wcc}w)
Nrrr)Tr
rFrZr�)
r�r%rr	r]r9r�r?r�rn)	rrrrtrmrrrzr�s	         r�test_walk_many_open_filesz#WalkTests.test_walk_many_open_files_s8�����|�|�I�,�,�f�5���|�|�D�1�S�E�%�K�1���
�
�4�
� �49�#�J�?�J�q����E��*�J��?��u�q�y�!�A��q�s�e�b�"�5�H���� � ��b��8�4���;�;�D�	"�49��:�>�:�a����D��)�:��>����u�q�y�!�A��q�5�y�s�e�b�"�=�H���� � ��b��8�4���#�:�D�	"��@��?s� D8�D=c�Z�d}|dz}tjtjd�}tj|gdg|z���}|j	d��t|�5t
|j��t
|jd���ddd�y#1swYyxYw)	N�(r$rr)Tr
FrZ)r�r%rr	r]rr�r�r&s     r�test_walk_above_recursion_limitz)WalkTests.test_walk_above_recursion_limitts�����)�B�.���|�|�I�,�,�f�5���|�|�D�=�S�E�O�$;�=���
�
�4�
� �
 ��
1�����������E��*�+�2�
1�
1�s�#5B!�!B*r)rrrr8rPrVrXrarrrfrhrorqrtrUrrr'r'�
sd��C&�J� 1�$D�%�B�"�"�I�#�I��"�"��#��"#�(�*
,rr'c�6�eZdZejZd�Zd�Zd�Zy)�PathTestc���|jd�}|jt|�tjdk(rt
j�yt
j�yr$)r1r^rr�rr�rBr5r6s  rr&zPathTest.test_concrete_class�sD���H�H�S�M���
�
�d�1�g�#%�7�7�d�?�G���	K�8?�8I�8I�	Krc��tjdk(r%|jttj
�y|jttj�y)Nr%)r�rrHr:r�r5rBres r�test_unsupported_flavourz!PathTest.test_unsupported_flavour�s;��
�7�7�d�?����1�7�3D�3D�E����1�7�3F�3F�Grc��|j�}|jtd�5t|j	d��ddd�y#1swYyxYw)NzUnacceptable patternr')r1rFr�r�r�r6s  r�test_glob_empty_patternz PathTest.test_glob_empty_pattern�s;���H�H�J��
�
#�
#�J�0F�
G��������H�
G�
G�s�A�AN)	rrrr�r%r1r&ryr{rUrrrvrv�s��
�,�,�C�K�
H�rrvc��eZdZejZd�Zdd�d�Zeje
xsed�d��Zd�Z
eje
xsed�d��Zej d	��Zd
�Zd�Zej(eed�d
�ejej0dk(d�d���Zejej0dk7d�d��Zy)�
PosixPathTestc�P�|j}|jt|d�j��d�|jt|d�j��d�|jt|d�j��d�|jt|d�j��d�|jt|d�j��d�|jt|d�j��d�y)Nr+r*rrErDrN)r1r?r\r�r�s  r�
test_absolutezPosixPathTest.test_absolute�s����H�H������Q�s�V�_�_�.�/��5�����Q�t�W�-�-�/�0�$�7�����Q�v�Y�/�/�1�2�F�;�	
����Q�t�W�-�-�/�0�$�7�����Q�u�X�.�.�0�1�5�9�����Q�w�Z�0�0�2�3�W�=rTr.c��|j|�}|jt�5t|j	|��ddd�y#1swYyxYwr)r1rH�RuntimeError�printr�)rr+r_rts    r�_check_symlink_loopz!PosixPathTest._check_symlink_loop�s<���t�x�x����
�
�
�|�
,��$�,�,�v�&�'�-�
,�
,�s�A	�	Az,umask is not implemented on Emscripten/WASI.c��tjd�}|jtj|�|jt�}|dzjd�5	ddd�tjtd��}|jt
j|j�d�tjd�|dzjd�5	ddd�tjtd��}|jt
j|j�d�y#1swY��xYw#1swY�cxYw)Nr�new_filerQ���other_new_file�)r��umaskr\r1r/r^r�r.r?r�rN�r�old_maskr7rVs    r�test_open_modezPosixPathTest.test_open_mode�s���
�8�8�A�;��������(�+��H�H�T�N���*�n�
"�
"�4�
(��)�
�W�W�T�*�%�
&��������b�j�j�1�5�9�
������"�"�
(�
(��
.��/�
�W�W�T�*�+�
,��������b�j�j�1�5�9�)�
(��
/�
.�s�D7�E�7E�Ec�*�tj�}	tjd�|jd�}|j	t|j
��d�tj|�y#tj|�wxYw)Nr+r0z/spam)r�rrEr1r?r\r�)r�current_directoryr7s   r�test_resolve_rootzPosixPathTest.test_resolve_root�sb���I�I�K��	(��H�H�S�M����� �A����S�����-�w�7��H�H�&�'��B�H�H�&�'�s�AA;�;Bc��tjd�}|jtj|�|jt�}|dzj�tjtd��}|jt
j|j�d�tjd�|dzj�tjtd��}|jt
j|j�d�|dzjd�	�tjtd��}|jt
j|j�d�y)
Nrr�r�r�r�r��masked_new_filei�)rO)r�r�r\r1r/r�r�r.r?r�rNr�s    r�test_touch_modezPosixPathTest.test_touch_mode�s��
�8�8�A�;��������(�+��H�H�T�N��	
�Z���� �
�W�W�T�*�%�
&��������b�j�j�1�5�9�
�����	
�
�	�$�$�&�
�W�W�T�*�+�
,��������b�j�j�1�5�9�	
�
�	�%�%�5�%�1�
�W�W�T�+�,�
-��������b�j�j�1�5�9rc��tjdtd��|jtd�tjdtd��|jtd�tjdtd��|jtd�|jtddd��tjtd	�td
��|jtd
�tjtd�td��|jtd�tjtd�td
��|jtd
�|jtd
dd��y)NzlinkX/insider2r3zlinkZ/../linkZ�linkZrjFr.zlinkU/inside�linkU�linkVzlinkW/../linkW�linkW)r�rar.r�r/res r�test_resolve_loopzPosixPathTest.test_resolve_loop�s��	�
�
�>�4��=�1�� � ��w�/�
�
�
�7�D��M�*�� � ��w�/�
�
�
�#�T�'�]�3�� � ��w�/�� � ��w��e� �D�
�
�
�4��'��g��7�� � ��w�/�
�
�
�4��=�$�w�-�0�� � ��w�/�
�
�
�4�(�)�4��=�9�� � ��w�/�� � ��w��e� �Drc�:�|j}|t�}t|jd��}t	j
t�s
t�n|}|j
||�|j
t|jd��t��y)N�FILEazFILEa*)r1r/r�r�r�fs_is_case_insensitiver?�rrAr7rrs     r�	test_globzPosixPathTest.test_glob�sl���H�H��
�d�G���A�F�F�7�O�$��'�>�>�t�D���%�������'�����Q�V�V�H�-�.���6rc�<�|j}|td�}t|jd��}t	j
t�s
t�n|}|j
||�|j
t|jd��t��y)NrN�FILEdzFILEd*)r1r/r�r�rr�r?r�s     r�
test_rglobzPosixPathTest.test_rglob�so���H�H��
�d�F�O���A�G�G�G�$�%��'�>�>�t�D���%�������'�����Q�W�W�X�.�/���7r�getpwallz%pwd module does not expose getpwall()r�zno home directory on VxWorksc��|j}tjd�ddl}|jtj��}|j}|jjd�xsd}|j�D]3}|j}|jjd�}||k7s�0|s�3n|}|}d}	|j|�r|dz
}|j|�r�|d�}	|d|�d��}
|d|�d��}|d	|�d��}|d
|�d��}
|d�}|d|�d��}tj�5}|jdd�|j!|	j#�||�d
z�|j!|
j#�||�d
z�|j!|j#�||�d
z�|j!|j#�|�|j!|
j#�|
�|j!|j#�|�|j%t&|j"�d|d<|j!|	j#�|d��|j!|
j#�||�d
z�|j!|j#�||�d
z�|j!|j#�|�|j!|
j#�|
�|j!|j#�|�|j%t&|j"�ddd�y#t$rY���wxYw#1swYyxYw)Nrcrr+�fakeuserr=z~/Documentsr�z
/Documentsr�r�r'r��	Documentsz/tmpz/tmp/Documents)r1r�
import_modulercrdr��getuidre�pw_dir�rstripr��getpwnamrfrr�r�r?r�rHr�)rrArc�pwdent�username�userhome�	othername�	otherhome�fakename�p1�p2�p3�p4�p5�p6�p7r�s                 r�test_expanduserzPosixPathTest.test_expanduser�s���

�H�H���#�#�E�*������b�i�i�k�*���>�>���=�=�'�'��,�3���"�c�l�l�n�F����I��
�
�,�,�S�1�I��H�$���	%�!�I� �I���	��#�,�,�x�(��C����#�,�,�x�(�
�}�
��
��8�*�J�'�
(��
��9�+�Z�(�
)��
��h�Z�z�*�
+��
��H�:�Z�(�
)��
�r�U��
��8�*�J�'�
(��
�
*�
*�
,���G�G�F�D�!����R�]�]�_�a��k�K�.G�H����R�]�]�_�a��k�K�.G�H����R�]�]�_�a�	�l�[�.H�I����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1����l�B�M�M�:� �C��K����R�]�]�_�a�0@�.A�B����R�]�]�_�a��k�K�.G�H����R�]�]�_�a�	�l�[�.H�I����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1����l�B�M�M�:�%-�
,���	��	��-�
,�s�)M!�
HM1�!	M.�-M.�1M:�darwinz1Bad file descriptor in /dev/fd affects only macOSc��	ttjd�jd��dd}|s|j	d�|D]�}|j�|j
�|j�|j�|j�|j�|j�|j���y#t$r4}|jtjk(r|j!d��d}~wwxYw)Nz/dev/fdr�r�z.no file descriptors - issue was not reproducedz Bad file descriptor not handled.)r�r�r%r�r[r�r�r�r�rrr�r�r�ru�EBADFrc)r�file_descriptorsrcr�s    r�test_handling_bad_descriptorz*PosixPathTest.test_handling_bad_descriptor5s���	�#�G�L�L��$;�$A�$A�#�$F�G���K��#��
�
�N�O�&�����
����
��	�	�������!�!�#�� � �"��	�	�����
�&���	��w�w�%�+�+�%��	�	�<�=���	�s�C
C
�
	D
�/D�D
N)rrrr�r5r1rr�rrrrr�r�r�rrr�r�r�r!r"rcr$r%r�r�rUrrr}r}�s��
�
�
�C�	>�15�(�
�X�_�_�� ��6��:�	�:�(��X�_�_�� ��6��
:�	�
:��"�"�E�#�E�(7�8��X�����j�1�@�B��X�_�_�S�\�\�Y�.�3�5�3;�5�B�3;�j�X�_�_�S�\�\�X�-�H�J��J�rr}c�<�eZdZejZd�Zd�Zd�Zd�Z	y)�WindowsPathTestc
���|j}|jt|d�j��d�|jt|d�j��d�|jt|d�j��d�d}|jt||�j��|�|jt||dz�j��|dz�|jt||dz�j��|dz�t	j
d�5}||_|jt|�j��|�|jt|d�j��|�|jt|d�j��tjj|d��|jt|dd	d
�j��tjj|dd	d
��ddd�tjjt�d}tjt�5|jt|d�j��|dz�|jt|d
�j��|d
z�|jt||�j��t�|jt||dz�j��tjjtd��ddd�tjt�5}tj�}|�d�}tj |�tj |�|jt||�j��|�|jt||dz�j��|d
z�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)Nr�rIrrz\\server\share\r!za\br�rcr"r:rrz\foorjz\dirA)r1r?r\r�rr�r�r�rtr.�
splitdriver/r�
change_cwd�subst_driverrE)rrArrrr�other_drive�	saved_cwd�	other_cwds        rrzWindowsPathTest.test_absoluteQsC���H�H��	
����Q�v�Y�/�/�1�2�F�;�����Q�w�Z�0�0�2�3�W�=�����Q�z�]�3�3�5�6�
�C�&������Q�u�X�.�.�0�1�5�9�����Q�u�s�{�^�4�4�6�7����E�����Q�u�v�~�.�7�7�9�:�E�F�N�K��Z�Z��
$��"'�F�����S������0�%�8����S��3����!2�3�U�;����S��3����!2�3�R�W�W�\�\�%��5M�N����S��3��S�!1�!:�!:�!<�=��W�W�\�\�%��c�3�?�
A�
%����"�"�4�(��+��
�
!�
!�$�
'����S��4��!1�!1�!3�4�e�d�l�C����S��7��!4�!4�!6�7����I�
���S��5��!2�!2�!4�5�t�<����S��5�5�=�!1�!:�!:�!<�=�r�w�w�|�|�D�RW�?X�Y�(��
"�
"�4�
(�K��	�	��I�&�-�v�.�I��H�H�Y���H�H�Y��
���S��;��!8�!8�!:�;�Y�G����S��;��#6�!7�!@�!@�!B�C�Y�QX�EX�Y�)�
(�'%�
$��(�
'��)�
(�s'�
DQ�C,Q�!B(Q+�Q�Q(�+Q4c
�h�|j}|t�}|jt|j	d��|td�h�|jt|j	d��|td�h�|jt|j	d��|td�h�|jttt|j	d���|�d�h�|jttt|j	d���|�d�h�y)Nr�rPz*a\rLzF*az\fileA)r1r/r?r�r��mapr\r@s   rr�zWindowsPathTest.test_glob~s����H�H��
�d�G������Q�V�V�G�_�-��4��1A�/C�D�����Q�V�V�F�^�,��$���.A�B�����Q�V�V�E�]�+�q��w�/?�-A�B�����S��a�f�f�W�o�6�7�Q�C�w�-��I�����S��a�f�f�U�m�4�5�1�#�W�
��Grc
��|j}|td�}|jt|j	d��|td�h�|jt|j	d��|td�h�|jttt|j	d���|�d�h�y)NrNr�rz*\rz\dirD\fileD)r1r/r?r�r�r�r\r@s   rr�zWindowsPathTest.test_rglob�s����H�H��
�d�F�O������Q�W�W�W�-�.�!�D�:K�2L�0N�O�����Q�W�W�U�^�,��$��0D�.F�G�����S��a�g�g�g�&6�7�8�a�S�
�;N�:O�Prc
�����������	��j�tj�5��jdd��jdd��jdd��jdd�d�d<�d���d���d	���d
���d���d��	�j	t
�j��j	t
�j��j	t
�j��j�j
����j�j
����j�	j
��	���������	�f	d
�}d�d<|�d�d<d�d<|��jdd��jdd�d�d<|�d�d<|�ddd�y#1swYyxYw)Nr�r��HOMEPATH�	HOMEDRIVE�alice�USERNAMEz~/My Documentsz~alice/My Documentsz~bob/My Documentsz/~/My Documentszd:~/My Documentsr'c��	��jdd��j�j��d���jt�j�d�d<�j�j��d���j�j��d���j�j����j�j����j�j���y)Nr�zC:/Users/alice/My Documentsr�zC:/Users/bob/My Documents)r�r?r�rHr�)	rAr�r�r�r�r�r�r�rs	���������rr�z.WindowsPathTest.test_expanduser.<locals>.check�s�������
�D�)�� � �����!"�#@�!A�C��!�!�,��
�
�>�")��J��� � �����!"�#@�!A�C�� � �����!"�#>�!?�A�� � �����"�5�� � �����"�5�� � �����"�5rzC:\Users\alicer�zUsers\alicezC:\Users\eve)r1rr�r�rHr�r�r?)
rr�rAr�r�r�r�r�r�r�s
` @@@@@@@@rr�zWindowsPathTest.test_expanduser�s������H�H��
�
*�
*�
,���G�G�F�D�!��G�G�M�4�(��G�G�J��%��G�G�K��&�%�C�
�O��#�$�B��(�)�B��&�'�B��$�%�B��%�&�B��2��B����l�B�M�M�:����l�B�M�M�:����l�B�M�M�:����R�]�]�_�b�1����R�]�]�_�b�1����R�]�]�_�b�1�
6�
6�1�C�
�O��G�%�C���,�C�
�O��G��G�G�K��&��G�G�J��%�!3�C�
���G�+�C��K��G�c-�
,�
,�s�F$G�G N)
rrrr�rBr1rr�r�r�rUrrr�r�Ms%��
�
�
�C�+Z�ZH�Q�3rr�c�:�eZdZGd�dej�ZdZy)�PurePathSubclassTestc��eZdZy)�PurePathSubclassTest.clsNrTrUrrr1r�����rr1N)rrrr�r,r1r�rUrrr�r��s��
�g���
� �rr�c�:�eZdZGd�dej�ZdZy)�PathSubclassTestc��eZdZy)�PathSubclassTest.clsNrTrUrrr1r��r�rr1N)rrrr�r%r1r�rUrrr�r��s��
�g�l�l�
� �rr�c�0�eZdZdZGd�d�Zd�Zd�Zy)�CompatiblePathTestz|
    Test that a type can be made compatible with PurePath
    derivatives by implementing division operator overloads.
    c�"�eZdZdZd�Zd�Zd�Zy)�CompatiblePathTest.CompatPathz�
        Minimum viable class to test PurePath compatibility.
        Simply uses the division operator to join a given
        string and the string value of another object with
        a forward slash.
        c��||_yr)�string)rr�s  rrz&CompatiblePathTest.CompatPath.__init__�s	�� �D�Krc�B�t|�|j�d|���Srw�rr��r�others  r�__truediv__z)CompatiblePathTest.CompatPath.__truediv__�s"���4��:����
�Q�u�g�6�7�7rc�B�t|�|�d|j���Srwr�r�s  r�__rtruediv__z*CompatiblePathTest.CompatPath.__rtruediv__�s"���4��:���q����
�6�7�7rN)rrrrrr�r�rUrr�
CompatPathr��s��	�	!�	8�	8rr�c�F�tjd�|jd�z}|j||j�|j	|j
d�|j
t�5tjd�dzddd�y#1swYyxYw)N�test�rightz
test/rightr$)r�r,r�r>r?r�rHrG�r�results  r�test_truedivzCompatiblePathTest.test_truediv�su���!�!�&�)�D�O�O�G�,D�D�����f�d�o�o�6��������5�
�
�
�y�
)����V�$�r�)�*�
)�
)���5B�B c�F�|jd�tjd�z}|j||j�|j	|j
d�|j
t�5dtjd�zddd�y#1swYyxYw)N�leftr�z	left/testr$)r�r�r,r>r?r�rHrGr�s  r�
test_rtruedivz CompatiblePathTest.test_rtruediv�su������(�7�+;�+;�F�+C�C�����f�d�o�o�6��������4�
�
�
�y�
)���!�!�&�)�)�*�
)�
)�r�N)rrrrr�r�r�rUrrr�r��s���
8�8� *�*rr��__main__)6�
contextlib�collections.abcr�r�r�r$rur�r:r�r�r7rr�test.supportrrrrr�test.support.os_helperr	r
rkrc�ImportErrorr�rr�TestCaserBrwr"rt�realpathr/r.r~rrr#r r4r7rDr'rvr}r�r�r�r�r�mainrUrr�<module>r�s4����	�	�
���
�
�����&�,�/�"�3���E�F�E�h
.��h
.�V[ �)�8�+<�+<�[ �|d
@�+�X�->�->�d
@�L�$�h�&7�&7��>
�w�w������(��.��
�(�/�/�"�'�'�T�/�E�G��
�X�_�_�R�W�W��_�F�H�
���+����	��/��	��L �F�L �^$],��!�!�],�@�}�h�/�/��(�t�M�8�#4�#4�t��t�n	�s�m�X�%6�%6�s�	�s�l �,�h�.?�.?� � �}�h�&7�&7� �&*��*�*�&*�R�z���H�M�M�O���Mg����C�#��s�H�	H
�H


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists