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_posixpath.cpython-312.opt-1.pyc

�

'Μg׋���ddlZddlZddlZddlZddlZddlmZmZmZmZddl	m
Z
ddlmZddlm
Z
mZddlmZddlmZ	ddlZeej(�Zd�Zd	�ZGd
�dej0�ZGd�d
e
j4ej0�ZGd�dej0�Zedk(rej<�yy#e$rdZY��wxYw)�N)�realpath�abspath�dirname�basename)�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   �0/usr/local/lib/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��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#d��Z$e#d ��Z%ej"e#d!���Z&ej"e#d"���Z'ej"e#d#���Z(ej"e#d$���Z)ej"e#d%���Z*ej"e#d&���Z+ej"e#d'���Z,ej"e#d(���Z-ej"e#d)���Z.ej"e#d*���Z/d+�Z0d,�Z1d-�Z2y).�
PosixPathTestc�$�|j�yr)�tearDown��selfs r�setUpzPosixPathTest.setUp*s���
�
�rc��dD]D}tjtj|z�ttj|z��Fy)N)��1�2)r
�unlink�TESTFNr)r#�suffixs  rr!zPosixPathTest.tearDown-s8��$�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�joinr"s r�	test_joinzPosixPathTest.test_join2s�����������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.�/)r:r&�foo)r&r;�////foo)�////r;�
//foo//bar)�//foor.�/foo/bar)r2r3�/)rAr�foo)rrB�////foo)�////rB�
//foo//bar)�//foor3)r4r5�splitr"s r�
test_splitzPosixPathTest.test_split@s���������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)Nr:zabc/zabc.def/z	/abc.def/r&�ASCIIrAsabc/sabc.def/s	/abc.def/r)r4r5�splitext�bytes)r#�path�filename�exts    r�splitextTestzPosixPathTest.splitextTestMs%������+�+�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.barr;z.barzfoo.boo.barzfoo.boozfoo.boo.biff.barzfoo.boo.biffz.csh.rcz.cshz.rc�nodotsr&z.cshrcz...manydotsz...manydots.extz.ext�.�..z........)rPr"s r�
test_splitextzPosixPathTest.test_splitextis������)�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)%Nr&)r&r&r&�a)r&r&rW�a/b)r&r&rX�a/b/)r&r&rY�/a)r&r:rW�/a/b)r&r:rXz/a/b/)r&r:rY�//a)r&�//rWz///a)r&r:r\z///a/b)r&r:z//a/b�c:/a/b)r&r&r^�\/a/b)r&r&r_�\a\b)r&r&r`r)rrr�a)rrra�/a)rrAra�//a)rs//ras///a)rrArc)r5�	splitrootr4�r#�fs  r�test_splitrootzPosixPathTest.test_splitrootws�����������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)
Nr&Fr:Tr-r9zfoo/barrrAr2r@sfoo/bar)�assertIsr5�isabsr"s 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)Nr9r.r:r&r;r<r>r@r3rArrBrCrE)r4r5rr"s 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)Nr9r-r:r;r&r<r=r>r?r@r2rArBrrCrDrErF)r4r5rr"s 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)Nr'Fr(�wbrBTu�����)rir5�islinkr
r*�lexists�open�write�can_symlinkr�symlink�remove�exists�fsencoderes  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)Nr:TrA)rir5�ismountrr"s 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)NFu/�s/�z/s/)rir5r�rr�mkdirrr"s 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)Nr:F)rrzrrir5r�r)r"s 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�rM�st_ino�st_devs   r�
fake_lstatz?PosixPathTest.test_ismount_different_device.<locals>.fake_lstat�sC���F��F��v�~������$�$�a����A�q�!�Q��1�%M�N�NrT�r�lstatrir5r�r�r#�
save_lstatr�s   r�test_ismount_different_devicez+PosixPathTest.test_ismount_different_device�sG���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_readable�sG���X�X�
�
	O�	"�!�B�H��M�M�)�+�+�F�3�T�:�!�B�H��z�B�H�r�c�T�|jtjt��yr)�assertFalser5�
isjunctionrr"s r�test_isjunctionzPosixPathTest.test_isjunctions������-�-�f�5�6r�win32zFast paths are not for win32c���|jtjjtj
u�|j
tjtjj��yr)	�
assertTruerrM�normpathr��_path_normpathr��inspect�
isfunctionr"s r�test_fast_paths_in_usez$PosixPathTest.test_fast_paths_in_usesH��
	
������(�(�E�,@�,@�@�A�����+�+�B�G�G�,<�,<�=�>rc��|jtjd�d�|jtjd�d�y)Nr;rB)r4r5�
expanduserr"s r�test_expanduserzPosixPathTest.test_expandusers8������-�-�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/)r:r&r]�///)�homer:�~/z~/foor-)r
�EnvironmentVarGuardr4r5r��subTest)r#�envr�s   r�test_expanduser_home_envvarz)PosixPathTest.test_expanduser_home_envvar!s���
�
*�
*�
,��(�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�r:�~rAz~root/z~foo/s~root/s~foo/r��getpwuid)�side_effect�getpwnam)r�z~/.localz
~vstinner/)r�
import_module�assertIsInstancer5r��strrLr4r
r�r�r�getuid�pw_dir�rstripr�patch�object�KeyError)r#r�r�r�rMs     r�test_expanduser_pwdz!PosixPathTest.test_expanduser_pwd1s���)�)�%�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�r:)�	all_entry�entryr�)
rr��getpwall�pw_namer�r�r�r�r4r5r�rr})r#r�r��namer�r�s      r�test_expanduser_pwd2z"PosixPathTest.test_expanduser_pwd2Zs����)�)�%�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)r&rS)r:r:)z/.r:)z/./r:)z/.//.r:)r-r-)r9r9)r]r])r�r:)z///foo/.//bar//r9)z///foo/.//bar//.//..//.//baz///z/foo/baz)z///..//./foo/.//barr9)rSrS)z.//.rS)rTrT)�../rT)�../foor�)�	../../foor�)z
../foo/../barz../bar)z../../foo/../bar/./baz/boom/..�
../../bar/baz�z/..r:r�)z/../r:)z/..//r:)z//.r])z//..r])�//...r�)z//../foor?)z//../../foor?)z/../foor-)z
/../../foor-)z/../foo/../r:)z/../foo/../barr/)z/../../foo/../bar/./baz/boom/..r1)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)z/foo/..r:)z
/foo/../..r:)z//foo/..r])z//foo/../..r])z	///foo/..r:)z///foo/../..r:)z
////foo/..r:)z/////foo/..r:c��|jD]�\}}|j|�5tj|�}|j	||�ddd�|jd�}|jd�}|j|t��5tj|�}|j	||�ddd���y#1swY�uxYw#1swY��xYw)Nzutf-8)�type)�NORMPATH_CASESr�r5r�r4�encoderL)r#rM�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	c�l�|jtd�tj��|jtd�tj��|jtdj	dgdz��tj��|jtd�tj
��|jtd�tj
��|jtdj	dgdz��tj
��y)NrSz./.r:�d�.s./.rA)r4rr�getcwdr6�getcwdbr"s r�test_realpath_curdirz"PosixPathTest.test_realpath_curdir�s�������#���	�	��4�����%��"�)�)�+�6�����#�(�(�C�5�3�;�"7�8�"�)�)�+�F�����$������6�����&�)�2�:�:�<�8�����$�)�)�T�F�S�L�"9�:�B�J�J�L�Irc	��|jtd�ttj���|jtd�tttj����|jtdjdgdz��d�|jtd�ttj���|jtd�tttj����|jtdjdgdz��d�y)NrTz../..r:r�s..s../..rA)r4rrrr�r6r�r"s r�test_realpath_pardirz"PosixPathTest.test_realpath_pardir�s�������$�������)=�>�����'�*�G�G�B�I�I�K�4H�,I�J�����#�(�(�D�6�C�<�"8�9�3�?�����%��'�"�*�*�,�*?�@�����(�+�W�W�R�Z�Z�\�5J�-K�L�����$�)�)�U�G�c�M�":�;�T�Brc��	tjtdzt�|jt	t�tdz�tjt�y#tjt�wxYw�Nr')rrzrr4rr
r)r"s r�test_realpath_basicz!PosixPathTest.test_realpath_basic�sO��	%��J�J�v�c�z�6�*����X�f�-�v�c�z�:����V�$��I���V�$�s�AA#�#A>c�@�	tjtdzt�|jtt
td��|jtt
tdzd��t
jt�y#t
jt�wxYw)Nr'T��strictr()rrzr�assertRaises�FileNotFoundErrorrr
r)r"s 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�(�	tjtjtdz�t�|jt
t�tdz�tjt�y#tjt�wxYwr�)	rrzr5�relpathrr4rr
r)r"s r�test_realpath_relativez$PosixPathTest.test_realpath_relative�sZ��	%��J�J�y�(�(����4�f�=����X�f�-�v�c�z�:����V�$��I���V�$�s�AA6�6Bc�	�	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)Nr'r(�1/x�1/..�1/../x�/x�x�y�1/../rXrWr�r:�c)
rrzrr4rrrr
�
change_cwdr)r"s r�test_realpath_symlink_loopsz)PosixPathTest.test_realpath_symlink_loops�s��
"	)��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
td��tjtdztdz�tjtdztdz�|jtt
tdzd��|jtt
tdzd��|jtt
tdzd��|jtt
tdzd��|jtt
tdzd��tjtdztd	z�|jtt
td
zt
t�zd	zd��|jtt
td
zt
t�zdzd��tjt
t�dztdz�|jtt
tdzd��tjd
t
tt��zdzt
t�zdztdz�|jtt
tdzd��tjtt��5|jtt
t
t�d��ddd�tjt�tjtdz�tjtdz�tjtd	z�tjtdz�tjtdz�y#1swY��xYw#tjt�tjtdz�tjtdz�tjtd	z�tjtdz�tjtdz�wxYw)NTr�r'r(r�r�r�r�r�r�rXrWr�r:r�)rrzrr�rrrrr
r�r)r"s r�"test_realpath_symlink_loops_strictz0PosixPathTest.test_realpath_symlink_loops_stricts���
"	)��J�J�v�v�&����g�x����E��J�J�v�c�z�6�#�:�.��J�J�v�c�z�6�#�:�.����g�x����D��I����g�x����D��I����g�x����d��K����g�x����t��L����g�x������N��J�J�v�c�z�6�#�:�.����g�x�$�W�n�x��/?�?�#�E�d�
�
T����g�x�$�W�n�x��/?�?�#�E�d�
�
T�
�J�J�x��'�%�/����<����g�x����D��I��J�J�u�x����8�8�3�>���'�(�*-�.�/5�c�z�
;����g�x����D��I��%�%�g�f�o�6��!�!�'�8�X�f�5E�d�!�S�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
tdz�t�tjtdz�tjtdz�tt�y#tjtdz�tjtdz�tt�wxYw)Nr�z/selfzself/self/selfz/link)
rr�rrzrr4rr
r)rr"s r�(test_realpath_repeated_indirect_symlinksz6PosixPathTest.test_realpath_repeated_indirect_symlinks0s���	��H�H�V���J�J�u�x��/�/��'�1A�B��J�J�'��'�)9�:����X�f�w�&6�7��@����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|zz�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�
r:z%dz/%dr�rSz/0)rr�r�rangerzr6r4rr
r�r)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�}�&<�=�v�F��%�%�f�-�� � ��$��,�!7��@�.��5�1�9�%��� � ��%�!�)�!3�4�&��v��.�-���5�1�9�%��� � ��%�!�)�!3�4�&��v��s%�CD>�#D2�(D>�2D;�7D>�>AFc�\�	tjt�tjtdz�tjtdztdz�t	j
tdz�5|j
td�tdz�ddd�t	jtdz�ttdz�tt�y#1swY�GxYw#t	jtdz�ttdz�tt�wxYw)Nz/y�/krWz/y/a)
rr�rrzr
r�r4rr)rr"s r�test_realpath_resolve_parentsz+PosixPathTest.test_realpath_resolve_parentsQs���
	��H�H�V���H�H�V�d�]�#��J�J�v��}�f�t�m�4��%�%�f�t�m�4�� � ��#�����@�5�
���V�d�]�+��v��}�%��v��5�4��
���V�d�]�+��v��}�%��v��s$�A5C,�7#C �C,� C)�%C,�,?D+c�Z�	tjt�tjtdz�tjtdz�tjtdztdz�|j	ttdz�tdz�t
jtt��5|j	ttt�dz�tdz�ddd�t
jtdz�ttdz�ttdz�tt�y#1swY�YxYw#t
jtdz�ttdz�ttdz�tt�wxYw)Nrz/k/yz/link-yz
/link-y/..)rr�rrzr4rr
r�rrr)rr"s r�(test_realpath_resolve_before_normalizingz6PosixPathTest.test_realpath_resolve_before_normalizingds��	��H�H�V���H�H�V�d�]�#��H�H�V�f�_�%��J�J�v�����(:�;�
���X�f�|�&;�<�f�t�m�L��%�%�g�f�o�6�� � ��(�6�*:�\�*I�!J�!'�$��0�7�
���V�i�/�0��v���'��v��}�%��v��7�6��
���V�i�/�0��v���'��v��}�%��v��s%�CE�3E
�5E�
E�E�AF*c���	tjt�tjtdz�tjttdz�t	j
t
t��5tt�}|jt|dz�t�|jt|dz�tdz�ddd�t	jtdz�ttdz�tt�y#1swY�GxYw#t	jtdz�ttdz�tt�wxYw)Nr�linkzlink/k)rr�rrzr
r�rrr4rr)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���'��� � ��$��-�!8�&�A�� � ��$��/�!:�F�T�M�J�7�

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

���V�f�_�-��v��}�%��v��s%�A8D#�:AD�D#�D �D#�#?E"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/bar�rrr�<lambda>z,PosixPathTest.test_relpath.<locals>.<lambda>�s��7Hr���r&rWrXz../a/bz../br�rZz../cr[zb/cz../../arSz/foo/bar/batz/x/y/zz../../../foo/bar/batr9�batr:zfoo/bar/batz../../..r�z../foo/bar/batz
../../../x)
rr�rMrGr��
ValueErrorr5r�r4r)r#�real_getcwd�curdirs   r�test_relpathzPosixPathTest.test_relpath�se��$&�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rrr
z2PosixPathTest.test_relpath_bytes.<locals>.<lambda>�s��:Lrrrrasa/bs../a/bs../bs../rbs../cs/a/bsb/cs../../ar�s/foo/bar/bats/x/y/zs../../../foo/bar/batr@sbatrAsfoo/bar/bats../../..s/xs../foo/bar/bats
../../../xsbytesr�)rr�rMrGr�rr5r�r4r�	TypeError)r#�real_getcwdbrs   r�test_relpath_bytesz PosixPathTest.test_relpath_bytes�s���&(�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)r4r5�
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�r5rrr})�excrrr#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/localr:z/devz	/usr/lib/z/usr/lib/python3z/usr/libz/usr/lib64/z
/usr/lib64�spam�alotr&�and/jam�and/spam�andzand//jamz
and/spam//z	and/./jamz
./and/spam)r%r&r$)r%r&r'z	spam/alotz
/spam/alots	/usr/lib/zusr/lib/python3susr/lib/s/usr/lib/python3susr/lib/python3zusr/lib/)r�rr5rr)r#rr!s`  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)3�__name__�
__module__�__qualname__r$r!r7rHrPrUrgrkrmror~r�r�r
�skip_unless_symlinkr�r�skipIfr�r�r�r��sys�platformr	r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�rrrr	rrr(rrrrr(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�'�J�'�J�'�C�'�C��"�"�&�%�'�#�%��"�"�&�%�'�#�%��"�"�&�%�'�#�%��"�"�&�%)�'�#�%)�N�"�"�&�%)�'�#�%)�N�"�"�&�
�'�#�
��"�"�&��'�#��"�"�"�&��'�#��"�"�"�&��'�#��4�"�"�&��'�#��"$�4&�<4=rrc��eZdZeZgd�Zy)�PosixCommonTest)r��samefile�sameopenfile�samestatN)r)r*r+r5�
pathmodule�
attributesrrrr1r1s���J�D�Jrr1c��eZdZeZd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�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�
addCleanupr)rwrx)r#�files  rr$zPathLikeTests.setUpsd��"�)�)���!�)�"2�"2�3������	�(�(�$�.�.�9�
�$�.�.�$��
*�d��J�J�6�7�+�
*�
*�s�5B�Bc�h�|j||j�||j��yr)r4r<r;)r#�funcs  r�assertPathEqualzPathLikeTests.assertPathEquals$������d�n�n�-�t�D�N�N�/C�Drc�N�|j|jj�yr)rArM�normcaser"s r�test_path_normcasez PathLikeTests.test_path_normcase������T�Y�Y�/�/�0rc�N�|j|jj�yr)rArMrjr"s r�test_path_isabszPathLikeTests.test_path_isabs������T�Y�Y�_�_�-rc��|j|jjdtd�d�|jjddd��y)NrW�br�)r4rMr6rr"s r�test_path_joinzPathLikeTests.test_path_joins;�����������X�c�]�C�@�������S�#�6�	8rc�N�|j|jj�yr)rArMrGr"s r�test_path_splitzPathLikeTests.test_path_splitrHrc�N�|j|jj�yr)rArMrKr"s r�test_path_splitextz PathLikeTests.test_path_splitext"rErc�N�|j|jj�yr)rArM�
splitdriver"s r�test_path_splitdrivez"PathLikeTests.test_path_splitdrive%������T�Y�Y�1�1�2rc�N�|j|jj�yr)rArMrdr"s r�test_path_splitrootz!PathLikeTests.test_path_splitroot(s�����T�Y�Y�0�0�1rc�N�|j|jj�yr)rArMrr"s r�test_path_basenamez PathLikeTests.test_path_basename+rErc�N�|j|jj�yr)rArMrr"s r�test_path_dirnamezPathLikeTests.test_path_dirname.������T�Y�Y�.�.�/rc�N�|j|jj�yr)rArMrur"s r�test_path_islinkzPathLikeTests.test_path_islink1s�����T�Y�Y�-�-�.rc�N�|j|jj�yr)rArMrvr"s r�test_path_lexistszPathLikeTests.test_path_lexists4rZrc�N�|j|jj�yr)rArMr�r"s r�test_path_ismountzPathLikeTests.test_path_ismount7rZrc�N�|j|jj�yr)rArMr�r"s r�test_path_expanduserz"PathLikeTests.test_path_expanduser:rSrc�N�|j|jj�yr)rArM�
expandvarsr"s r�test_path_expandvarsz"PathLikeTests.test_path_expandvars=rSrc�N�|j|jj�yr)rArMr�r"s r�test_path_normpathz PathLikeTests.test_path_normpath@rErc�N�|j|jj�yr)rArMrr"s r�test_path_abspathzPathLikeTests.test_path_abspathCrZrc�N�|j|jj�yr)rArMrr"s r�test_path_realpathz PathLikeTests.test_path_realpathFrErc�N�|j|jj�yr)rArMr�r"s r�test_path_relpathzPathLikeTests.test_path_relpathIrZrc��|jj|j|jg�}|j	||j�yr)rMrr<r;r4)r#�common_paths  r�test_path_commonpathz"PathLikeTests.test_path_commonpathLs7���i�i�*�*�D�N�N�D�N�N�+K�L������d�n�n�5rN)r)r*r+r5rMr$rArDrGrKrMrOrRrUrWrYr\r^r`rbrergrirkrmrprrrr8r8sq���D�8�E�1�.�8�.�1�3�2�1�0�/�0�0�3�3�1�0�1�0�6rr8�__main__)r�rr5r.rrrrrrr�test.supportrr	r
�test.support.os_helperrrr��ImportErrorr*rrr�TestCaser�
CommonTestr1r8r)�mainrrr�<module>rxs����	��
��:�:�!�&�0�+����
��!�!�	"��=�
�W=�H�%�%�W=�tE�&�1�1�8�3D�3D�E�
G6�H�%�%�G6�T�Z���H�M�M�O���E���E��s�C�C
�	C


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