Your IP : 216.73.216.213


Current Path : /opt/alt/python311/lib64/python3.11/test/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/test/__pycache__/test_posixpath.cpython-311.opt-2.pyc

�

�0�i����ddlZddlZddlZddlZddlmZddlmZmZmZm	Z	m
Z
ddlmZddlm
Z
ddlmZddlmZddlmZdd	lmZ	ddlZn
#e$rdZYnwxYweej��Zd
�Zd�Zd�ZGd
�dej��ZGd�de
jej��ZGd�dej��Ze dkrej!��dSdS)�N)�partial)�realpath�abspath�dirname�basename�
ALLOW_MISSING)�support)�test_genericpath)�
import_helper)�	os_helper)�FakePath)�mockc�d�	dtv}d}|tj|��|��g|S)N�\z'ABSTFN is not a posix path - tests fail)�ABSTFN�unittest�skip)�test�found_backslash�msgs   �:/opt/alt/python311/lib64/python3.11/test/test_posixpath.py�!skip_if_ABSTFN_contains_backslashrs<���
�f�n�O�
3�C��$�(�-��$�$�T�*�*�+�O�<�<�c�R�	tj|��dS#t$rYdSwxYw�N)�os�rmdir�OSError)rs r�
safe_rmdirr#s?��
�
����������
�
�
����
���s��
&�&c���	�fd�}|S)Nc������fd�}|S)Nc����D]=}|�|��5�|g|�|�Ri|��ddd��n#1swxYwY�>dSr)�subTest)�self�args�kwargs�	parameter�func�
parameterss    ��r�_parameterizedzE_parameterize.<locals>._parametrize_decorator.<locals>._parameterized5s����'�
;�
;�	��\�\�)�,�,�;�;��D��:��:�i�:�:�:�6�:�:�:�;�;�;�;�;�;�;�;�;�;�;����;�;�;�;��
;�
;s�6�:	�:	�)r(r*r)s` �r�_parametrize_decoratorz-_parameterize.<locals>._parametrize_decorator4s*����	;�	;�	;�	;�	;�	;��rr+)r)r,s` r�
_parameterizer-)s)���	������"�!rc	��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zejd
���Zejedud��d���Zejedud��d���Zd�Zd�Zejejdkd��d���Zgd�Zd�Zeeiddide i��d�����Z!eeiddide i��d�����Z"ejeeide i��d�������Z#ejed�����Z$d�Z%ejeeide i��d �������Z&ejeeide i��d!�������Z'ejed"�����Z(ejeeddide i��d#�������Z)ejeeiddide i��d$�������Z*ejeeiddide i��d%�������Z+ejeeide i��d&�������Z,ejeeiddide i��d'�������Z-ejeeiddide i��d(�������Z.ejeeje/j0e/j1vd)��ejejd*kd+��eddide i��d,�����������Z2eejd-�����Z3d.�Z4d/�Z5d0�Z6dS)1�
PosixPathTestc�.�|���dSr)�tearDown�r$s r�setUpzPosixPathTest.setUp?s���
�
�����rc��dD]?}tjtj|z��ttj|z���@dS)N)��1�2)r�unlink�TESTFNr)r$�suffixs  rr1zPosixPathTest.tearDownBsM��$�	2�	2�F���Y�-��6�7�7�7��y�'�&�0�1�1�1�1�	2�	2rc��|�tjdddd��d��|�tjddd��d��|�tjddd	��d
��|�tjddd
d��d��|�tjddd��d��|�tjddd��d��dS)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�joinr2s r�	test_joinzPosixPathTest.test_joinGs
���������v�u�E�E�#�	%�	%�	%��������u�=�=�~�N�N�N���������@�@�(�	*�	*�	*�	
��������&�I�I�$�	&�	&�	&���������@�@�(�	*�	*�	*�������'�7�C�C�)�	+�	+�	+�	+�	+rc�&�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd	��d
��|�tjd��d��|�tjd
��d��|�tjd��d��|�tjd��d��|�tjd��d��dS)N�/foo/bar)r<r=�/)rIr5�foo)r5rJ�////foo)�////rJ�
//foo//bar)�//foor=�/foo/bar)rArB�/)rPr�foo)rrQ�////foo)�////rQ�
//foo//bar)�//foorB)rCrD�splitr2s r�
test_splitzPosixPathTest.test_splitUsL��������4�4�o�F�F�F�������-�-�y�9�9�9�������/�/��=�=�=�������3�3�_�E�E�E�������6�6�8H�I�I�I�������5�5�7H�I�I�I�������.�.��<�<�<�������0�0�-�@�@�@�������4�4�6G�H�H�H�������7�7�9K�L�L�L�L�Lrc���|�tj|��||f��|�tjd|z��d|z|f��|�tjd|z��d|z|f��|�tjd|z��d|z|f��|�tjd|z��d|z|f��|�tj|dz��||zdzdf��t|d��}t|d��}t|d��}|�tj|��||f��|�tjd|z��d|z|f��|�tjd|z��d|z|f��|�tjd	|z��d	|z|f��|�tjd
|z��d
|z|f��|�tj|dz��||zdzdf��dS)NrIzabc/zabc.def/z	/abc.def/r5�ASCIIrPsabc/sabc.def/s	/abc.def/r)rCrD�splitext�bytes)r$�path�filename�exts    r�splitextTestzPosixPathTest.splitextTestbs�������+�D�1�1�H�c�?�C�C�C�����+�C�$�J�7�7�#��.�#�9N�O�O�O�����+�F�T�M�:�:� �8�+�S�1�	3�	3�	3�����+�J��,=�>�>�$�x�/��5�	7�	7�	7�����+�K�$�,>�?�?�%��0�#�6�	8�	8�	8�����+�D�3�J�7�7�"�S�.�3�.��3�	5�	5�	5��T�7�#�#����7�+�+���C��!�!������+�D�1�1�H�c�?�C�C�C�����+�D�4�K�8�8���/�3�/�	1�	1�	1�����+�G�d�N�;�;�!�H�,�c�2�	4�	4�	4�����+�K�$�,>�?�?�%��0�#�6�	8�	8�	8�����+�L�4�,?�@�@�&��1�3�7�	9�	9�	9�����+�D�4�K�8�8�"�S�.�4�/��5�	7�	7�	7�	7�	7rc�.�|�ddd��|�ddd��|�ddd��|�dd	d
��|�ddd��|�d
d
d��|�ddd��|�ddd��|�ddd��|�ddd��|�ddd��|�ddd��dS)Nzfoo.barrJz.barzfoo.boo.barzfoo.boozfoo.boo.biff.barzfoo.boo.biffz.csh.rcz.cshz.rc�nodotsr5z.cshrcz...manydotsz...manydots.extz.ext�.�..z........)r_r2s r�
test_splitextzPosixPathTest.test_splitext~s*�����)�U�F�3�3�3����-��F�;�;�;����,�n�f�E�E�E����)�V�U�3�3�3����(�H�b�1�1�1����(�H�b�1�1�1����-���;�;�;����+�]�F�C�C�C����#�s�B�'�'�'����$��b�)�)�)����*�j�"�5�5�5����"�b�"�%�%�%�%�%rc�&�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd	��d��|�tjd
��d��|�tjd��d��|�tjd��d��dS)
Nr5FrITr<rHzfoo/barrrPrArOsfoo/bar)�assertIsrD�isabsr2s r�
test_isabszPosixPathTest.test_isabs�s4���
�
�i�o�b�)�)�5�1�1�1��
�
�i�o�c�*�*�D�1�1�1��
�
�i�o�f�-�-�t�4�4�4��
�
�i�o�j�1�1�4�8�8�8��
�
�i�o�i�0�0�%�8�8�8��
�
�i�o�c�*�*�E�2�2�2��
�
�i�o�d�+�+�T�2�2�2��
�
�i�o�g�.�.��5�5�5��
�
�i�o�k�2�2�D�9�9�9��
�
�i�o�j�1�1�5�9�9�9�9�9rc�&�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d	��|�tjd
��d��|�tjd��d��|�tjd
��d��|�tjd��d	��dS)NrHr=rIr5rJrKrMrOrBrPrrQrRrT)rCrDrr2s r�
test_basenamezPosixPathTest.test_basename�sR������+�J�7�7��?�?�?�����+�C�0�0�"�5�5�5�����+�E�2�2�E�:�:�:�����+�I�6�6��>�>�>�����+�L�9�9�5�A�A�A�����+�K�8�8�&�A�A�A�����+�D�1�1�3�7�7�7�����+�F�3�3�V�<�<�<�����+�J�7�7��@�@�@�����+�M�:�:�F�C�C�C�C�Crc�&�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d	��|�tjd
��d��|�tjd��d��|�tjd
��d��|�tjd��d��|�tjd��d��dS)NrHr<rIrJr5rKrLrMrNrOrArPrQrrRrSrTrU)rCrDrr2s r�test_dirnamezPosixPathTest.test_dirname�sR������*�:�6�6��?�?�?�����*�3�/�/��5�5�5�����*�5�1�1�2�6�6�6�����*�9�5�5�v�>�>�>�����*�<�8�8�'�B�B�B�����*�;�7�7��A�A�A�����*�4�0�0�$�7�7�7�����*�6�2�2�C�8�8�8�����*�:�6�6��@�@�@�����*�=�9�9�8�D�D�D�D�Drc�8�|�tjtjdz��d��|�tjtjdz��d��t
tjdzd��5}|�d��ddd��n#1swxYwY|�tjtjdz��d��tj���r$tj
tjdztjdz��|�tjtjdz��d��tjtjdz��|�tjtjdz��d��|�tjtjdz��d��|�tjtjdz��d��|�tjtjdz��d��|�tjtj
tj��dz��d��|�tjtjd	z��d��|�tjtj
tj��d
z��d��dS)Nr6Fr7�wbrQTu�����)rfrD�islinkrr9�lexists�open�write�can_symlinkr�symlink�remove�exists�fsencode)r$�fs  r�test_islinkzPosixPathTest.test_islink�s����
�
�i�&�y�'7�#�'=�>�>��F�F�F��
�
�i�'�	�(8�3�(>�?�?��G�G�G�
�)�"�S�(�$�
/�
/�	�1�
�G�G�F�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�i�&�y�'7�#�'=�>�>��F�F�F�� �"�"�	K��J�y�'�#�-�y�/?�#�/E�F�F�F��M�M�)�*�9�+;�c�+A�B�B�D�I�I�I��I�i�&��,�-�-�-��M�M�)�*�9�+;�c�+A�B�B�D�I�I�I��M�M�)�*�9�+;�c�+A�B�B�E�J�J�J��M�M�)�+�I�,<�s�,B�C�C�T�J�J�J��
�
�i�&�y�'7�(�'B�C�C�U�K�K�K��
�
�i�&�r�{�9�3C�'D�'D�w�'N�O�O�QV�W�W�W��
�
�i�&�y�'7�&�'@�A�A�5�I�I�I��
�
�i�&�r�{�9�3C�'D�'D�w�'N�O�O�QV�W�W�W�W�Ws�B*�*B.�1B.c�z�|�tjd��d��|�tjd��d��|�tjtd����d��|�tjtd����d��dS)NrITrP)rfrD�ismountr
r2s r�test_ismountzPosixPathTest.test_ismount�s����
�
�i�'��,�,�d�3�3�3��
�
�i�'��-�-�t�4�4�4��
�
�i�'���
�
�6�6��=�=�=��
�
�i�'�����7�7��>�>�>�>�>rc��|�tjt��d��	t	jt��|�tjt��d��t
t��n#t
t��wxYw|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��dS)NF�/��/��/�/)rfrDr~rr�mkdirrr2s r�test_ismount_non_existentz'PosixPathTest.test_ismount_non_existent�s����
�
�i�'��/�/��7�7�7�	��H�V�����M�M�)�+�F�3�3�U�;�;�;��v������J�v���������
�
�i�'�	�2�2�E�:�:�:��
�
�i�'��1�1�5�9�9�9��
�
�i�'��0�0�%�8�8�8��
�
�i�'��1�1�5�9�9�9�9�9s�AB
�
B c��	tjdt��|�t	jt��d��tjt��dS#tjt��wxYw)NrIF)rrwrrfrDr~r8r2s r�test_ismount_symlinksz#PosixPathTest.test_ismount_symlinks�sd��	��J�s�F�#�#�#��M�M�)�+�F�3�3�U�;�;�;��I�f�������B�I�f�������s�AA$�$A?NzTest requires posix modulec���tj}d�}	|t_|�tjt
��d��|t_dS#|t_wxYw)Nc�d�d}d}|tkrd}d}tjd||dddddddf
��S)Nr�)r�posix�stat_result�r\�st_ino�st_devs   r�
fake_lstatz?PosixPathTest.test_ismount_different_device.<locals>.fake_lstat�sE���F��F��v�~�~������$�a����A�q�!�Q��1�%M�N�N�NrT�r�lstatrfrDr~r�r$�
save_lstatr�s   r�test_ismount_different_devicez+PosixPathTest.test_ismount_different_device�sf���X�
�	O�	O�	O�	"�!�B�H��M�M�)�+�F�3�3�T�:�:�:�!�B�H�H�H��z�B�H�!�!�!�!��9A�A&c���tj}d�}	|t_|�tjt
��d��|t_dS#|t_wxYw)Nc���d}d}|�t��r|tkrtd���|tkrd}d}tjd||dddddddf
��S)Nrz!Fake [Errno 13] Permission deniedr�)�
startswithrrr�r�r�s   rr�zEPosixPathTest.test_ismount_directory_not_readable.<locals>.fake_lstat�ss���F��F����v�&�&�
C�4�6�>�>��A�B�B�B��v�~�~������$�a����A�q�!�Q��1�%M�N�N�NrTr�r�s   r�#test_ismount_directory_not_readablez1PosixPathTest.test_ismount_directory_not_readable�sf���X�
�
	O�
	O�
	O�	"�!�B�H��M�M�)�+�F�3�3�T�:�:�:�!�B�H�H�H��z�B�H�!�!�!�!r�c��|�tjd��d��|�tjd��d��dS)NrJrQ)rCrD�
expanduserr2s r�test_expanduserzPosixPathTest.test_expanduser
sJ������-�e�4�4�e�<�<�<�����-�f�5�5�v�>�>�>�>�>rc�t�tj��5}d|d<|�tjd��d��d|d<|�tjd��d��dD]�}|�|���5||d<|�tjd��d��|�tjd��d��|�tjd	��d
��ddd��n#1swxYwY��	ddd��dS#1swxYwYdS)Nz/home/victor�HOME�~z
/home/victor/)rIr5�//�///)�homerI�~/z~/foor<)r�EnvironmentVarGuardrCrDr�r#)r$�envr�s   r�test_expanduser_home_envvarz)PosixPathTest.test_expanduser_home_envvars���
�
*�
,�
,�
	L��(�C��K����Y�1�#�6�6��G�G�G�*�C��K����Y�1�#�6�6��G�G�G�,�
L�
L���\�\�t�\�,�,�L�L�"&�C��K��$�$�Y�%9�#�%>�%>��D�D�D��$�$�Y�%9�$�%?�%?��E�E�E��$�$�Y�%9�'�%B�%B�F�K�K�K�	L�L�L�L�L�L�L�L�L�L�L����L�L�L�L��
L�
	L�
	L�
	L�
	L�
	L�
	L�
	L�
	L�
	L�
	L�
	L�
	L����
	L�
	L�
	L�
	L�
	L�
	Ls7�A5D-�	A>D�D-�D�D-�D�D-�-D1�4D1�vxworkszno home directory on VxWorksc	��tjd��}|�tjd��t
��|�tjd��t��tjd��dkrz|�tjd��dztjd����|�tjd��dztjd����|�tjd��t
��|�tjd	��t
��|�tjd
��t��|�tjd��t��tj	��5}|d=|�
tj����j
}|�d��pd}|�tjd��|��tj�|d
t$���5tj�|dt$���5dD]*}|�tj|��|���+	ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)N�pwdr�s~/r�rI�~rPz~root/z~foo/s~root/s~foo/r��getpwuid)�side_effect�getpwnam)r�z~/.localz
~vstinner/)r�
import_module�assertIsInstancerDr��strr[rCrr�r�r�getuid�pw_dir�rstripr�patch�object�KeyError)r$r�r�r�r\s     r�test_expanduser_pwdz!PosixPathTest.test_expanduser_pwd!s����)�%�0�0�����i�2�4�8�8�#�>�>�>����i�2�5�9�9�5�A�A�A����$�$��+�+�����$�S�)�)�C�/��$�T�*�*�
�
�
�
����$�T�*�*�T�1��$�U�+�+�
�
�
�	
���i�2�8�<�<�c�B�B�B����i�2�7�;�;�S�A�A�A����i�2�9�=�=�u�E�E�E����i�2�8�<�<�e�D�D�D�
�
*�
,�
,�	G���F���<�<��	���,�,�3�D��;�;�s�#�#�*�s�D����Y�1�#�6�6��=�=�=���"�"�3�
��"�I�I�
G�
G���"�"�3�
��"�I�I�
G�
G�;�G�G�D��$�$�Y�%9�$�%?�%?��F�F�F�F�G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs[�BK/�(K�.K�4K�K�K�K�K�K/�K	�K/�K	�K/�/K3�6K3)0)r5rb)rIrI)z/.rI)z/./rI)z/.//.rI)r<r<)rHrH)r�r�)r�rI)z///foo/.//bar//rH)z///foo/.//bar//.//..//.//baz///z/foo/baz)z///..//./foo/.//barrH)rbrb)z.//.rb)rcrc)�../rc)�../foor�)�	../../foor�)z
../foo/../barz../bar)z../../foo/../bar/./baz/boom/..�
../../bar/baz�z/..rIr�)z/../rI)z/..//rI)z//.r�)z//..r�)�//...r�)z//../foorN)z//../../foorN)�/../foor<)z
/../../foor<)z/../foo/../rI)z/../foo/../barr>)z/../../foo/../bar/./baz/boom/..r@)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/..rI)z
/foo/../..rI)z//foo/..r�)z//foo/../..r�)z	///foo/..rI)z///foo/../..rI)z
////foo/..rI)z/////foo/..rIc���|jD]�\}}|�|��5tj|��}|�||��ddd��n#1swxYwY|�d��}|�d��}|�|t���5tj|��}|�||��ddd��n#1swxYwY��dS)Nzutf-8)�type)�NORMPATH_CASESr#rD�normpathrC�encoder[)r$r\�expected�results    r�
test_normpathzPosixPathTest.test_normpath}se��"�1�		3�		3�N�D�(����d�#�#�
3�
3�"�+�D�1�1��� � ���2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��;�;�w�'�'�D����w�/�/�H����d���/�/�
3�
3�"�+�D�1�1��� � ���2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��		3�		3s#�+A�A	� A	�*+C!�!C%	�(C%	�strictTc��|�tdi|��tj����|�td	i|��tj����|�td�dgdz��fi|��tj����|�td
i|��tj����|�tdi|��tj����|�td�dgdz��fi|��tj����dS)Nrb�./.rI�d�.�./.rP)rb)r�)r�)r�)rCrr�getcwdrE�getcwdb�r$r&s  r�test_realpath_curdirz"PosixPathTest.test_realpath_curdir�s.��	
����0�0��0�0�"�)�+�+�>�>�>�����2�2�6�2�2�B�I�K�K�@�@�@�����#�(�(�C�5�3�;�"7�"7�B�B�6�B�B�B�I�K�K�P�P�P�����1�1�&�1�1�2�:�<�<�@�@�@�����3�3�F�3�3�R�Z�\�\�B�B�B�����$�)�)�T�F�S�L�"9�"9�D�D�V�D�D�b�j�l�l�S�S�S�S�Src	�
�|�tdi|��ttj������|�td	i|��tttj��������|�td�dgdz��fi|��d��|�td
i|��ttj������|�tdi|��tttj��������|�td�dgdz��fi|��d��dS)Nrc�../..rIr��..�../..rP)rc)r�)r�)r�)rCrrrr�rEr�r�s  r�test_realpath_pardirz"PosixPathTest.test_realpath_pardir�sR��	
����1�1�&�1�1�7�2�9�;�;�3G�3G�H�H�H�����4�4�V�4�4�g�g�b�i�k�k�>R�>R�6S�6S�T�T�T�����#�(�(�D�6�C�<�"8�"8�C�C�F�C�C�S�I�I�I�����2�2�6�2�2�G�B�J�L�L�4I�4I�J�J�J�����5�5�f�5�5�w�w�r�z�|�|�?T�?T�7U�7U�V�V�V�����$�)�)�U�G�c�M�":�":�E�E�f�E�E�t�L�L�L�L�Lrc��	tjtdzt��|�t	tfi|��tdz��tjt��dS#tjt��wxYw�Nr6)rrwrrCrrr8r�s  r�test_realpath_basicz!PosixPathTest.test_realpath_basic�su��
	%��J�v�c�z�6�*�*�*����X�f�7�7��7�7����D�D�D���V�$�$�$�$�$��I��V�$�$�$�$���s�AA-�-Bc�`�	tjtdzt��|�tt
td���|�tt
tdzd���t
jt��dS#t
jt��wxYw)Nr6T�r�r7)rrwr�assertRaises�FileNotFoundErrorrrr8r2s r�test_realpath_strictz"PosixPathTest.test_realpath_strict�s���
	%��J�v�c�z�6�*�*�*����/��6�$��O�O�O����/��6�C�<�PT��U�U�U���V�$�$�$�$�$��I��V�$�$�$�$���s�A5B�B-c��d}|�tt|d���|�tt|d���|�tt|t���d}|�tt|d���|�tt|d���|�tt|t���d}|�tt|d���|�tt|d���|�tt|t���d}|�tt|d���|�tt|d���|�tt|t���d}|�tt|d���|�tt|d���|�tt|t���d	}|�tt|d���|�tt|d���|�tt|t���d
}|�tt|d���|�tt|d���|�tt|t���d}|�tt|d���|�tt|d���|�tt|t���d}t
jd
krs|�t|d���|��|�tt|d���|�t|t���|��nn|�tt|d���|�tt|d���|�tt|t���d}t
jd
krP|�t|d���|��|�t|t���|��nK|�tt|d���|�tt|t���|�tt|d���d}t
jd
krs|�t|d���d��|�tt|d���|�t|t���d��nn|�tt|d���|�tt|d���|�tt|t���d}t
jd
krP|�t|d���d��|�t|t���d��nK|�tt|d���|�tt|t���|�tt|d���d}t
jd
kro|�tt|d���|�tt|d���|�tt|t���n�|�t|d���|��tjrL|�tt|d���|�tt|t���nM|�tt|d���|�t|t���|��d}t
jd
krL|�tt|d���|�tt|t���n%|�t|d���|��tjrM|�tt|d���|�tt|t���dS|�tt|d���dS)Nr�Fr�Tr�z/nonexistent/xs/nonexistent/xz//..s//..z/nonexistent/x/..s/nonexistent/x/..r��win32u/nonexistent/�u/�/..rIu/nonexistent/�/..z/nonexistentr�s/nonexistent/�)
r��
ValueErrorrrr��sys�platformrC�UnicodeEncodeError�UnicodeDecodeErrorr	�is_wasir)r$r\s  r�test_realpath_invalid_pathsz)PosixPathTest.test_realpath_invalid_paths�s��������*�h��U��C�C�C����*�h��T��B�B�B����*�h��]��K�K�K������*�h��U��C�C�C����*�h��T��B�B�B����*�h��]��K�K�K�#�����*�h��U��C�C�C����+�X�t�D��I�I�I����*�h��]��K�K�K�$�����*�h��U��C�C�C����+�X�t�D��I�I�I����*�h��]��K�K�K������*�h��U��C�C�C����*�h��T��B�B�B����*�h��]��K�K�K������*�h��U��C�C�C����*�h��T��B�B�B����*�h��]��K�K�K�&�����*�h��U��C�C�C����+�X�t�D��I�I�I����*�h��]��K�K�K�'�����*�h��U��C�C�C����+�X�t�D��I�I�I����*�h��]��K�K�K����<�7�"�"����X�d�5�9�9�9�4�@�@�@����/��4���M�M�M����X�d�=�A�A�A�4�H�H�H�H����0�(�D���O�O�O����0�(�D���N�N�N����0�(�D���W�W�W�$���<�7�"�"����X�d�5�9�9�9�4�@�@�@����X�d�=�A�A�A�4�H�H�H�H����0�(�D���O�O�O����0�(�D���W�W�W����+�X�t�D��I�I�I����<�7�"�"����X�d�5�9�9�9�3�?�?�?����/��4���M�M�M����X�d�=�A�A�A�3�G�G�G�G����0�(�D���O�O�O����0�(�D���N�N�N����0�(�D���W�W�W�'���<�7�"�"����X�d�5�9�9�9�>�J�J�J����X�d�=�A�A�A�>�R�R�R�R����0�(�D���O�O�O����0�(�D���W�W�W����+�X�t�D��I�I�I����<�7�"�"����0�(�D���O�O�O����0�(�D���N�N�N����0�(�D���W�W�W�W����X�d�5�9�9�9�4�@�@�@���
M��!�!�'�8�T�$�!�G�G�G��!�!�'�8�T�-�!�P�P�P�P��!�!�"3�X�t�D�!�Q�Q�Q�� � ��$�}�!E�!E�!E�t�L�L�L�#���<�7�"�"����0�(�D���O�O�O����0�(�D���W�W�W�W����X�d�5�9�9�9�4�@�@�@��?�	N����g�x��d��C�C�C����g�x��m��L�L�L�L�L����/��4���M�M�M�M�Mrc�:�	tjtjtdz��t��|�t
tfi|��tdz��tjt��dS#tjt��wxYwr�)	rrwrD�relpathrrCrrr8r�s  r�test_realpath_relativez$PosixPathTest.test_realpath_relatives���	%��J�y�(����4�4�f�=�=�=����X�f�7�7��7�7����D�D�D���V�$�$�$�$�$��I��V�$�$�$�$���s�A"A?�?Bc�N�	tjtjdztj��|�tdtjzfi|��tdz��tjtj��dS#tjtj��wxYw)Nr6znonexistent/../)rrwrr9rCrrr8r�s  r�test_realpath_missing_pardirz*PosixPathTest.test_realpath_missing_pardirs���	/��J�y�'�#�-�y�/?�@�@�@�����*�Y�-=�=�H�H��H�H�&�SV�,�
X�
X�
X�
��Y�-�.�.�.�.�.��I��Y�-�.�.�.�.���s�A"B� B$c�H
�	tjtt��|�t	t��t��tjtdztdz��tjtdztdz��|�t	tdz��tdz��|�t	tdz��tdz��|�t	tdz��tdz��|�t	tdz��tt����|�t	tdz��tt��dz��tjtdztdz��|�t	td	zt
t��zdz��tdz��|�t	td	zt
t��zdz��tdz��tjt
t��d
ztdz��|�t	tdz��td
z��tjdt
tt����zd
zt
t��zdztdz��|�t	tdz��tdz��tjtt����5|�t	t
t����t��ddd��n#1swxYwYtj	t��tj	tdz��tj	tdz��tj	tdz��tj	tdz��tj	tdz��dS#tj	t��tj	tdz��tj	tdz��tj	tdz��tj	tdz��tj	tdz��wxYw)Nr6r7�1/x�1/..�1/../x�/x�x�y�1/../�a/b�ar�rI�c)
rrwrrCrrrr�
change_cwdr8r2s r�test_realpath_symlink_loopsz)PosixPathTest.test_realpath_symlink_loops*s2��
"	)��J�v�v�&�&�&����X�f�-�-�v�6�6�6��J�v�c�z�6�#�:�.�.�.��J�v�c�z�6�#�:�.�.�.����X�f�S�j�1�1�6�#�:�>�>�>����X�f�S�j�1�1�6�#�:�>�>�>����X�f�U�l�3�3�V�E�\�B�B�B����X�f�V�m�4�4�g�f�o�o�F�F�F����X�f�X�o�6�6�����$�8N�O�O�O��J�v�c�z�6�#�:�.�.�.����X�f�W�n�x��7G�7G�&G�#�&M�N�N�#�c�\�
+�
+�
+����X�f�W�n�x��7G�7G�&G�#�&M�N�N�#�c�\�
+�
+�
+�
�J�x��'�'�%�/����<�<�<����X�f�S�j�1�1�6�%�<�@�@�@��J�u�x�����8�8�8�3�>���'�'�(�*-�.�/5�c�z�
;�
;�
;����X�f�S�j�1�1�6�#�:�>�>�>��%�g�f�o�o�6�6�
E�
E�� � ��(�6�*:�*:�!;�!;�V�D�D�D�
E�
E�
E�
E�
E�
E�
E�
E�
E�
E�
E����
E�
E�
E�
E�
��V�$�$�$���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(�(�(��
��V�$�$�$���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(�(���s1�M?Q:�;O�<Q:�O�Q:�O�Q:�:B'T!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|��tj	tt����5|jtt
t
t��fi|��ddd��n#1swxYwYtj
t��tj
tdz��tj
tdz��tj
tdz��tj
td
z��tj
td
z��dS#tj
t��tj
tdz��tj
tdz��tj
tdz��tj
td
z��tj
td
z��wxYw)Nr6r7r�r�r�r�r�r�r�r�r�rIr�)rrwrr�rrrrrr�r8r�s  r�"test_realpath_symlink_loops_strictz0PosixPathTest.test_realpath_symlink_loops_strictSs$��"	)��J�v�v�&�&�&��D��g�x��B�B�6�B�B�B��J�v�c�z�6�#�:�.�.�.��J�v�c�z�6�#�:�.�.�.��D��g�x����F�F�v�F�F�F��D��g�x����F�F�v�F�F�F��D��g�x����H�H��H�H�H��D��g�x����I�I�&�I�I�I��D��g�x����K�K�F�K�K�K��J�v�c�z�6�#�:�.�.�.��D��g�x�$�W�n�x��/?�/?�?�#�E�
Q�
Q�IO�
Q�
Q�
Q��D��g�x�$�W�n�x��/?�/?�?�#�E�
Q�
Q�IO�
Q�
Q�
Q�
�J�x��'�'�%�/����<�<�<��D��g�x����F�F�v�F�F�F��J�u�x�����8�8�8�3�>���'�'�(�*-�.�/5�c�z�
;�
;�
;��D��g�x����F�F�v�F�F�F��%�g�f�o�o�6�6�
Q�
Q�!��!�'�8�X�f�5E�5E�P�P��P�P�P�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q����
Q�
Q�
Q�
Q�
��V�$�$�$���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(�(�(��
��V�$�$�$���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(���V�C�Z�(�(�(�(���s1�KN.�-K<�0N.�<L�N.�L�N.�.B'Qc�n�	tjt��tjdt	t��ztdz��tjdtdz��|�t
tdzfi|��t��tjtdz��tjtdz��tt��dS#tjtdz��tjtdz��tt��wxYw)Nr�z/selfzself/self/selfz/link)
rr�rrwrrCrrr8rr�s  r�(test_realpath_repeated_indirect_symlinksz6PosixPathTest.test_realpath_repeated_indirect_symlinks}s��
	��H�V�����J�u�x��/�/�/��'�1A�B�B�B��J�'��'�)9�:�:�:����X�f�w�&6�A�A�&�A�A�6�J�J�J���V�g�-�.�.�.���V�g�-�.�.�.��v�������
��V�g�-�.�.�.���V�g�-�.�.�.��v�������s
�BC&�&AD4c�Z�d}	tjt��t|��D]?}tjd�d|zgdz��td|dzzz���@tjdtdz��|�ttd|zzfi|��t��tj	t��5|�td|z��t��ddd��n#1swxYwYt|dz��D]!}tj
td|zz���"tt��dS#t|dz��D]!}tj
td|zz���"tt��wxYw)N�
rIz%dz/%dr�rbz/0)rr�r�rangerwrErCrrr�r8r)r$r&�depth�is    r�test_realpath_deep_recursionz*PosixPathTest.test_realpath_deep_recursion�s�����
	��H�V�����5�\�\�
P�
P���
�3�8�8�T�A�X�J��O�4�4�f�u��A���6N�O�O�O�O��J�s�F�T�M�*�*�*����X�f�u�u�}�&<�G�G��G�G��P�P�P��%�f�-�-�
A�
A�� � ��$��,�!7�!7��@�@�@�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A��5�1�9�%�%�
5�
5��� ��%�!�)�!3�4�4�4�4��v��������5�1�9�%�%�
5�
5��� ��%�!�)�!3�4�4�4�4��v�������s1�CE �,D�?E �D�E �D�E � A
F*c��	tjt��tjtdz��tjtdztdz��t	jtdz��5|�tdi|��tdz��ddd��n#1swxYwYt	jtdz��ttdz��tt��dS#t	jtdz��ttdz��tt��wxYw)Nz/y�/kr�z/y/a)r�)
rr�rrwrr�rCrr8rr�s  r�test_realpath_resolve_parentsz+PosixPathTest.test_realpath_resolve_parents�sY��	��H�V�����H�V�d�]�#�#�#��J�v��}�f�t�m�4�4�4��%�f�t�m�4�4�
5�
5�� � ��!8�!8��!8�!8�$*�V�O�5�5�5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�
��V�d�]�+�+�+��v��}�%�%�%��v�������
��V�d�]�+�+�+��v��}�%�%�%��v�������s1�A6D�8)B-�!D�-B1�1D�4B1�5D�A	E
c���	tjt��tjtdz��tjtdz��tjtdztdz��|�ttdzfi|��tdz��t
jtt����5|�ttt��dzfi|��tdz��ddd��n#1swxYwYt
j
tdz��ttdz��ttdz��tt��dS#t
j
tdz��ttdz��ttdz��tt��wxYw)Nrz/k/yz/link-yz
/link-y/..)rr�rrwrCrrr�rrr8rr�s  r�(test_realpath_resolve_before_normalizingz6PosixPathTest.test_realpath_resolve_before_normalizing�s���	��H�V�����H�V�d�]�#�#�#��H�V�f�_�%�%�%��J�v�����(:�;�;�;�
���X�f�|�&;�F�F�v�F�F��QU�
�V�V�V��%�g�f�o�o�6�6�
0�
0�� � ��(�6�*:�*:�\�*I�!T�!T�V�!T�!T�!'�$��0�0�0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0�
��V�i�/�0�0�0��v���'�'�'��v��}�%�%�%��v�������
��V�i�/�0�0�0��v���'�'�'��v��}�%�%�%��v�������s1�C
F�?D�F�D�F�!D�"F�A G%c�*�	tjt��tjtdz��tjttdz��t	jt
t����5tt��}|�t|dzfi|��t��|�t|dzfi|��tdz��ddd��n#1swxYwYt	j
tdz��ttdz��tt��dS#t	j
tdz��ttdz��tt��wxYw)Nr�linkzlink/k)rr�rrwrr�rrrCrr8r)r$r&�bases   r�test_realpath_resolve_firstz)PosixPathTest.test_realpath_resolve_first�s���	��H�V�����H�V�d�]�#�#�#��J�v�v���/�/�/��%�g�f�o�o�6�6�
U�
U���'�'��� � ��$��-�!B�!B�6�!B�!B�F�K�K�K�� � ��$��/�!D�!D�V�!D�!D�f�t�m�T�T�T�
U�
U�
U�
U�
U�
U�
U�
U�
U�
U�
U����
U�
U�
U�
U�

��V�f�_�-�-�-��v��}�%�%�%��v�������
��V�f�_�-�-�-��v��}�%�%�%��v�������s2�A=E	�?A*C5�)E	�5C9�9E	�<C9�=E	�	A	FzCan't set symlink permissions�darwinz1only macOS requires read permission to readlink()c��	tjtdzt��tjtdd���|�t
��5t
tfi|��ddd��n#1swxYwY|�t
��5t
tdzfi|��fddd��n#1swxYwY|�t
��5t
tdzfi|��ddd��n#1swxYwY|�t
��5t
tdzfi|��ddd��n#1swxYwYtjtdd���tjt��dS#tjtdd���tjt��wxYw)	Nr6rF)�follow_symlinksr<r�r���)rrwr�chmodr��PermissionErrorrr8r�s  r�'test_realpath_unreadable_symlink_strictz5PosixPathTest.test_realpath_unreadable_symlink_strict�s���
	��J�v�c�z�6�*�*�*��H�V�U�E�:�:�:�:��"�"�?�3�3�
+�
+���*�*�6�*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��"�"�?�3�3�
5�
5���&��3�3�F�3�3�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5��"�"�?�3�3�
7�
7���)�+�6�6�v�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��"�"�?�3�3�
7�
7���)�+�6�6�v�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7�
�H�V�U�E�:�:�:�:��I�f�������
�H�V�U�E�:�:�:�:��I�f�������s��AF�A9�-F�9A=�=F�A=�F�C�5F�C�F�C�	F�&D�<F�D�F�D�F�-E�F�E�F�E�F�7Gc��	tjt��tjtdz��tjtd��|�ttd���t��|�ttd���t��|�ttt���t��	tjt��|�d��n#t$rYnwxYw|�ttdzd���tdz��|�
tt
tdzd���|�
tt
tdzt���|�ttdzd���tdz��|�
tt
tdzd���|�
tt
tdzt���tjtd��ttdz��tt��dS#tjtd��ttdz��tt��wxYw)	NrrFr�TzCannot block permissionsz/missingr)rr�rrrCrr�stat�skipTestrr�rr2s r�"test_realpath_unreadable_directoryz0PosixPathTest.test_realpath_unreadable_directory�s{��	��H�V�����H�V�d�]�#�#�#��H�V�U�#�#�#����X�f�U�;�;�;�V�D�D�D����X�f�T�:�:�:�F�C�C�C����X�f�]�C�C�C�V�L�L�L�
:��������
�
�8�9�9�9�9��#�
�
�
���
����

���X�f�t�m�E�B�B�B�#�d�]�
,�
,�
,����o�x��$��%)�
�
+�
+�
+����o�x��$��%2�
�
4�
4�
4�
���X�f�z�&9�%�H�H�H�#�j�0�
2�
2�
2����o�x��*�9L�%)�
�
+�
+�
+����o�x��*�9L�%2�
�
4�
4�
4�
�H�V�U�#�#�#��v��}�%�%�%��v�������
�H�V�U�#�#�#��v��}�%�%�%��v�������s2�C!J
�$D�=J
�
D �J
�D � D#J
�
AKc���tjd�c}t_	tj�tj����d}|�t
tjd��|�t
jd��d��|�t
jt
j	d����d��|�t
jd��d��|�t
jd��d��|�t
jdd��d|zd	z��|�t
jdd
��d|zdz��|�t
jdd��d
��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jd	d	��d��|�t
jdd��d��|t_dS#|t_wxYw)Nc��dS)Nz/home/user/barr+r+rr�<lambda>z,PosixPathTest.test_relpath.<locals>.<lambda> s��7H�r���r5r�r�z../a/bz../br�z/az../cz/a/bzb/cz../../arbz/foo/bar/batz/x/y/zz../../../foo/bar/batrH�batrIzfoo/bar/batz../../..r�z../foo/bar/batz
../../../x)
rr�r\rVr�r�rDr�rCr)r$�real_getcwd�curdirs   r�test_relpathzPosixPathTest.test_relpaths���$&�I�/H�/H� ��b�i�	$��W�]�]�2�9�;�;�/�/��3�F����j�)�*;�R�@�@�@����Y�.�s�3�3�S�9�9�9����Y�.�y�/@��/E�/E�F�F��L�L�L����Y�.�u�5�5�u�=�=�=����Y�.�x�8�8�(�C�C�C����Y�.�s�F�;�;�U�6�\�$�=N�O�O�O����Y�.�u�f�=�=�"�6�\�&�0�
2�
2�
2����Y�.�s�E�:�:�I�F�F�F����Y�.�s�C�8�8�#�>�>�>����Y�.�~�x�H�H�J`�a�a�a����Y�.�~�z�J�J�E�R�R�R����Y�.�~�s�C�C�]�S�S�S����Y�.�s�N�C�C�Z�P�P�P����Y�.�~�t�D�D�FV�W�W�W����Y�.�t�^�D�D�l�S�S�S����Y�.�s�C�8�8�#�>�>�>����Y�.�t�T�:�:�C�@�@�@����Y�.�v�v�>�>��D�D�D�#�B�I�I�I���B�I�#�#�#�#s�L/M�M'c�p�tjd�c}t_	tj�tj����d}|�t
tjd��|�t
jd��d��|�t
jt
j	d����d��|�t
jd��d��|�t
jd��d��|�t
jdd��d|zd	z��|�t
jdd
��d|zdz��|�t
jdd��d
��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jdd��d��|�t
jd	d	��d��|�t
jdd��d��|�ttjdd��|�ttjdd��|t_dS#|t_wxYw)Nc��dS)Ns/home/user/barr+r+rrrz2PosixPathTest.test_relpath_bytes.<locals>.<lambda>:s��:L�rrr�asa/bs../a/bs../bs../s/as../cs/a/bsb/cs../../ar�s/foo/bar/bats/x/y/zs../../../foo/bar/batrOsbatrPsfoo/bar/bats../../..s/xs../foo/bar/bats
../../../xsbytesr�)rr�r\rVr�r�rDr�rCr�	TypeError)r$�real_getcwdbr s   r�test_relpath_bytesz PosixPathTest.test_relpath_bytes9s$��&(�j�2L�2L�"��r�z�	&��W�]�]�2�:�<�<�0�0��4�F����j�)�*;�S�A�A�A����Y�.�t�4�4�d�;�;�;����Y�.�y�/@��/F�/F�G�G��N�N�N����Y�.�v�6�6��?�?�?����Y�.�y�9�9�9�E�E�E����Y�.�t�W�=�=�#�F�]�5�0�
2�
2�
2����Y�.�v�w�?�?�#�F�]�7�2�
4�
4�
4����Y�.�t�V�<�<�j�I�I�I����Y�.�t�T�:�:�D�A�A�A����Y�.��	�J�J�Lc�d�d�d����Y�.���L�L�f�U�U�U����Y�.���E�E�~�V�V�V����Y�.�t�_�E�E�{�S�S�S����Y�.���F�F�HY�Z�Z�Z����Y�.�u�o�F�F�
�V�V�V����Y�.�t�T�:�:�D�A�A�A����Y�.�u�e�<�<�d�C�C�C����Y�.�w��@�@�$�G�G�G����i��):�H�e�L�L�L����i��):�E�8�L�L�L�%�B�J�J�J���B�J�%�%�%�%s�M=N'�'N5c����fd�}�fd�}��ttjg��|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����ttjd dg����ttjd d!g����ttjd"dg����ttjd
d#g����ttjd
d$g����ttjd%d#g��dS)&Nc������tj|��|����tjd�|D����tj|����dS)Nc�6�g|]}tj|����Sr+�rrz��.0�ps  r�
<listcomp>z@PosixPathTest.test_commonpath.<locals>.check.<locals>.<listcomp>Zs ��2Q�2Q�2Q�a�2�;�q�>�>�2Q�2Q�2Qr)rCrD�
commonpathrrz)�pathsr�r$s  �r�checkz,PosixPathTest.test_commonpath.<locals>.checkXso������Y�1�%�8�8�(�C�C�C����Y�1�2Q�2Q�5�2Q�2Q�2Q�R�R��[��2�2�
4�
4�
4�
4�
4rc�����|tj|����|tjd�|D����dS)Nc�6�g|]}tj|����Sr+r+r,s  rr/zFPosixPathTest.test_commonpath.<locals>.check_error.<locals>.<listcomp>_s ��=�=�=�!�r�{�1�~�~�=�=�=r)r�rDr0)�excr1r$s  �r�check_errorz2PosixPathTest.test_commonpath.<locals>.check_error\sX������c�9�#7��?�?�?����c�9�#7�=�=�u�=�=�=�
?�
?�
?�
?�
?rz/usr�usrz
/usr/localz/usr/local/z/usr//localz//usr/localz/usr/./localz/./usr/localrIz/devz	/usr/lib/z/usr/lib/python3z/usr/libz/usr/lib64/z
/usr/lib64�spam�alotr5�and/jam�and/spam�andzand//jamz
and/spam//z	and/./jamz
./and/spam)r:r;r9)r:r;r<z	spam/alotz
/spam/alots	/usr/lib/zusr/lib/python3susr/lib/s/usr/lib/python3susr/lib/python3zusr/lib/)r�r�rDr0r%)r$r2r6s`  r�test_commonpathzPosixPathTest.test_commonpathWs����	4�	4�	4�	4�	4�	?�	?�	?�	?�	?�
	
���*�i�&:�B�?�?�?���J����0�0�0���J����0�0�0�
��|�n�l�+�+�+�
��|�\�*�L�9�9�9�
��}�l�+�\�:�:�:�
��}�m�,�l�;�;�;�
��}�m�,�l�;�;�;�
��~�~�.��=�=�=�
��s�F�m�S�!�!�!�
��v�v���$�$�$�
��{�.�/��<�<�<�
��{�M�*�F�3�3�3�
��z�<�(�&�1�1�1�
��{�L�)�6�2�2�2�
��v�h�����
��v�v���'�'�'�
��v�v���#�#�#�
��y�*�%�u�-�-�-�
��z�<�(�%�0�0�0�
��{�L�)�5�1�1�1�
��-�-�-�r�2�2�2�
��,�,�,�e�4�4�4�
��r�d�B����
��r�;���$�$�$���J��\� 2�3�3�3����)�Y�%9�'�);�<�	>�	>�	>����)�Y�%9�'�):�;�	=�	=�	=����)�Y�%9�&�(:�;�	=�	=�	=����)�Y�%9�&�(;�<�	>�	>�	>����)�Y�%9�&�(:�;�	=�	=�	=����)�Y�%9�%�':�;�	=�	=�	=�	=�	=r)7�__name__�
__module__�__qualname__r3r1rFrWr_rdrhrjrlr|rr�r�skip_unless_symlinkr�r�skipIfr�r�r�r�r�r�r�r�r�r�rr-rr�r�r�r�r�r�r�r�r�r�rrr
rrr�supports_follow_symlinksrrr!r'r=r+rrr/r/=sJ���������2�2�2�
+�+�+�M�M�M�7�7�7�8&�&�&�:�:�:�D�D�D�E�E�E�X�X�X�*?�?�?�:�:�:��"���#�"���X�_�U�d�]�$@�A�A�"�"�B�A�"�"�X�_�U�d�]�$@�A�A�"�"�B�A�"�*?�?�?�L�L�L� �X�_�S�\�Y�.�3�5�5�%G�%G�5�5�%G�N1�1�1�N�f
3�
3�
3�'��]�2��$�'�(�M�)B�C�C�T�T�D�C�'�&�T�'��]�2��$�'�(�M�)B�C�C�M�M�D�C�'�&�M��"�&��]�2��-�0�1�1�%�%�2�1�'�&�#�"�%��"�&�%�%�'�&�#�"�%�]N�]N�]N�~�"�&��]�2��-�0�1�1�%�%�2�1�'�&�#�"�%��"�&��]�2��-�0�1�1�/�/�2�1�'�&�#�"�/��"�&�%)�%)�'�&�#�"�%)�N�"�&��]�H�d�#�h�
�%>�?�?�%)�%)�@�?�'�&�#�"�%)�N�"�&��]�2��$�'�(�M�)B�C�C�
�
�D�C�'�&�#�"�
��"�&��]�2��$�'�(�M�)B�C�C���D�C�'�&�#�"��"�"�&��]�2��-�0�1�1���2�1�'�&�#�"��$�"�&��]�2��$�'�(�M�)B�C�C���D�C�'�&�#�"��4�"�&��]�2��$�'�(�M�)B�C�C���D�C�'�&�#�"��"�"�&��X�_�R�X�R�%@�@�Ba�b�b��X�_�S�\�X�-�/b�c�c��]�H�d�#�h�
�%>�?�?���@�?�d�c�c�b�'�&�#�"�
� '��"� � �#�"�'�&� �D$�$�$�4&�&�&�<4=�4=�4=�4=�4=rr/c��eZdZeZgd�ZdS)�PosixCommonTest)r��samefile�sameopenfile�samestatN)r>r?r@rD�
pathmodule�
attributesr+rrrErE�s�������J�D�D�D�J�J�JrrEc��eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zeiddidei��d���Zd�Zd�ZdS)�
PathLikeTestsc�6�tj|_ttj��|_|�tj|j��t|jdd��5}|�d��ddd��dS#1swxYwYdS)N�xbrstest_posixpath.PathLikeTests)	rr9�	file_namer
�	file_path�
addCleanupr8rtru)r$�files  rr3zPathLikeTests.setUp�s���"�)���!�)�"2�3�3������	�(�$�.�9�9�9�
�$�.�$��
*�
*�	8�d��J�J�6�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�+B�B�Bc�j�|�||j��||j����dSr)rCrPrO)r$r(s  r�assertPathEqualzPathLikeTests.assertPathEqual�s6�������d�n�-�-�t�t�D�N�/C�/C�D�D�D�D�Drc�D�|�|jj��dSr)rTr\�normcaser2s r�test_path_normcasez PathLikeTests.test_path_normcase��!�����T�Y�/�0�0�0�0�0rc�D�|�|jj��dSr)rTr\rgr2s r�test_path_isabszPathLikeTests.test_path_isabs�� �����T�Y�_�-�-�-�-�-rc��|�|j�dtd��d��|j�ddd����dS)Nr��br�)rCr\rEr
r2s r�test_path_joinzPathLikeTests.test_path_join�sS����������X�c�]�]�C�@�@������S�#�6�6�	8�	8�	8�	8�	8rc�D�|�|jj��dSr)rTr\rVr2s r�test_path_splitzPathLikeTests.test_path_split�r[rc�D�|�|jj��dSr)rTr\rZr2s r�test_path_splitextz PathLikeTests.test_path_splitext�rXrc�D�|�|jj��dSr)rTr\�
splitdriver2s r�test_path_splitdrivez"PathLikeTests.test_path_splitdrive��!�����T�Y�1�2�2�2�2�2rc�D�|�|jj��dSr)rTr\rr2s r�test_path_basenamez PathLikeTests.test_path_basename�rXrc�D�|�|jj��dSr)rTr\rr2s r�test_path_dirnamezPathLikeTests.test_path_dirname��!�����T�Y�.�/�/�/�/�/rc�D�|�|jj��dSr)rTr\rrr2s r�test_path_islinkzPathLikeTests.test_path_islink�s!�����T�Y�-�.�.�.�.�.rc�D�|�|jj��dSr)rTr\rsr2s r�test_path_lexistszPathLikeTests.test_path_lexists�rkrc�D�|�|jj��dSr)rTr\r~r2s r�test_path_ismountzPathLikeTests.test_path_ismount�rkrc�D�|�|jj��dSr)rTr\r�r2s r�test_path_expanduserz"PathLikeTests.test_path_expanduser�rfrc�D�|�|jj��dSr)rTr\�
expandvarsr2s r�test_path_expandvarsz"PathLikeTests.test_path_expandvars�rfrc�D�|�|jj��dSr)rTr\r�r2s r�test_path_normpathz PathLikeTests.test_path_normpath�rXrc�D�|�|jj��dSr)rTr\rr2s r�test_path_abspathzPathLikeTests.test_path_abspath�rkrr�Tc��|�|jj��|�t|jjfi|����dSr)rTr\rrr�s  r�test_path_realpathz PathLikeTests.test_path_realpath�sJ�����T�Y�/�0�0�0����W�T�Y�%7�B�B�6�B�B�C�C�C�C�Crc�D�|�|jj��dSr)rTr\r�r2s r�test_path_relpathzPathLikeTests.test_path_relpath�rkrc��|j�|j|jg��}|�||j��dSr)r\r0rPrOrC)r$�common_paths  r�test_path_commonpathz"PathLikeTests.test_path_commonpath�s>���i�*�*�D�N�D�N�+K�L�L������d�n�5�5�5�5�5rN)r>r?r@rDr\r3rTrWrZr^r`rbrerhrjrmrorqrsrvrxrzr-rr|r~r�r+rrrLrL�sq�������D�8�8�8�E�E�E�1�1�1�.�.�.�8�8�8�.�.�.�1�1�1�3�3�3�1�1�1�0�0�0�/�/�/�0�0�0�0�0�0�3�3�3�3�3�3�1�1�1�0�0�0��]�2��$�'�(�M�)B�C�C�D�D�D�C�D�
0�0�0�6�6�6�6�6rrL�__main__)"rrDr�r�	functoolsrrrrrrrr	r
�test.supportrr�test.support.os_helperr
rr��ImportErrorr9rrrr-�TestCaser/�
CommonTestrErLr>�mainr+rr�<module>r�s��	�	�	�	�����
�
�
�
�����������I�I�I�I�I�I�I�I�I�I�I�I�I�I�������!�!�!�!�!�!�&�&�&�&�&�&�"�"�"�"�"�"�+�+�+�+�+�+���������L�L�L�L�������E�E�E�����
���!�	"�	"��=�=�=�
�
�
�"�"�"�(N
=�N
=�N
=�N
=�N
=�H�%�N
=�N
=�N
=�bE�E�E�E�E�&�1�8�3D�E�E�E�
G6�G6�G6�G6�G6�H�%�G6�G6�G6�T�Z����H�M�O�O�O�O�O��s�
A�A�A