Your IP : 216.73.216.196


Current Path : /opt/alt/python312/lib64/python3.12/test/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/test/__pycache__/test_posixpath.cpython-312.pyc

�

�#�j�����ddlZddlZddlZddlZddlZddlmZddlmZmZm	Z	m
Z
mZddlm
Z
ddlmZddlmZddlmZmZddlmZdd	lmZ	ddlZeej0�Zd
�Zd�Zd�ZGd
�dej:�ZGd�dej>ej:�Z Gd�dej:�Z!e"dk(rejF�yy#e$rdZY��wxYw)�N)�partial)�realpath�abspath�dirname�basename�
ALLOW_MISSING)�support)�test_genericpath)�
import_helper)�cpython_only�	os_helper)�FakePath)�mockc�V�dtv}d}|tj|�|�g|S)z�
    On Windows, posixpath.abspath still returns paths with backslashes
    instead of posix forward slashes. If this is the case, several tests
    fail, so skip them.
    �\z'ABSTFN is not a posix path - tests fail)�ABSTFN�unittest�skip)�test�found_backslash�msgs   �:/opt/alt/python312/lib64/python3.12/test/test_posixpath.py�!skip_if_ABSTFN_contains_backslashrs3���f�n�O�
3�C��$�(�-�-��$�T�*�+�O�<�<�c�N�	tj|�y#t$rYywxYw�N)�os�rmdir�OSError)rs r�
safe_rmdirr $s%��
�
�������
��
�s��	$�$c����fd�}|S)a{Simplistic decorator to parametrize a test

    Runs the decorated test multiple times in subTest, with a value from
    'parameters' passed as an extra positional argument.
    Does *not* call doCleanups() after each run.

    Not for general use. Intended to avoid indenting for easier backports.

    See https://discuss.python.org/t/91827 for discussing generalizations.
    c������fd�}|S)Nc�|���D]*}|j|�5�|g|�|��i|��ddd��,y#1swY�7xYwr)�subTest)�self�args�kwargs�	parameter�func�
parameterss    ��r�_parameterizedzE_parameterize.<locals>._parametrize_decorator.<locals>._parameterized6s?���'�	��\�\�)�,���:��:�i�:�6�:�-�,�(�,�,�s�2�;	�)r)r+r*s` �r�_parametrize_decoratorz-_parameterize.<locals>._parametrize_decorator5s���	;��rr,)r*r-s` r�
_parameterizer.*s����"�!rc	��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zej"d��Zej(edud�d��Zej(edud�d��Zd�Zej(ej4dk(d�ed���Zd�Zd�Zej(ej4dk(d�d��Zej(ej4dk(d�d��Z gd�Z!d�Z"e#e$idd ide%i�d!���Z&e#e$idd ide%i�d"���Z'ej"e#e$ide%i�d#����Z(ej"e#d$���Z)d%�Z*ej"e#e$ide%i�d&����Z+ej"e#e$ide%i�d'����Z,ej"e#d(���Z-ej"e#e$dd ide%i�d)����Z.ej"e#e$idd ide%i�d*����Z/ej"e#e$idd ide%i�d+����Z0ej"e#e$ide%i�d,����Z1ej"e#e$idd ide%i�d-����Z2ej"e#e$idd ide%i�d.����Z3ej"e#ej(e4jje4jlvd/�ej(ej4d0k7d1�e$dd ide%i�d2������Z7e#ej"d3���Z8d4�Z9d5�Z:d6�Z;y)7�
PosixPathTestc�$�|j�yr)�tearDown�r%s r�setUpzPosixPathTest.setUp@s���
�
�rc��dD]D}tjtj|z�ttj|z��Fy)N)��1�2)r
�unlink�TESTFNr )r%�suffixs  rr2zPosixPathTest.tearDownCs8��$�F����Y�-�-��6�7��y�'�'�&�0�1�%rc���|jtjdddd�d�|jtjddd�d�|jtjddd	�d
�|jtjddd
d�d�|jtjddd�d�|jtjddd�d�y)N�/foo�bar�/bar�baz�/bar/bazz/foo/bar/bazz/foo/zbar/zbaz/z
/foo/bar/baz/�/foo�bars/barsbazs/bar/bazs/foo/bar/bazs/foo/sbar/sbaz/s
/foo/bar/baz/)�assertEqual�	posixpath�joinr3s r�	test_joinzPosixPathTest.test_joinHs�����������v�u�E�#�	%���������u�=�~�N����������@�(�	*�	
���������&�I�$�	&����������@�(�	*��������'�7�C�)�	+rc���|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd	�d
�|jtjd�d�|jtjd
�d�|jtjd�d�|jtjd�d�|jtjd�d�y)N�/foo/bar)r=r>�/)rJr6�foo)r6rK�////foo)�////rK�
//foo//bar)�//foor>�/foo/bar)rBrC�/)rQr�foo)rrR�////foo)�////rR�
//foo//bar)�//foorC)rDrE�splitr3s r�
test_splitzPosixPathTest.test_splitVs���������4�o�F��������-�y�9��������/��=��������3�_�E��������6�8H�I��������5�7H�I��������.��<��������0�-�@��������4�6G�H��������7�9K�Lrc�x�|jtj|�||f�|jtjd|z�d|z|f�|jtjd|z�d|z|f�|jtjd|z�d|z|f�|jtjd|z�d|z|f�|jtj|dz�||zdzdf�t|d�}t|d�}t|d�}|jtj|�||f�|jtjd|z�d|z|f�|jtjd|z�d|z|f�|jtjd	|z�d	|z|f�|jtjd
|z�d
|z|f�|jtj|dz�||zdzdf�y)NrJzabc/zabc.def/z	/abc.def/r6�ASCIIrQsabc/sabc.def/s	/abc.def/r)rDrE�splitext�bytes)r%�path�filename�exts    r�splitextTestzPosixPathTest.splitextTestcs%������+�+�D�1�H�c�?�C�����+�+�C�$�J�7�#��.�#�9N�O�����+�+�F�T�M�:� �8�+�S�1�	3�����+�+�J��,=�>�$�x�/��5�	7�����+�+�K�$�,>�?�%��0�#�6�	8�����+�+�D�3�J�7�"�S�.�3�.��3�	5��T�7�#����7�+���C��!������+�+�D�1�H�c�?�C�����+�+�D�4�K�8���/�3�/�	1�����+�+�G�d�N�;�!�H�,�c�2�	4�����+�+�K�$�,>�?�%��0�#�6�	8�����+�+�L�4�,?�@�&��1�3�7�	9�����+�+�D�4�K�8�"�S�.�4�/��5�	7rc���|jddd�|jddd�|jddd�|jdd	d
�|jddd�|jd
d
d�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�y)Nzfoo.barrKz.barzfoo.boo.barzfoo.boozfoo.boo.biff.barzfoo.boo.biffz.csh.rcz.cshz.rc�nodotsr6z.cshrcz...manydotsz...manydots.extz.ext�.�..z........)r`r3s r�
test_splitextzPosixPathTest.test_splitexts������)�U�F�3����-��F�;����,�n�f�E����)�V�U�3����(�H�b�1����(�H�b�1����-���;����+�]�F�C����#�s�B�'����$��b�)����*�j�"�5����"�b�"�%rc��tj}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d	�d
�|j|d�d�|j|d
�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d �|j|d!�d"�|j|d#�d$�y)%Nr6)r6r6r6�a)r6r6rg�a/b)r6r6rh�a/b/)r6r6ri�/a)r6rJrg�/a/b)r6rJrhz/a/b/)r6rJri�//a)r6�//rgz///a)r6rJrlz///a/b)r6rJz//a/b�c:/a/b)r6r6rn�\/a/b)r6r6ro�\a\b)r6r6rpr)rrr�a)rrrq�/a)rrQrq�//a)rs//rqs///a)rrQrs)rE�	splitrootrD�r%�fs  r�test_splitrootzPosixPathTest.test_splitroot�s�����������2���-�����3���/�����5��?�3�����6��$4�5�����4��.�1�����6��$4�5�����7��%6�7�	
����5��?�3�����6��$4�5�����8��&8�9�����8��&8�9�����8��&8�9�����8��&8�9�����3���1�����4��"2�3�����5��#4�5�����6��$6�7�����7��%8�9rc���|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd	�d�|jtjd
�d�|jtjd�d�|jtjd�d�y)
Nr6FrJTr=rIzfoo/barrrQrBrPsfoo/bar)�assertIsrE�isabsr3s r�
test_isabszPosixPathTest.test_isabs�s����
�
�i�o�o�b�)�5�1��
�
�i�o�o�c�*�D�1��
�
�i�o�o�f�-�t�4��
�
�i�o�o�j�1�4�8��
�
�i�o�o�i�0�%�8��
�
�i�o�o�c�*�E�2��
�
�i�o�o�d�+�T�2��
�
�i�o�o�g�.��5��
�
�i�o�o�k�2�D�9��
�
�i�o�o�j�1�5�9rc���|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d	�|jtjd
�d�|jtjd�d�|jtjd
�d�|jtjd�d	�y)NrIr>rJr6rKrLrNrPrCrQrrRrSrU)rDrErr3s r�
test_basenamezPosixPathTest.test_basename�s������+�+�J�7��?�����+�+�C�0�"�5�����+�+�E�2�E�:�����+�+�I�6��>�����+�+�L�9�5�A�����+�+�K�8�&�A�����+�+�D�1�3�7�����+�+�F�3�V�<�����+�+�J�7��@�����+�+�M�:�F�Crc���|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d	�|jtjd
�d�|jtjd�d�|jtjd
�d�|jtjd�d�|jtjd�d�y)NrIr=rJrKr6rLrMrNrOrPrBrQrRrrSrTrUrV)rDrErr3s r�test_dirnamezPosixPathTest.test_dirname�s������*�*�:�6��?�����*�*�3�/��5�����*�*�5�1�2�6�����*�*�9�5�v�>�����*�*�<�8�'�B�����*�*�;�7��A�����*�*�4�0�$�7�����*�*�6�2�C�8�����*�*�:�6��@�����*�*�=�9�8�Drc�b�|jtjtjdz�d�|jtj
tjdz�d�t
tjdzd�5}|jd�ddd�|jtjtjdz�d�tj��r6tjtjdztjdz�|jtjtjdz�d�tjtjdz�|jtjtjdz�d�|jtjtjdz�d�|jtj
tjdz�d�|jtjtjdz�d�|jtjtjtj�dz�d�|jtjtjd	z�d�|jtjtjtj�d
z�d�y#1swY���xYw)Nr7Fr8�wbrRTu�����)ryrE�islinkr
r:�lexists�open�write�can_symlinkr�symlink�remove�exists�fsencoderus  r�test_islinkzPosixPathTest.test_islink�s���
�
�i�&�&�y�'7�'7�#�'=�>��F��
�
�i�'�'�	�(8�(8�3�(>�?��G�
�)�"�"�S�(�$�
/�1�
�G�G�F�O�0��
�
�i�&�&�y�'7�'7�#�'=�>��F�� � �"��J�J�y�'�'�#�-�y�/?�/?�#�/E�F��M�M�)�*�*�9�+;�+;�c�+A�B�D�I��I�I�i�&�&��,�-��M�M�)�*�*�9�+;�+;�c�+A�B�D�I��M�M�)�*�*�9�+;�+;�c�+A�B�E�J��M�M�)�+�+�I�,<�,<�s�,B�C�T�J��
�
�i�&�&�y�'7�'7�(�'B�C�U�K��
�
�i�&�&�r�{�{�9�3C�3C�'D�w�'N�O�QV�W��
�
�i�&�&�y�'7�'7�&�'@�A�5�I��
�
�i�&�&�r�{�{�9�3C�3C�'D�w�'N�O�QV�W�0�
/�s�
L$�$L.c�P�|jtjd�d�|jtjd�d�|jtjtd��d�|jtjtd��d�y)NrJTrQ)ryrE�ismountrr3s r�test_ismountzPosixPathTest.test_ismount�sn���
�
�i�'�'��,�d�3��
�
�i�'�'��-�t�4��
�
�i�'�'���
�6��=��
�
�i�'�'����7��>rc�J�|jtjt�d�	t	j
t�|jtjt�d�t
t�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�y#t
t�wxYw)NF�/��/��/�/)ryrEr�rr�mkdirr r3s r�test_ismount_non_existentz'PosixPathTest.test_ismount_non_existent�s����
�
�i�'�'��/��7�	��H�H�V���M�M�)�+�+�F�3�U�;��v���
�
�i�'�'�	�2�E�:��
�
�i�'�'��1�5�9��
�
�i�'�'��0�%�8��
�
�i�'�'��1�5�9��
�v��s�AD�D"c��	tjdt�|jt	j
t�d�tjt�y#tjt�wxYw)NrJF)rr�rryrEr�r9r3s r�test_ismount_symlinksz#PosixPathTest.test_ismount_symlinks�sG��	��J�J�s�F�#��M�M�)�+�+�F�3�U�;��I�I�f���B�I�I�f��s�AA�A:NzTest requires posix modulec���tj}d�}	|t_|jtjt
�d�|t_y#|t_wxYw)Nc�b�d}d}|tk(rd}d}tjd||dddddddf
�S)Nr�)r�posix�stat_result�r]�st_ino�st_devs   r�
fake_lstatz?PosixPathTest.test_ismount_different_device.<locals>.fake_lstatsC���F��F��v�~������$�$�a����A�q�!�Q��1�%M�N�NrT�r�lstatryrEr�r�r%�
save_lstatr�s   r�test_ismount_different_devicez+PosixPathTest.test_ismount_different_devicesG���X�X�
�	O�	"�!�B�H��M�M�)�+�+�F�3�T�:�!�B�H��z�B�H���4A�
A"c���tj}d�}	|t_|jtjt
�d�|t_y#|t_wxYw)Nc��d}d}|jt�r|tk7rtd��|tk(rd}d}tjd||dddddddf
�S)Nrz!Fake [Errno 13] Permission deniedr�)�
startswithrrr�r�r�s   rr�zEPosixPathTest.test_ismount_directory_not_readable.<locals>.fake_lstatsc���F��F����v�&�4�6�>��A�B�B��v�~������$�$�a����A�q�!�Q��1�%M�N�NrTr�r�s   r�#test_ismount_directory_not_readablez1PosixPathTest.test_ismount_directory_not_readablesG���X�X�
�
	O�	"�!�B�H��M�M�)�+�+�F�3�T�:�!�B�H��z�B�H�r�c�T�|jtjt��yr)�assertFalserE�
isjunctionrr3s r�test_isjunctionzPosixPathTest.test_isjunction(s������-�-�f�5�6r�win32zFast paths are not for win32c���|jtjjtj
u�|j
tjtjj��yr)	�
assertTruerr]�normpathr��_path_normpathr��inspect�
isfunctionr3s r�test_fast_paths_in_usez$PosixPathTest.test_fast_paths_in_use+sH��
	
������(�(�E�,@�,@�@�A�����+�+�B�G�G�,<�,<�=�>rc��|jtjd�d�|jtjd�d�y)NrKrR)rDrE�
expanduserr3s r�test_expanduserzPosixPathTest.test_expanduser3s8������-�-�e�4�e�<�����-�-�f�5�v�>rc�D�tj�5}d|d<|jtjd�d�d|d<|jtjd�d�dD]�}|j|��5||d<|jtjd�d�|jtjd�d�|jtjd	�d
�ddd���	ddd�y#1swY��xYw#1swYyxYw)Nz/home/victor�HOME�~z
/home/victor/)rJr6rm�///)�homerJ�~/z~/foor=)r
�EnvironmentVarGuardrDrEr�r$)r%�envr�s   r�test_expanduser_home_envvarz)PosixPathTest.test_expanduser_home_envvar7s���
�
*�
*�
,��(�C��K����Y�1�1�#�6��G�*�C��K����Y�1�1�#�6��G�,���\�\�t�\�,�"&�C��K��$�$�Y�%9�%9�#�%>��D��$�$�Y�%9�%9�$�%?��E��$�$�Y�%9�%9�'�%B�F�K�	-�,�-�-�
,�-�,��-�
,�s%�A,D�A5D
�6
D�
D�D�D�vxworkszno home directory on VxWorksc	��tjd�}|jtjd�t
�|jtjd�t�tjd�dk7rv|jtjd�dztjd��|jtjd�dztjd��|jtjd�t
�|jtjd	�t
�|jtjd
�t�|jtjd�t�tj�5}|d=|jtj��j}|jd�xsd}|jtjd�|�tj j#|d
t$��5tj j#|dt$��5dD]'}|jtj|�|��)	ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)N�pwdr�s~/r�rJ�~rQz~root/z~foo/s~root/s~foo/r��getpwuid)�side_effect�getpwnam)r�z~/.localz
~vstinner/)r�
import_module�assertIsInstancerEr��strr\rDr
r�r�r�getuid�pw_dir�rstripr�patch�object�KeyError)r%r�r�r�r]s     r�test_expanduser_pwdz!PosixPathTest.test_expanduser_pwdGs���)�)�%�0�����i�2�2�4�8�#�>����i�2�2�5�9�5�A�����$��+�����$�$�S�)�C�/��$�$�T�*�
�
����$�$�T�*�T�1��$�$�U�+�
�	
���i�2�2�8�<�c�B����i�2�2�7�;�S�A����i�2�2�9�=�u�E����i�2�2�8�<�e�D�
�
*�
*�
,���F���<�<��	�	��,�3�3�D��;�;�s�#�*�s�D����Y�1�1�#�6��=����"�"�3�
��"�I����"�"�3�
��"�I�;�D��$�$�Y�%9�%9�$�%?��F�<�J�J�-�
,�J�I��J�I��-�
,�s=�.BK�?'J9�&-J-�J9�K�-J6�2J9�9K	�>K�Kc
��tjd�}|j�D]�}|j}|j	|�}|j
}|j
d�xsd}|j||��5|jtjd|z�|�|jtjtjd|z��tj|��ddd���y#1swY��xYw)Nr�rJ)�	all_entry�entryr�)
rr��getpwall�pw_namer�r�r�r$rDrEr�rr�)r%r�r��namer�r�s      r�test_expanduser_pwd2z"PosixPathTest.test_expanduser_pwd2ps����)�)�%�0������I��$�$�D��L�L��&�E��<�<�D��;�;�s�#�*�s�D����	���?�� � ��!5�!5�c�D�j�!A�4�H�� � ��!5�!5�b�k�k�#��*�6M�!N�!#���T�!2�4�@�?�(�@�?�s
�:A7C<�<D	)0)r6rc)rJrJ)z/.rJ)z/./rJ)z/.//.rJ)r=r=)rIrI)rmrm)r�rJ)z///foo/.//bar//rI)z///foo/.//bar//.//..//.//baz///z/foo/baz)z///..//./foo/.//barrI)rcrc)z.//.rc)rdrd)�../rd)�../foor�)�	../../foor�)z
../foo/../barz../bar)z../../foo/../bar/./baz/boom/..�
../../bar/baz�z/..rJr�)z/../rJ)z/..//rJ)z//.rm)z//..rm)�//...r�)z//../foorO)z//../../foorO)�/../foor=)z
/../../foor=)z/../foo/../rJ)z/../foo/../barr?)z/../../foo/../bar/./baz/boom/..rA)z/../../foo/../bar/./baz/boom/.z
/bar/baz/boom)zfoo/../bar/bazzbar/baz)zfoo/../../bar/bazz
../bar/baz)zfoo/../../../bar/bazr�)zfoo///../bar/.././../baz/boomz../baz/boom)zfoo/bar/../..///../../baz/boomz../../baz/boom)�/foo/..rJ)z
/foo/../..rJ)z//foo/..rm)z//foo/../..rm)z	///foo/..rJ)z///foo/../..rJ)z
////foo/..rJ)z/////foo/..rJc��|jD]�\}}|j|�5tj|�}|j	||�ddd�|jd�}|jd�}|j|t��5tj|�}|j	||�ddd���y#1swY�uxYw#1swY��xYw)Nzutf-8)�type)�NORMPATH_CASESr$rEr�rD�encoder\)r%r]�expected�results    r�
test_normpathzPosixPathTest.test_normpath�s���"�1�1�N�D�(����d�#�"�+�+�D�1��� � ���2�$��;�;�w�'�D����w�/�H����d���/�"�+�+�D�1��� � ���2�0�/�2�#�#��0�/�s�(C�
(C�C		�C	�strictTc�p�|jtdi|��tj��|jtdi|��tj��|jtdj	dgdz�fi|��tj��|jtdi|��tj
��|jtd	i|��tj
��|jtdj	dgdz�fi|��tj
��y)
NrcrJ�d�.rQ)rc)z./.)r�)s./.)rDrr�getcwdrF�getcwdb�r%r's  r�test_realpath_curdirz"PosixPathTest.test_realpath_curdir�s���	
����0��0�"�)�)�+�>�����2�6�2�B�I�I�K�@�����#�(�(�C�5�3�;�"7�B�6�B�B�I�I�K�P�����1�&�1�2�:�:�<�@�����3�F�3�R�Z�Z�\�B�����$�)�)�T�F�S�L�"9�D�V�D�b�j�j�l�Src	��|jtdi|��ttj���|jtdi|��tttj����|jtdjdgdz�fi|��d�|jtdi|��ttj���|jtd	i|��tttj����|jtdjdgdz�fi|��d�y)
NrdrJr��..rQ)rd)z../..)r�)s../..)rDrrrr�rFr�r�s  r�test_realpath_pardirz"PosixPathTest.test_realpath_pardir�s���	
����1�&�1�7�2�9�9�;�3G�H�����4�V�4�g�g�b�i�i�k�>R�6S�T�����#�(�(�D�6�C�<�"8�C�F�C�S�I�����2�6�2�G�B�J�J�L�4I�J�����5�f�5�w�w�r�z�z�|�?T�7U�V�����$�)�)�U�G�c�M�":�E�f�E�t�Lrc��	tjtdzt�|jt	tfi|��tdz�tjt�y#tjt�wxYw�Nr7)rr�rrDrr
r9r�s  r�test_realpath_basicz!PosixPathTest.test_realpath_basic�sT��
	%��J�J�v�c�z�6�*����X�f�7��7����D����V�$��I���V�$�s�AA$�$A?c�@�	tjtdzt�|jtt
td��|jtt
tdzd��t
jt�y#t
jt�wxYw)Nr7T�r�r8)rr�r�assertRaises�FileNotFoundErrorrr
r9r3s r�test_realpath_strictz"PosixPathTest.test_realpath_strict�sk��
	%��J�J�v�c�z�6�*����/��6�$��O����/��6�C�<�PT��U����V�$��I���V�$�s�A&B�Bc��d}|jtt|d��|jtt|d��|jtt|t��d}|jtt|d��|jtt|d��|jtt|t��d}|jtt|d��|jtt|d��|jtt|t��d}|jtt|d��|jtt|d��|jtt|t��d}|jtt|d��|jtt|d��|jtt|t��d	}|jtt|d��|jtt|d��|jtt|t��d
}|jtt|d��|jtt|d��|jtt|t��d}|jtt|d��|jtt|d��|jtt|t��d}t
jd
k(r\|jt|d��|�|jtt|d��|jt|t��|�n[|jtt|d��|jtt|d��|jtt|t��d}t
jd
k(r?|jt|d��|�|jt|t��|�n>|jtt|d��|jtt|t��|jtt|d��d}t
jd
k(r\|jt|d��d�|jtt|d��|jt|t��d�n[|jtt|d��|jtt|d��|jtt|t��d}t
jd
k(r?|jt|d��d�|jt|t��d�n>|jtt|d��|jtt|t��|jtt|d��d}t
jd
k(r\|jtt|d��|jtt|d��|jtt|t��n�|jt|d��|�tjr?|jtt|d��|jtt|t��n>|jtt|d��|jt|t��|�d}t
jd
k(r?|jtt|d��|jtt|t��n|jt|d��|�tjr?|jtt|d��|jtt|t��y|jtt|d��y)Nr�Fr�Tr�z/nonexistent/xs/nonexistent/xz//..s//..z/nonexistent/x/..s/nonexistent/x/..r�r�u/nonexistent/�u/�/..rJu/nonexistent/�/..z/nonexistentr�s/nonexistent/�)
r��
ValueErrorrrr��sys�platformrD�UnicodeEncodeError�UnicodeDecodeErrorr	�is_wasir)r%r]s  r�test_realpath_invalid_pathsz)PosixPathTest.test_realpath_invalid_paths�s�������*�h��U��C����*�h��T��B����*�h��]��K������*�h��U��C����*�h��T��B����*�h��]��K�#�����*�h��U��C����+�X�t�D��I����*�h��]��K�$�����*�h��U��C����+�X�t�D��I����*�h��]��K������*�h��U��C����*�h��T��B����*�h��]��K������*�h��U��C����*�h��T��B����*�h��]��K�&�����*�h��U��C����+�X�t�D��I����*�h��]��K�'�����*�h��U��C����+�X�t�D��I����*�h��]��K����<�<�7�"����X�d�5�9�4�@����/��4���M����X�d�=�A�4�H����0�(�D���O����0�(�D���N����0�(�D���W�$���<�<�7�"����X�d�5�9�4�@����X�d�=�A�4�H����0�(�D���O����0�(�D���W����+�X�t�D��I����<�<�7�"����X�d�5�9�3�?����/��4���M����X�d�=�A�3�G����0�(�D���O����0�(�D���N����0�(�D���W�'���<�<�7�"����X�d�5�9�>�J����X�d�=�A�>�R����0�(�D���O����0�(�D���W����+�X�t�D��I����<�<�7�"����0�(�D���O����0�(�D���N����0�(�D���W����X�d�5�9�4�@�����!�!�'�8�T�$�!�G��!�!�'�8�T�-�!�P��!�!�"3�X�t�D�!�Q�� � ��$�}�!E�t�L�#���<�<�7�"����0�(�D���O����0�(�D���W����X�d�5�9�4�@��?�?����g�x��d��C����g�x��m��L����/��4���Mrc�*�	tjtjtdz�t�|jt
tfi|��tdz�tjt�y#tjt�wxYwr�)	rr�rE�relpathrrDrr
r9r�s  r�test_realpath_relativez$PosixPathTest.test_realpath_relativeMs_��	%��J�J�y�(�(����4�f�=����X�f�7��7����D����V�$��I���V�$�s�AA7�7Bc�n�	tjtjdztj�|j	tdtjzfi|��tdz�tjtj�y#tjtj�wxYw)Nr7znonexistent/../)rr�r
r:rDrrr9r�s  r�test_realpath_missing_pardirz*PosixPathTest.test_realpath_missing_pardirWs���	/��J�J�y�'�'�#�-�y�/?�/?�@�����*�Y�-=�-=�=�H��H�&�SV�,�
X�
���Y�-�-�.��I���Y�-�-�.�s�A)B�%B4c�	�	tjtt�|jt	t�t�tjtdztdz�tjtdztdz�|jt	tdz�tdz�|jt	tdz�tdz�|jt	tdz�tdz�|jt	tdz�tt��|jt	tdz�tt�dz�tjtdztdz�|jt	td	zt
t�zdz�tdz�|jt	td	zt
t�zdz�tdz�tjt
t�d
ztdz�|jt	tdz�td
z�tjdt
tt��zd
zt
t�zdztdz�|jt	tdz�tdz�tjtt��5|jt	t
t��t�ddd�tjt�tjtdz�tjtdz�tjtdz�tjtdz�tjtdz�y#1swY��xYw#tjt�tjtdz�tjtdz�tjtdz�tjtdz�tjtdz�wxYw)Nr7r8�1/x�1/..�1/../x�/x�x�y�1/../rhrgr�rJ�c)
rr�rrDrrrr
�
change_cwdr9r3s r�test_realpath_symlink_loopsz)PosixPathTest.test_realpath_symlink_loopsbs��
"	)��J�J�v�v�&����X�f�-�v�6��J�J�v�c�z�6�#�:�.��J�J�v�c�z�6�#�:�.����X�f�S�j�1�6�#�:�>����X�f�S�j�1�6�#�:�>����X�f�U�l�3�V�E�\�B����X�f�V�m�4�g�f�o�F����X�f�X�o�6����$�8N�O��J�J�v�c�z�6�#�:�.����X�f�W�n�x��7G�&G�#�&M�N�#�c�\�
+����X�f�W�n�x��7G�&G�#�&M�N�#�c�\�
+�
�J�J�x��'�%�/����<����X�f�S�j�1�6�%�<�@��J�J�u�x����8�8�3�>���'�(�*-�.�/5�c�z�
;����X�f�S�j�1�6�#�:�>��%�%�g�f�o�6�� � ��(�6�*:�!;�V�D�7�
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�7�6��
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�s%�K.O�0-O�O�O�O�B'Q>c��	tjtt�|jtt
tfi|��tjtdztdz�tjtdztdz�|jtt
tdzfi|��|jtt
tdzfi|��|jtt
tdzfi|��|jtt
tdzfi|��|jtt
tdzfi|��tjtdztdz�|jtt
tdzt
t�zdzfi|��|jtt
tdzt
t�zdzfi|��tjt
t�d	ztd
z�|jtt
td
zfi|��tjdt
tt��zdzt
t�zd
ztd
z�|jtt
td
zfi|��tjtt��5|jtt
t
t�fi|��ddd�tjt�tjtdz�tjtdz�tjtdz�tjtd
z�tjtd
z�y#1swY��xYw#tjt�tjtdz�tjtdz�tjtdz�tjtd
z�tjtd
z�wxYw)Nr7r8rrrrrrrhrgr�rJr)rr�rr�rrrrr
rr9r�s  r�"test_realpath_symlink_loops_strictz0PosixPathTest.test_realpath_symlink_loops_strict�s��"	)��J�J�v�v�&��D���g�x��B�6�B��J�J�v�c�z�6�#�:�.��J�J�v�c�z�6�#�:�.��D���g�x����F�v�F��D���g�x����F�v�F��D���g�x����H��H��D���g�x����I�&�I��D���g�x����K�F�K��J�J�v�c�z�6�#�:�.��D���g�x�$�W�n�x��/?�?�#�E�
Q�IO�
Q��D���g�x�$�W�n�x��/?�?�#�E�
Q�IO�
Q�
�J�J�x��'�%�/����<��D���g�x����F�v�F��J�J�u�x����8�8�3�>���'�(�*-�.�/5�c�z�
;��D���g�x����F�v�F��%�%�g�f�o�6�!��!�!�'�8�X�f�5E�P��P�7�
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�7�6��
���V�$����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(����V�C�Z�(�s%�J0N�2+N�N�N�N�B'P>c�@�	tjt�tjdt	t�ztdz�tjdtdz�|jt
tdzfi|��t�tjtdz�tjtdz�tt�y#tjtdz�tjtdz�tt�wxYw)Nr�z/selfzself/self/selfz/link)
rr�rr�rrDrr
r9r r�s  r�(test_realpath_repeated_indirect_symlinksz6PosixPathTest.test_realpath_repeated_indirect_symlinks�s���
	��H�H�V���J�J�u�x��/�/��'�1A�B��J�J�'��'�)9�:����X�f�w�&6�A�&�A�6�J����V�g�-�.����V�g�-�.��v���
���V�g�-�.����V�g�-�.��v��s
�B
C�A	Dc�
�d}	tjt�t|�D];}tjdjd|zgdz�td|dzzz��=tjdtdz�|j
ttd|zzfi|��t�tjt�5|j
td|z�t�ddd�t|dz�D]!}tjtd|zz��#tt�y#1swY�KxYw#t|dz�D]!}tjtd|zz��#tt�wxYw)N�
rJz%dz/%dr�rcz/0)rr�r�ranger�rFrDrr
rr9r )r%r'�depth�is    r�test_realpath_deep_recursionz*PosixPathTest.test_realpath_deep_recursion�s+����
	��H�H�V���5�\���
�
�3�8�8�T�A�X�J��O�4�f�u��A���6N�O�"��J�J�s�F�T�M�*����X�f�u�u�}�&<�G��G��P��%�%�f�-�� � ��$��,�!7��@�.��5�1�9�%��� � ��%�!�)�!3�4�&��v��.�-���5�1�9�%��� � ��%�!�)�!3�4�&��v��s%�CD?�#D3�)D?�3D<�8D?�?AFc�\�	tjt�tjtdz�tjtdztdz�t	j
tdz�5|j
tdi|��tdz�ddd�t	jtdz�ttdz�tt�y#1swY�GxYw#t	jtdz�ttdz�tt�wxYw)Nz/y�/kz/y/a)rg)
rr�rr�r
rrDrr9r r�s  r�test_realpath_resolve_parentsz+PosixPathTest.test_realpath_resolve_parents�s���	��H�H�V���H�H�V�d�]�#��J�J�v��}�f�t�m�4��%�%�f�t�m�4�� � ��!8��!8�$*�V�O�5�5�
���V�d�]�+��v��}�%��v��
5�4��
���V�d�]�+��v��}�%��v��s$�A5C,�7#C �C,� C)�%C,�,?D+c�^�	tjt�tjtdz�tjtdz�tjtdztdz�|j	ttdzfi|��tdz�t
jtt��5|j	ttt�dzfi|��tdz�ddd�t
jtdz�ttdz�ttdz�tt�y#1swY�YxYw#t
jtdz�ttdz�ttdz�tt�wxYw)Nr#z/k/yz/link-yz
/link-y/..)rr�rr�rDrr
rrrr9r r�s  r�(test_realpath_resolve_before_normalizingz6PosixPathTest.test_realpath_resolve_before_normalizing�s&��	��H�H�V���H�H�V�d�]�#��H�H�V�f�_�%��J�J�v�����(:�;�
���X�f�|�&;�F�v�F��QU�
�V��%�%�g�f�o�6�� � ��(�6�*:�\�*I�!T�V�!T�!'�$��0�7�
���V�i�/�0��v���'��v��}�%��v��7�6��
���V�i�/�0��v���'��v��}�%��v��s%�CE�4E�7E�E�E�AF,c���	tjt�tjtdz�tjttdz�t	j
t
t��5tt�}|jt|dzfi|��t�|jt|dzfi|��tdz�ddd�t	jtdz�ttdz�tt�y#1swY�GxYw#t	jtdz�ttdz�tt�wxYw)Nr#�linkzlink/k)rr�rr�r
rrrrDrr9r )r%r'�bases   r�test_realpath_resolve_firstz)PosixPathTest.test_realpath_resolve_first
s���	��H�H�V���H�H�V�d�]�#��J�J�v�v���/��%�%�g�f�o�6���'��� � ��$��-�!B�6�!B�F�K�� � ��$��/�!D�V�!D�f�t�m�T�7�

���V�f�_�-��v��}�%��v��7�6��

���V�f�_�-��v��}�%��v��s%�A8D%�:AD�D%�D"�D%�%?E$zCan't set symlink permissions�darwinz1only macOS requires read permission to readlink()c�B�	tjtdzt�tjtdd��|j	t
�5t
tfi|��ddd�|j	t
�5t
tdzfi|��fddd�|j	t
�5t
tdzfi|��ddd�|j	t
�5t
tdzfi|��ddd�tjtdd��tjt�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY�cxYw#tjtdd��tjt�wxYw)	Nr7rF)�follow_symlinksr=r�r���)rr�r�chmodr��PermissionErrorrr9r�s  r�'test_realpath_unreadable_symlink_strictz5PosixPathTest.test_realpath_unreadable_symlink_stricts��
	��J�J�v�c�z�6�*��H�H�V�U�E�:��"�"�?�3���*�6�*�4��"�"�?�3���&��3�F�3�4�4��"�"�?�3���)�+�6�v�6�4��"�"�?�3���)�+�6�v�6�4�
�H�H�V�U�E�:��I�I�f��4�3��3�3��3�3��3�3��
�H�H�V�U�E�:��I�I�f��sl�AE'�D7�%E'�E�E'�4E�E'�%E�9E'�7E�<E'�E�E'�E�E'�E$� E'�'7Fc���	tjt�tjtdz�tjtd�|j	ttd��t�|j	ttd��t�|j	ttt��t�	tjt�|jd�|j	ttdzd��tdz�|jtt
tdzd��|jtt
tdzt��|j	ttdzd��tdz�|jtt
tdzd��|jtt
tdzt��tjtd�ttdz�tt�y#t$rY��6wxYw#tjtd�ttdz�tt�wxYw)	Nr#rFr�TzCannot block permissionsz/missingr.)rr�rr/rDrr�stat�skipTestr0r�r r3s r�"test_realpath_unreadable_directoryz0PosixPathTest.test_realpath_unreadable_directory3s���	��H�H�V���H�H�V�d�]�#��H�H�V�U�#����X�f�U�;�V�D����X�f�T�:�F�C����X�f�]�C�V�L�
:�������
�
�8�9����X�f�t�m�E�B�#�d�]�
,����o�x��$��%)�
�
+����o�x��$��%2�
�
4�
���X�f�z�&9�%�H�#�j�0�
2����o�x��*�9L�%)�
�
+����o�x��*�9L�%2�
�
4�
�H�H�V�U�#��v��}�%��v���+#�
��
��&
�H�H�V�U�#��v��}�%��v��s1�CH)�H�C?H)�	H&�"H)�%H&�&H)�)=I&c�j�tjd�c}t_	tjjtj��d}|j	t
tjd�|jt
jd�d�|jt
jt
jd��d�|jt
jd�d�|jt
jd�d�|jt
jdd�d|zd	z�|jt
jdd
�d|zdz�|jt
jdd�d
�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jd	d	�d�|jt
jdd�d�|t_y#|t_wxYw)Nc��y)Nz/home/user/barr,r,rr�<lambda>z,PosixPathTest.test_relpath.<locals>.<lambda>Xs��7Hr���r6rgrhz../a/bz../br�rjz../crkzb/cz../../arcz/foo/bar/batz/x/y/zz../../../foo/bar/batrI�batrJzfoo/bar/batz../../..rz../foo/bar/batz
../../../x)
rr�r]rWr�rrEr	rDr)r%�real_getcwd�curdirs   r�test_relpathzPosixPathTest.test_relpathWse��$&�I�I�/H� ��b�i�	$��W�W�]�]�2�9�9�;�/��3�F����j�)�*;�*;�R�@����Y�.�.�s�3�S�9����Y�.�.�y�/@�/@��/E�F��L����Y�.�.�u�5�u�=����Y�.�.�x�8�(�C����Y�.�.�s�F�;�U�6�\�$�=N�O����Y�.�.�u�f�=�"�6�\�&�0�
2����Y�.�.�s�E�:�I�F����Y�.�.�s�C�8�#�>����Y�.�.�~�x�H�J`�a����Y�.�.�~�z�J�E�R����Y�.�.�~�s�C�]�S����Y�.�.�s�N�C�Z�P����Y�.�.�~�t�D�FV�W����Y�.�.�t�^�D�l�S����Y�.�.�s�C�8�#�>����Y�.�.�t�T�:�C�@����Y�.�.�v�v�>��D�#�B�I���B�I�s�K:L%�%
L2c��tjd�c}t_	tjjtj��d}|j	t
tjd�|jt
jd�d�|jt
jt
jd��d�|jt
jd�d�|jt
jd�d�|jt
jdd�d|zd	z�|jt
jdd
�d|zdz�|jt
jdd�d
�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jdd�d�|jt
jd	d	�d�|jt
jdd�d�|j	ttjdd�|j	ttjdd�|t_y#|t_wxYw)Nc��y)Ns/home/user/barr,r,rrr8z2PosixPathTest.test_relpath_bytes.<locals>.<lambda>rs��:Lrr9rrqsa/bs../a/bs../bs../rrs../cs/a/bsb/cs../../ar�s/foo/bar/bats/x/y/zs../../../foo/bar/batrPsbatrQsfoo/bar/bats../../..s/xs../foo/bar/bats
../../../xsbytesr�)rr�r]rWr�rrEr	rDr�	TypeError)r%�real_getcwdbr<s   r�test_relpath_bytesz PosixPathTest.test_relpath_bytesqs���&(�j�j�2L�"��r�z�	&��W�W�]�]�2�:�:�<�0��4�F����j�)�*;�*;�S�A����Y�.�.�t�4�d�;����Y�.�.�y�/@�/@��/F�G��N����Y�.�.�v�6��?����Y�.�.�y�9�9�E����Y�.�.�t�W�=�#�F�]�5�0�
2����Y�.�.�v�w�?�#�F�]�7�2�
4����Y�.�.�t�V�<�j�I����Y�.�.�t�T�:�D�A����Y�.�.��	�J�Lc�d����Y�.�.���L�f�U����Y�.�.���E�~�V����Y�.�.�t�_�E�{�S����Y�.�.���F�HY�Z����Y�.�.�u�o�F�
�V����Y�.�.�t�T�:�D�A����Y�.�.�u�e�<�d�C����Y�.�.�w��@�$�G����i��):�):�H�e�L����i��):�):�E�8�L�%�B�J���B�J�s�MM1�1
M>c�p���fd�}�fd�}�jttjg�|tddg�|tddg�|dgd�|ddgd�|ddgd�|ddgd�|ddgd�|d	d
gd�|ddgd�|ddgd�|d
dgd�|d
dgd�|ddgd�|d
dgd�|dgd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|gd�d�|gd�d�|dgd�|ddgd�|tddg��jttjd dg��jttjd d!g��jttjd"dg��jttjd
d#g��jttjd
d$g��jttjd%d#g�y)&Nc
����jtj|�|��jtj|D�cgc]}tj|���c}�tj|��ycc}wr)rDrE�
commonpathrr�)�pathsr��pr%s   �r�checkz,PosixPathTest.test_commonpath.<locals>.check�s_������Y�1�1�%�8�(�C����Y�1�1�5�2Q�5�a�2�;�;�q�>�5�2Q�R��[�[��2�
4��2Qs�Bc
�����j|tj|��j|tj|D�cgc]}tj|���c}�ycc}wr)r�rErErr�)�excrFrGr%s   �r�check_errorz2PosixPathTest.test_commonpath.<locals>.check_error�sP������c�9�#7�#7��?����c�9�#7�#7�7<�=�u�!�r�{�{�1�~�u�=�
?��=s�A&z/usr�usrz
/usr/localz/usr/local/z/usr//localz//usr/localz/usr/./localz/./usr/localrJz/devz	/usr/lib/z/usr/lib/python3z/usr/libz/usr/lib64/z
/usr/lib64�spam�alotr6�and/jam�and/spam�andzand//jamz
and/spam//z	and/./jamz
./and/spam)rOrPrN)rOrPrQz	spam/alotz
/spam/alots	/usr/lib/zusr/lib/python3susr/lib/s/usr/lib/python3susr/lib/python3zusr/lib/)r�rrErEr@)r%rHrKs`  r�test_commonpathzPosixPathTest.test_commonpath�sP���	4�	?�
	
���*�i�&:�&:�B�?��J����0��J����0�
�|�n�l�+�
�|�\�*�L�9�
�}�l�+�\�:�
�}�m�,�l�;�
�}�m�,�l�;�
�~�~�.��=�
�s�F�m�S�!�
�v�v���$�
�{�.�/��<�
�{�M�*�F�3�
�z�<�(�&�1�
�{�L�)�6�2�
�v�h���
�v�v���'�
�v�v���#�
�y�*�%�u�-�
�z�<�(�%�0�
�{�L�)�5�1�
�-�r�2�
�,�e�4�
�r�d�B��
�r�;���$��J��\� 2�3����)�Y�%9�%9�'�);�<�	>����)�Y�%9�%9�'�):�;�	=����)�Y�%9�%9�&�(:�;�	=����)�Y�%9�%9�&�(;�<�	>����)�Y�%9�%9�&�(:�;�	=����)�Y�%9�%9�%�':�;�	=r)<�__name__�
__module__�__qualname__r4r2rGrXr`rerwr{r}rr�r�r�r
�skip_unless_symlinkr�r�skipIfr�r�r�r�rrrr�r�r�r�r�r�r�rr.rr�r�r�r�rr
rrrrr!r$r&r*rr/�supports_follow_symlinksr1r5r=rBrRr,rrr0r0>s����2�
+�M�7�8&�:�4:�D�E�X�*?�:��"�"��#���X�_�_�U�d�]�$@�A�"�B�"�"�X�_�_�U�d�]�$@�A�"�B�"�*7��X�_�_�S�\�\�W�,�.L�M��?��N�?�?�L� �X�_�_�S�\�\�Y�.�3�5�%G�5�%G�N�X�_�_�S�\�\�Y�.�3�5�4�5�4� 1�N�f
3�'��2��$�'�(�M�)B�C�T�D�'�T�'��2��$�'�(�M�)B�C�M�D�'�M��"�"�&��2��-�0�1�%�2�'�#�%��"�"�&�%�'�#�%�]N�~�"�"�&��2��-�0�1�%�2�'�#�%��"�"�&��2��-�0�1�/�2�'�#�/��"�"�&�%)�'�#�%)�N�"�"�&��H�d�#�h�
�%>�?�%)�@�'�#�%)�N�"�"�&��2��$�'�(�M�)B�C�
�D�'�#�
��"�"�&��2��$�'�(�M�)B�C��D�'�#��"�"�"�&��2��-�0�1��2�'�#��$�"�"�&��2��$�'�(�M�)B�C��D�'�#��4�"�"�&��2��$�'�(�M�)B�C��D�'�#��"�"�"�&��X�_�_�R�X�X�R�%@�%@�@�Ba�b��X�_�_�S�\�\�X�-�/b�c��H�d�#�h�
�%>�?��@�d�c�'�#�
� '��"�"� �#�'� �D$�4&�<4=rr0c��eZdZeZgd�Zy)�PosixCommonTest)r	�samefile�sameopenfile�samestatN)rSrTrUrE�
pathmodule�
attributesr,rrrZrZ�s���J�D�JrrZc��eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zeiddidei�d��Zd�Zd�Zy)�
PathLikeTestsc�8�tj|_ttj�|_|jtj|j�t|jdd�5}|jd�ddd�y#1swYyxYw)N�xbrstest_posixpath.PathLikeTests)	r
r:�	file_namer�	file_path�
addCleanupr9r�r�)r%�files  rr4zPathLikeTests.setUp�sd��"�)�)���!�)�"2�"2�3������	�(�(�$�.�.�9�
�$�.�.�$��
*�d��J�J�6�7�+�
*�
*�s�5B�Bc�h�|j||j�||j��yr)rDrerd)r%r)s  r�assertPathEqualzPathLikeTests.assertPathEqual�s$������d�n�n�-�t�D�N�N�/C�Drc�N�|j|jj�yr)rir]�normcaser3s r�test_path_normcasez PathLikeTests.test_path_normcase�������T�Y�Y�/�/�0rc�N�|j|jj�yr)rir]rzr3s r�test_path_isabszPathLikeTests.test_path_isabs�������T�Y�Y�_�_�-rc��|j|jjdtd�d�|jjddd��y)Nrg�br)rDr]rFrr3s r�test_path_joinzPathLikeTests.test_path_join�s;�����������X�c�]�C�@�������S�#�6�	8rc�N�|j|jj�yr)rir]rWr3s r�test_path_splitzPathLikeTests.test_path_split�rprc�N�|j|jj�yr)rir]r[r3s r�test_path_splitextz PathLikeTests.test_path_splitext�rmrc�N�|j|jj�yr)rir]�
splitdriver3s r�test_path_splitdrivez"PathLikeTests.test_path_splitdrive�������T�Y�Y�1�1�2rc�N�|j|jj�yr)rir]rtr3s r�test_path_splitrootz!PathLikeTests.test_path_splitroot�s�����T�Y�Y�0�0�1rc�N�|j|jj�yr)rir]rr3s r�test_path_basenamez PathLikeTests.test_path_basename�rmrc�N�|j|jj�yr)rir]rr3s r�test_path_dirnamezPathLikeTests.test_path_dirname�������T�Y�Y�.�.�/rc�N�|j|jj�yr)rir]r�r3s r�test_path_islinkzPathLikeTests.test_path_islink�s�����T�Y�Y�-�-�.rc�N�|j|jj�yr)rir]r�r3s r�test_path_lexistszPathLikeTests.test_path_lexists�r�rc�N�|j|jj�yr)rir]r�r3s r�test_path_ismountzPathLikeTests.test_path_ismount�r�rc�N�|j|jj�yr)rir]r�r3s r�test_path_expanduserz"PathLikeTests.test_path_expanduser�r{rc�N�|j|jj�yr)rir]�
expandvarsr3s r�test_path_expandvarsz"PathLikeTests.test_path_expandvarsr{rc�N�|j|jj�yr)rir]r�r3s r�test_path_normpathz PathLikeTests.test_path_normpathrmrc�N�|j|jj�yr)rir]rr3s r�test_path_abspathzPathLikeTests.test_path_abspathr�rr�Tc��|j|jj�|jt|jjfi|���yr)rir]rrr�s  r�test_path_realpathz PathLikeTests.test_path_realpath
s<�����T�Y�Y�/�/�0����W�T�Y�Y�%7�%7�B�6�B�Crc�N�|j|jj�yr)rir]r	r3s r�test_path_relpathzPathLikeTests.test_path_relpathr�rc��|jj|j|jg�}|j	||j�yr)r]rErerdrD)r%�common_paths  r�test_path_commonpathz"PathLikeTests.test_path_commonpaths7���i�i�*�*�D�N�N�D�N�N�+K�L������d�n�n�5rN)rSrTrUrEr]r4rirlrorsrurwrzr}rr�r�r�r�r�r�r�r�r.rr�r�r�r,rrrara�s����D�8�E�1�.�8�.�1�3�2�1�0�/�0�0�3�3�1�0��2��$�'�(�M�)B�C�D�D�D�
0�6rra�__main__)$r�rrErr�	functoolsrrrrrrrr	r
�test.supportrrr
�test.support.os_helperrrr��ImportErrorr:rrr r.�TestCaser0�
CommonTestrZrarS�mainr,rr�<module>r�s����	��
���I�I��!�&�0�+����
��!�!�	"��=�
�"�(E=�H�%�%�E=�PE�&�1�1�8�3D�3D�E�
J6�H�%�%�J6�Z�Z���H�M�M�O���O ���E��s�C�C�C