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_ntpath.cpython-312.pyc

�

�#�jt����ddlZddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZm
Z
ddlmZddl	mZddlmZ	ddlZ	ej*dZ	ddlZdZd
�Zd�Zd�Zd
�ZGd�dej<�ZGd�de�Z Gd�dejBej<�Z"Gd�de�Z#e$dk(rejJ�yy#e$rdZY��wxYw#e$rd	ZY��wxYw#e$rd	ZY��wxYw)�N)�
ALLOW_MISSING)�support)�	os_helper�
is_emscripten)�FakePath)�test_genericpath)�
TemporaryFileTFc��tjdd��j}tjtjtjg|_tj|_||dd�}|s,tdjtj����tj|�}||||�}|d|S)N�kernel32T)�use_last_errorrz&failed to get short path name 0x{:08X})�ctypes�WinDLL�GetShortPathNameW�	c_wchar_p�c_uint32�argtypes�restype�OSError�format�get_last_error�create_unicode_buffer)�path�GSPN�
result_len�results    �7/opt/alt/python312/lib64/python3.12/test/test_ntpath.py�_getshortpathnamer%s����}�}�Z��=�O�O���)�)�6�+;�+;�V�_�_�M��
�������$��a�(�
���B�!�6�&�"7�"7�"9�:�<�
<��-�-�j�9���$��
�3�
��k�z�"�"�c���t|tttjf�r(tjtj|��St|d�rtd�|D��S|S)N�__iter__c3�lK�|],}tjtj|�����.y�w�N)�ntpath�normcase�os�fsdecode)�.0�ps  r�	<genexpr>z_norm.<locals>.<genexpr>5s"����C�d��V�_�_�R�[�[��^�4�d�s�24)
�
isinstance�bytes�strr%�PathLiker#r$r&�hasattr�tuple)rs r�_normr01sO���$���R�[�[�1�2����r�{�{�4�0�1�1�	��z�	"��C�d�C�C�C��Krc	��|jdd�}t|�}||k7rOt|�t|�k7r8tjt|��dt|��dt|�����|jdd�}|jdd�}|jd	d
�}|jdd�}|jd
d�}|jdd�}t
j|�jd�}|jdd�jd�}tj�5tjdt�t|�}ddd�t|�t|�k7r8tjt|��dt|��dt|�����y#1swY�YxYw)N�\�\\z should return: z but returned: z('z(b'z("z(b"z['z[b'z["z[b"z, 'z, b'z, "z, b"�latin1�ascii�backslashreplace�ignore)�replace�evalr0r�
TestFailedr,r%�fsencode�decode�encode�warnings�catch_warnings�simplefilter�DeprecationWarning�repr)�fn�
wantResult�	gotResults   r�testerrF9sm��	���D�&�	!�B��R��I��Y��5��#4��i�8H�#H�� � ��B���Z��#�i�.�":�;�	;�
���D�%�	 �B�	���D�%�	 �B�	���D�%�	 �B�	���D�%�	 �B�	���E�6�	"�B�	���E�6�	"�B�	���R��	�	��	)�B�	���7�.�	/�	6�	6�w�	?�B�	�	 �	 �	"����h�(:�;���H�	�
#�
�Z��E�)�,�,�� � ��B���Z��$�y�/�";�<�	<�-�
#�	"�s�7&F5�5F>c����fd�}|S)aqSimplistic decorator to parametrize a test

    Runs the decorated test multiple times in subTest, with a value from
    'parameters' passed as an extra positional argument.
    Calls 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�|j��<y#1swY�xYwr")�subTest�
doCleanups)�self�args�kwargs�	parameter�func�
parameterss    ��r�_parameterizedzE_parameterize.<locals>._parametrize_decorator.<locals>._parameterized]sF���'�	��\�\�)�,���:��:�i�:�6�:�-����!�(�,�,�s�A�A	�)rPrRrQs` �r�_parametrize_decoratorz-_parameterize.<locals>._parametrize_decorator\s���	"�
�rrS)rQrTs` r�
_parameterizerUQs����"�!rc��eZdZd�Zd�Zy)�NtpathTestCasec�b�||k(st|�t|�k(ry|j||�yr")r0�assertEqual)rL�path1�path2s   r�assertPathEqualzNtpathTestCase.assertPathEqualgs+���E�>�U�5�\�U�5�\�9�������&rc�L�|jt|�t|��yr")�assertInr0)rLr�pathsets   r�assertPathInzNtpathTestCase.assertPathInls���
�
�e�D�k�5��>�2rN)�__name__�
__module__�__qualname__r\r`rSrrrWrWfs��'�
3rrWc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zej$ej(ed�eiddidei�d����Zej$ej(ed�d���Zej(ed�d��Zej(ed�eiddidei�d���Zej$ej(ed�eiddidei�d����Zej$ej(ed�d���Zej$ej(ed�d���Zej$ej(ed�d���Zej$ej(ed�d���Z ej$ej(ed�eiddidei�d����Z!ej(ed�d��Z"ej(ed�ej(e#d�d���Z$d�Z%ej(ejLd �d!��Z'e(jRd"�d#��Z*d$�Z+ej(e,d%�d&��Z-d'�Z.d(�Z/ej`e1d)�d*��Z2d+�Z3d,�Z4ej(e,d-�d.��Z5ej`e6jnd/k7d0�d1��Z8ej`e6jnd/k7d2�d3��Z9ej(e:e;d4�d5�d6��Z<ej`e6jnd/k7d7�d8��Z=ej`e6jnd/k7d7�d9��Z>ej`e6jnd/k7d:�e(j~d;���Z@ej`e;j�d<k7d=�d>��ZBej`e;j�d<k(d?�d@��ZCyA)B�
TestNtpathc���tdd�tdd�tdd�tdd�td	d
�tdd�td
d�tdd�tdd�tdd�y)Nzntpath.splitext("foo.ext"))�foo�.extzntpath.splitext("/foo/foo.ext"))z/foo/foorhzntpath.splitext(".ext"))rh�zntpath.splitext("\foo.ext\foo"))z\foo.ext\foorizntpath.splitext("foo.ext\"))zfoo.ext\rizntpath.splitext("")�ririzntpath.splitext("foo.bar.ext"))zfoo.barrhz!ntpath.splitext("xx/foo.bar.ext"))z
xx/foo.barrhz!ntpath.splitext("xx\foo.bar.ext"))z
xx\foo.barrhzntpath.splitext("c:a/b\c.d"))zc:a/b\cz.d�rF�rLs r�
test_splitextzTestNtpath.test_splitextqsw���+�_�=��0�2F�G��(�,�7��2�4J�K��-�/@�A��$�h�/��/�1D�E��2�4J�K��3�5L�M��.�0B�Crc��tdd�tdd�tdd�tdd�td	d
�tdd�td
d�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd �td!d"�td#d$�y)%Nzntpath.splitdrive('')rjzntpath.splitdrive('foo'))rirgzntpath.splitdrive('foo\bar'))ri�foo\barzntpath.splitdrive('foo/bar'))ri�foo/barzntpath.splitdrive('\'))rir2zntpath.splitdrive('/'))ri�/zntpath.splitdrive('\foo\bar'))ri�\foo\barzntpath.splitdrive('/foo/bar'))ri�/foo/barzntpath.splitdrive("c:foo\bar"))�c:rozntpath.splitdrive("c:foo/bar"))rtrpzntpath.splitdrive("c:\foo\bar"))rtrrzntpath.splitdrive("c:/foo/bar"))rtrszntpath.splitdrive('\\'))r3rizntpath.splitdrive('//'))�//riz/ntpath.splitdrive("\\conky\mountpoint\foo\bar"))�\\conky\mountpointrrz/ntpath.splitdrive("//conky/mountpoint/foo/bar"))�//conky/mountpointrsz-ntpath.splitdrive("\\?\UNC\server\share\dir"))�\\?\UNC\server\sharez\dirz-ntpath.splitdrive("//?/UNC/server/share/dir"))�//?/UNC/server/sharez/dirrkrls r�test_splitdrivezTestNtpath.test_splitdrive}s����&��1��)�;�7��.�0@�A��-��?��(�*�5��'��3��0�2D�E��.�0@�A��0�2D�E��/�1B�C��2�4H�I��0�2D�E��*�L�9��(�*�5��E�6�	8��@�1�	3��D�5�	7��>�/�	1rc��tdd�tdd�tdd�tdd�td	d
�tdd�td
d�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd �td!d"�td#d$�td%d&�td'd(�td)d*�td+d,�td-d.�td/d0�td1d2�td3d4�|jtjd5�d6�td7d8�td9d:�td;d<�td=d>�td?d@�tdAdB�tdCdD�tdEdF�tdGdH�tdIdJ�tdKdL�tdMdN�tdOdP�tdQdR�tdSdT�tdUdV�tdWdX�tdYdZ�td[d\�td]d^�td_d`�tdadb�tdcdd�tdedf�tdgdh�tdidj�tdkdl�tdmdn�tdod(�tdpdq�tdrds�tdtdu�tdvdw�tdxdy�tdzd{�y)|Nzntpath.splitroot(''))riririzntpath.splitroot('foo'))ririrgzntpath.splitroot('foo\bar'))ririrozntpath.splitroot('foo/bar'))ririrpzntpath.splitroot('\'))rir2rizntpath.splitroot('/'))rirqrizntpath.splitroot('\foo\bar'))rir2rozntpath.splitroot('/foo/bar'))rirqrpzntpath.splitroot("c:foo\bar"))rtrirozntpath.splitroot("c:foo/bar"))rtrirpzntpath.splitroot("c:\foo\bar"))rtr2rozntpath.splitroot("c:/foo/bar"))rtrqrpzntpath.splitroot('c:\\a'))rtr2�\azntpath.splitroot('c:\\\a/b'))rtr2z\\a/bzntpath.splitroot('c:/\'))rtrqr2zntpath.splitroot('c:\/'))rtr2rqzntpath.splitroot('/\a/b\/\'))z/\a/br2z/\zntpath.splitroot('\/a\b/\/'))z\/a\brqz\/zntpath.splitroot('\\'))r3ririzntpath.splitroot('//'))ruririz.ntpath.splitroot("\\conky\mountpoint\foo\bar"))rvr2roz.ntpath.splitroot("//conky/mountpoint/foo/bar"))rwrqrpz/ntpath.splitroot("\\\conky\mountpoint\foo\bar"))z\\\conkyr2�mountpoint\foo\barz/ntpath.splitroot("///conky/mountpoint/foo/bar"))z///conkyrq�mountpoint/foo/barz/ntpath.splitroot("\\conky\\mountpoint\foo\bar"))z\\conky\r2r}z/ntpath.splitroot("//conky//mountpoint/foo/bar"))z//conky/rqr~u//conky/MOUNTPOİNT/foo/bar)u//conky/MOUNTPOİNTrqrpzntpath.splitroot("//?/c:"))�//?/c:ririzntpath.splitroot("//./c:"))z//./c:ririzntpath.splitroot("//?/c:/"))rrqrizntpath.splitroot("//?/c:/dir"))rrq�dirzntpath.splitroot("//?/UNC"))z//?/UNCririzntpath.splitroot("//?/UNC/"))z//?/UNC/ririz#ntpath.splitroot("//?/UNC/server/"))z//?/UNC/server/ririz(ntpath.splitroot("//?/UNC/server/share"))ryririz,ntpath.splitroot("//?/UNC/server/share/dir"))ryrqr�zIntpath.splitroot("//?/VOLUME{00000000-0000-0000-0000-000000000000}/spam"))z0//?/VOLUME{00000000-0000-0000-0000-000000000000}rq�spamz&ntpath.splitroot("//?/BootPartition/"))z//?/BootPartitionrqriz&ntpath.splitroot("//./BootPartition/"))z//./BootPartitionrqriz&ntpath.splitroot("//./PhysicalDrive0"))z//./PhysicalDrive0ririzntpath.splitroot("//./nul"))z//./nulririzntpath.splitroot("\\?\c:"))�\\?\c:ririzntpath.splitroot("\\.\c:"))z\\.\c:ririzntpath.splitroot("\\?\c:\"))r�r2rizntpath.splitroot("\\?\c:\dir"))r�r2r�zntpath.splitroot("\\?\UNC"))z\\?\UNCririzntpath.splitroot("\\?\UNC\"))z\\?\UNC\ririz#ntpath.splitroot("\\?\UNC\server\"))z\\?\UNC\server\ririz(ntpath.splitroot("\\?\UNC\server\share"))rxririz,ntpath.splitroot("\\?\UNC\server\share\dir"))rxr2r�zIntpath.splitroot("\\?\VOLUME{00000000-0000-0000-0000-000000000000}\spam"))z0\\?\VOLUME{00000000-0000-0000-0000-000000000000}r2r�z&ntpath.splitroot("\\?\BootPartition\"))z\\?\BootPartitionr2riz&ntpath.splitroot("\\.\BootPartition\"))z\\.\BootPartitionr2riz&ntpath.splitroot("\\.\PhysicalDrive0"))z\\.\PhysicalDrive0ririzntpath.splitroot("\\.\nul"))�\\.\nulririzntpath.splitroot("//")zntpath.splitroot("///"))z///ririzntpath.splitroot("///y"))z///yririzntpath.splitroot("//x"))z//xririzntpath.splitroot("//x/"))z//x/ririzntpath.splitroot(" :/foo"))z :rqrgzntpath.splitroot("/:/foo"))rirqz:/foo)rFrYr#�	splitrootrls r�test_splitrootzTestNtpath.test_splitroot�s���%�|�4��(�/�:��-�/C�D��,�.A�B��'��8��&�
�6��/�1G�H��-�/C�D��/�1G�H��.�0E�F��1�3K�L��/�1G�H�	�,�.A�B��0�2I�J�	�*�,=�>��*�,=�>��0�2I�J��0�2I�J�	�)�+;�<��'��8��D�:�	<��?�5�	7��F�9�	;��@�3�	5��F�<�	>��@�6�	8�	
����)�)�*G�H�@�	B�	�+�-?�@��+�-?�@��,�.A�B��/�1G�H��,�.A�B��-�/C�D��4�6Q�R��9�;[�\��=�?c�d��Z�P�	R��7�9W�X��7�9W�X��7�9W�X��,�.A�B��.�0E�F��.�0E�F��0�2I�J��3�5O�P��/�1G�H��1�3K�L��9�;[�\��>�4�	6��C�9�	;��^�T�	V��;�=_�`��;�=_�`��:�<]�^��/�1G�H�	�'��8��(�/�:��)�+;�<��(�/�:��)�+;�<�	�+�-?�@��+�-?�@rc��tdd�tdd�tdd�tdd�td	d
�tdd�y)
Nzntpath.split("c:\foo\bar"))zc:\foo�barz*ntpath.split("\\conky\mountpoint\foo\bar"))z\\conky\mountpoint\foor�zntpath.split("c:\"))�c:\riz#ntpath.split("\\conky\mountpoint\"))z\\conky\mountpoint\rizntpath.split("c:/"))�c:/riz#ntpath.split("//conky/mountpoint/"))z//conky/mountpoint/rirkrls r�
test_splitzTestNtpath.test_split�sP���-�/A�B��@�4�	6�	�%�|�4��8�.�	0�	�$�k�2��4�6Q�Rrc��tdd�tdd�tdd�tdd�tdd�tdd�y)Nzntpath.isabs("c:\")�z#ntpath.isabs("\\conky\mountpoint\")zntpath.isabs("\foo")zntpath.isabs("\foo\bar")z"ntpath.isabs("\\conky\mountpoint")zntpath.isabs("\\.\C:")rkrls r�
test_isabszTestNtpath.test_isabs�sF���%�q�)��8�!�<��&��*��+�Q�/�	�6��:��*�A�.rc�L�tdd�tdd�tdd�y)Nz>ntpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"])z
/home/swenz;ntpath.commonprefix(["\home\swen\spam", "\home\swen\eggs"])z\home\swen\z;ntpath.commonprefix(["/home/swen/spam", "/home/swen/spam"])z/home/swen/spamrkrls r�test_commonprefixzTestNtpath.test_commonprefixs,���O��	��R��	!��L� �	"rc	��tdd�tdd�tdd�tdd�tdd	�td
d�tdd
�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�td d�td!d"�td#d$�td%d&�td'd(�td)d*�td+d,�td-d.�td/d0�td1d2�td3d4�td5d6�td7d8�td9d:�td;d<�td=d<�td>d0�td?d0�td@d0�tdAd0�tdBd8�tdCd8�tdDd8�tdEdF�tdGdH�tdIdJ�tdKdL�dMD]}dND]}tdO|�dP|�dQ�|���tdRdS�tdTdS�tdUdS�tdVdW�tdXdY�tdZd[�td\d]�td^d_�td`da�tdbdS�y)cNzntpath.join("")rizntpath.join("", "", "")zntpath.join("a")�azntpath.join("/a")z/azntpath.join("\a")r|zntpath.join("a:")za:zntpath.join("a:", "\b")za:\bzntpath.join("a", "\b")z\bzntpath.join("a", "b", "c")za\b\czntpath.join("a\", "b", "c")zntpath.join("a", "b\", "c")zntpath.join("a", "b", "\c")z\czntpath.join("d:\", "\pleep")zd:\pleepzntpath.join("d:\", "a", "b")zd:\a\bzntpath.join('', 'a')z ntpath.join('', '', '', '', 'a')zntpath.join('a', '')za\z ntpath.join('a', '', '', '', '')zntpath.join('a\', '')z!ntpath.join('a\', '', '', '', '')zntpath.join('a/', '')za/zntpath.join('a/b', 'x/y')za/b\x/yzntpath.join('/a/b', 'x/y')z/a/b\x/yzntpath.join('/a/b/', 'x/y')z/a/b/x/yzntpath.join('c:', 'x/y')zc:x/yzntpath.join('c:a/b', 'x/y')z	c:a/b\x/yzntpath.join('c:a/b/', 'x/y')z	c:a/b/x/yzntpath.join('c:/', 'x/y')zc:/x/yzntpath.join('c:/a/b', 'x/y')z
c:/a/b\x/yzntpath.join('c:/a/b/', 'x/y')z
c:/a/b/x/yz&ntpath.join('//computer/share', 'x/y')z//computer/share\x/yz'ntpath.join('//computer/share/', 'x/y')z//computer/share/x/yz*ntpath.join('//computer/share/a/b', 'x/y')z//computer/share/a/b\x/yzntpath.join('a/b', '/x/y')z/x/yzntpath.join('/a/b', '/x/y')zntpath.join('c:', '/x/y')zntpath.join('c:a/b', '/x/y')zntpath.join('c:/', '/x/y')zntpath.join('c:/a/b', '/x/y')z'ntpath.join('//computer/share', '/x/y')z(ntpath.join('//computer/share/', '/x/y')z)ntpath.join('//computer/share/a', '/x/y')zntpath.join('c:', 'C:x/y')zC:x/yzntpath.join('c:a/b', 'C:x/y')z	C:a/b\x/yzntpath.join('c:/', 'C:x/y')zC:/x/yzntpath.join('c:/a/b', 'C:x/y')z
C:/a/b\x/y)
riza/bz/a/brtzc:a/br�zc:/a/bz//computer/sharez//computer/share/z//computer/share/a/b)zd:zd:x/yzd:/zd:/x/yz//machine/commonz//machine/common/z//machine/common/x/yzntpath.join(z, �)z*ntpath.join('\\computer\share\', 'a', 'b')z\\computer\share\a\bz)ntpath.join('\\computer\share', 'a', 'b')z&ntpath.join('\\computer\share', 'a\b')z*ntpath.join('//computer/share/', 'a', 'b')z//computer/share/a\bz)ntpath.join('//computer/share', 'a', 'b')z//computer/share\a\bz&ntpath.join('//computer/share', 'a/b')z//computer/share\a/bzntpath.join('\\', 'computer')z
\\computerz#ntpath.join('\\computer\', 'share')z\\computer\sharez%ntpath.join('\\computer\share\', 'a')z\\computer\share\az'ntpath.join('\\computer\share\a\', 'b')rk)rL�x�ys   r�	test_joinzTestNtpath.test_join
s���� �"�%��(�"�-��!�3�'��"�D�)��#�U�+��"�D�)��)�7�3��(�%�0��+�Y�7��-�y�9��-�y�9��-�u�5��/��=��.�
�;��%�s�+��1�3�7��%�u�-��1�5�9��'��/��3�U�;��&��-��*�J�7��+�[�9��,�j�9��)�7�3��,�l�;��-�{�;��*�H�5��-�}�=��.��=��7�9P�Q��8�:P�Q��;�=X�Y��+�V�4��,�f�5��*�H�5��-�x�8��+�X�6��.��9��8�:P�Q��9�;Q�R��:�<R�S��+�W�5��.��=��,�h�7��/��?�S�A�W����1�5�q�9�W�S�	�?�A\�]��=�?Z�[��;�=X�Y��;�=T�U��:�<T�U��7�9P�Q��0�.�A��7�9N�O��:�<T�U��=�?Z�[rc�4�tdd�tdd�tdd�tdd�tdd�td	d
�tdd�td
d�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�td d!�td"d#�td$d%�td&d'�td(d)�td*d+�td,d-�td.d/�td0d1�td2d1�td3d1�td4d1�td5d6�td7d8�td9d:�td;d<�y)=Nz$ntpath.normpath('A//////././//.//B')zA\Bzntpath.normpath('A/./B')zntpath.normpath('A/foo/../B')zntpath.normpath('C:A//B')zC:A\Bzntpath.normpath('D:A/./B')zD:A\Bzntpath.normpath('e:A/foo/../B')ze:A\Bzntpath.normpath('C:///A//B')zC:\A\Bzntpath.normpath('D:///A/./B')zD:\A\Bz"ntpath.normpath('e:///A/foo/../B')ze:\A\Bzntpath.normpath('..')�..zntpath.normpath('.')�.zntpath.normpath('')zntpath.normpath('/')r2zntpath.normpath('c:/')r�zntpath.normpath('/../.././..')zntpath.normpath('c:/../../..')zntpath.normpath('../.././..')�..\..\..zntpath.normpath('K:../.././..')z
K:..\..\..zntpath.normpath('C:////a/b')zC:\a\bz'ntpath.normpath('//machine/share//a/b')z\\machine\share\a\bzntpath.normpath('\\.\NUL')�\\.\NULzntpath.normpath('\\?\D:/XY\Z')z\\?\D:/XY\Zz1ntpath.normpath('handbook/../../Tests/image.png')z..\Tests\image.pngz4ntpath.normpath('handbook/../../../Tests/image.png')z..\..\Tests\image.pngz.ntpath.normpath('handbook///../a/.././../b/c')z..\b\cz/ntpath.normpath('handbook/a/../..///../../b/c')z	..\..\b\cz$ntpath.normpath('//server/share/..')�\\server\share\z%ntpath.normpath('//server/share/../')z'ntpath.normpath('//server/share/../..')z(ntpath.normpath('//server/share/../../')zntpath.normpath('\\foo\\')z\\foo\\zntpath.normpath('\\foo\')z\\foo\zntpath.normpath('\\foo')z\\foozntpath.normpath('\\')r3rkrls r�
test_normpathzTestNtpath.test_normpathSs����5�v�>��)�6�2��.��7��*�H�5��+�X�6��0�(�;��-�y�9��.�	�:��3�Y�?��&��.��%�t�,��$�d�+��%�t�,��'��0��/��6��/��8��.��<��0�-�@��-�y�9��8�:P�Q��.�
�;��3�^�D��B�DY�Z��E�G_�`��?��K��@�,�O��5�;P�Q��6�;P�Q��8�;P�Q��9�;P�Q�	�/��?��-�{�;��+�Y�7��(�&�1rc���tjtj��}t	d|�t	d|�t	d|�t	d|�t	d|�y)Nzntpath.realpath('.')zntpath.realpath('./.')z&ntpath.realpath('/'.join(['.'] * 100))zntpath.realpath('.\.')z&ntpath.realpath('\'.join(['.'] * 100))�r#�normpathr%�getcwdrF�rL�expecteds  r�test_realpath_curdirzTestNtpath.test_realpath_curdir}sM���?�?�2�9�9�;�/���%�x�0��'��2��7��B��(�(�3��8�(�Crc���tjtj��}t	d|�t	d|�t	d|�t	d|�t	d|�y)Nz!ntpath.realpath('.', strict=True)z#ntpath.realpath('./.', strict=True)z3ntpath.realpath('/'.join(['.'] * 100), strict=True)z#ntpath.realpath('.\.', strict=True)z3ntpath.realpath('\'.join(['.'] * 100), strict=True)r�r�s  r�test_realpath_curdir_strictz&TestNtpath.test_realpath_curdir_strict�sM���?�?�2�9�9�;�/���2�H�=��4�h�?��D�h�O��5�x�@��E�x�Prc���tjtj��}t	d|�t	d|�t	d|�t	d|�t	d|�y)Nz*ntpath.realpath('.', strict=ALLOW_MISSING)z,ntpath.realpath('./.', strict=ALLOW_MISSING)z<ntpath.realpath('/'.join(['.'] * 100), strict=ALLOW_MISSING)z,ntpath.realpath('.\.', strict=ALLOW_MISSING)z<ntpath.realpath('\'.join(['.'] * 100), strict=ALLOW_MISSING)r�r�s  r�test_realpath_curdir_missing_okz*TestNtpath.test_realpath_curdir_missing_ok�s\���?�?�2�9�9�;�/���;��	��=��	��M��	��>��	��N��	rc���tjtj��}t	dtj
|��t	dtj
tj
|���t	dtj|�ddz�t	dtj
tj
|���t	dtj|�ddz�y)Nzntpath.realpath('..')zntpath.realpath('../..')z&ntpath.realpath('/'.join(['..'] * 50))rr2zntpath.realpath('..\..')z&ntpath.realpath('\'.join(['..'] * 50))�r#r�r%r�rF�dirname�
splitdriver�s  r�test_realpath_pardirzTestNtpath.test_realpath_pardir�s����?�?�2�9�9�;�/���&����x�(@�A��)��~�~�f�n�n�X�6�7�	9��7�� � ��*�1�-��4�	6��*��~�~�f�n�n�X�6�7�	9��8�� � ��*�1�-��4�	6rc���tjtj��}t	dtj
|��t	dtj
tj
|���t	dtj|�ddz�t	dtj
tj
|���t	dtj|�ddz�y)Nz"ntpath.realpath('..', strict=True)z%ntpath.realpath('../..', strict=True)z3ntpath.realpath('/'.join(['..'] * 50), strict=True)rr2z%ntpath.realpath('..\..', strict=True)z3ntpath.realpath('\'.join(['..'] * 50), strict=True)r�r�s  r�test_realpath_pardir_strictz&TestNtpath.test_realpath_pardir_strict�s����?�?�2�9�9�;�/���3�V�^�^�H�5M�N��6��~�~�f�n�n�X�6�7�	9��D�� � ��*�1�-��4�	6��7��~�~�f�n�n�X�6�7�	9��E�� � ��*�1�-��4�	6rc���tjtj��}t	dtj
|��t	dtj
tj
|���t	dtj|�ddz�t	dtj
tj
|���t	dtj|�ddz�y)Nz+ntpath.realpath('..', strict=ALLOW_MISSING)z.ntpath.realpath('../..', strict=ALLOW_MISSING)z<ntpath.realpath('/'.join(['..'] * 50), strict=ALLOW_MISSING)rr2z.ntpath.realpath('..\..', strict=ALLOW_MISSING)z<ntpath.realpath('\'.join(['..'] * 50), strict=ALLOW_MISSING)r�r�s  r�test_realpath_pardir_missing_okz*TestNtpath.test_realpath_pardir_missing_ok�s����?�?�2�9�9�;�/���<��~�~�h�'�	)��?��~�~�f�n�n�X�6�7�	9��M�� � ��*�1�-��4�	6��@��~�~�f�n�n�X�6�7�	9��N�� � ��*�1�-��4�	6rzneed _getfinalpathname�strictTc�T�tjtj�}t	|d�j�|j
tj|�|j
tj|dz�tj||dz�|jtj|dzfi|��|�|jtjtj|dz�fi|��tj|��tjD�chc]}|�d���	c}ttj ��z
}|j#�j%�}|j'tj|d��|�|rF|j)t*�5tjtjdzfi|��ddd�y|j'|dztjtjdzfi|���ycc}w#1swYyxYw)N�wb�1z:\F�r�zspam)r#�abspathr�TESTFN�open�close�
addCleanup�unlinkr%�symlinkr\�realpathr;�string�ascii_uppercase�set�
listdrives�popr=rY�assertRaisesr)rLrN�ABSTFN�c�drives�ds      r�test_realpath_basiczTestNtpath.test_realpath_basic�s������	� 0� 0�1���V�T�� � �"����	�(�(�&�1����	�(�(�&�3�,�7�
�
�
�6�6�C�<�(����V�_�_�V�c�\�D�V�D�f�M����V�_�_�R�[�[��#��-F�Q�&�Q����V�,�	.�
&,�%;�%;�<�%;��Q�C�s�)�%;�<�s�2�=�=�?�?S�S���J�J�L���!���������5�9�1�=���"�"�7�+����	� 0� 0�8� ;�*�"(�*�,�+�
���V�h�.� &���	�0@�0@�8�0K� V�v� V�
X��=�,�+�s�$H�-(H�H'c�^�tjtj�}t	j
|dz|�|j
tj|�|jttj|d��|jttj|dzd��y)Nr�Tr��2)r#r�rr�r%r�r�r�r��FileNotFoundErrorr��rLr�s  r�test_realpath_strictzTestNtpath.test_realpath_strict�s{��
���	� 0� 0�1��
�
�
�6�C�<��(����	�(�(�&�1����+�V�_�_�f�T��R����+�V�_�_�f�s�l�SW��Xrc��tj}tjtj�}tj|�}|dz}|j||d��|�|jttj|d��|jttj|t��|dz}|j||d��|�|jttj|d��|jttj|t��|dz}|j||d��|�|jttj|d��|jttj|t��|dz}|j||d��|�|jttj|d��|jttj|t��|dz}|j||d��tj��|j||d��tj��|j||t��tj��|d	z}|j||d��tj��|j||d��tj��|j||t��tj��|d
z}|j||d��|dz�|jttj|d��|j||t��|dz�|dz}|j||d��|d
z�|jttj|d��|j||t��|d
z�y)N�Fr�T�z\nonexistent\xs\nonexistent\xz\..s\..z\nonexistent\x\..z\nonexistents\nonexistent\x\..s\nonexistent)
r#r�r�rr�r%r;rYr�rrr��getcwdb)rLr�r��ABSTFNbrs     r�test_realpath_invalid_pathsz&TestNtpath.test_realpath_invalid_paths�s
���?�?�����	� 0� 0�1���+�+�f�%����������$�u�5�t�<����'�6�?�?�D���F����'�6�?�?�D���O��� ������$�u�5�t�<����'�6�?�?�D���F����'�6�?�?�D���O��.�.������$�u�5�t�<����'�6�?�?�D���F����'�6�?�?�D���O��0�0������$�u�5�t�<����'�6�?�?�D���F����'�6�?�?�D���O��
�"������$�u�5�r�y�y�{�C�����$�t�4�b�i�i�k�B�����$�}�=�r�y�y�{�K���$������$�u�5�r�z�z�|�D�����$�t�4�b�j�j�l�C�����$�}�=�r�z�z�|�L��2�2������$�u�5�v��7O�P����'�6�?�?�D���F�����$�}�=�v��?W�X��4�4������$�u�5�w�AQ�7Q�R����'�6�?�?�D���F�����$�}�=�w�IY�?Y�Zrc�,�tj}tjtj�}tj|�}|dz}|jttj|fi|��|jttj|fi|��|dz}|jttj|fi|��|jttj|fi|��|dz}|jttj|fi|��|jttj|fi|��|dz}|jttj|fi|��|jttj|fi|��y)N��s\nonexistent\�s�\..s\nonexistent\�\..)	r#r�r�rr�r%r;r��UnicodeDecodeError)rLrNr�r�r�rs      r�#test_realpath_invalid_unicode_pathsz.TestNtpath.test_realpath_invalid_unicode_pathssI���?�?�����	� 0� 0�1���+�+�f�%���� ������,�f�o�o�t�N�v�N�����,�f�o�o�t�N�v�N��/�/������,�f�o�o�t�N�v�N�����,�f�o�o�t�N�v�N���$������,�f�o�o�t�N�v�N�����,�f�o�o�t�N�v�N��3�3������,�f�o�o�t�N�v�N�����,�f�o�o�t�N�v�Nrc��tjtj�}t	|d�j�|j
tj|�|j
tj|dz�tj|tj|dz��|jtj|dzfi|��|�y)Nr�r�)
r#r�rr�r�r�r�r�r%r��relpathr\r�)rLrNr�s   r�test_realpath_relativez!TestNtpath.test_realpath_relative"s������	� 0� 0�1���V�T�� � �"����	�(�(�&�1����	�(�(�&�3�,�7�
�
�
�6�6�>�>�&�3�,�7�8����V�_�_�V�c�\�D�V�D�f�Mrc�H	�tjtj�}t	j
|�|j
tj|�tj|�5t	j
d�t	jd�t	jdd�t	jdd�t	jd�t	jdd�t	jdd�t	jd	d
�t	jdd�t	jd
d�t	j|dzd�t	jdd�|jtjd�|dz�|jtjd�|dz�|jtjd
�|dz�|jtjd�|dz�|jtjd�|dz�|jtjd�|dz�|jtjd�|dz�|jtjd�|dz�|jtjd�t	j|dz��|jtjd�t	j|dz��|jtjd�t	j|dz��|jtjd�t	j|dz��|jtjd�t	j|dz��|jtjd �t	j|dz��|jtjd!�t	j|dz��|jtjd"�t	j|dz��ddd�y#1swYyxYw)#N�subdirr��	recursiver��parentrL�missing�brokenz
broken\bar�broken1zself\self\broken�broken2z"subdir\parent\subdir\parent\broken�broken3z\broken�broken4zrecursive\..\broken�broken5z\missingz
broken\fooz\missing\fooz\broken\barzbroken1\bazz\broken\bar\bazz\self\self\missingz$\subdir\parent\subdir\parent\missingsbrokens
broken\foosbroken1sbroken1\bazsbroken2sbroken3sbroken4sbroken5)r#r�rr�r%�mkdirr��rmtree�
change_cwd�chdirr�r\r�r;r�s  r�test_realpath_broken_symlinksz(TestNtpath.test_realpath_broken_symlinks.sh�����	� 0� 0�1��
��������	�(�(�&�1�
�
!�
!�&�
)��H�H�X���H�H�X���J�J�s�K�(��J�J�t�X�&��H�H�T�N��J�J�s�F�#��J�J�y�(�+��J�J�}�i�0��J�J�*�I�6��J�J�<�i�H��J�J�v�
�*�I�6��J�J�-�y�9�� � �����!:�!'�+�!5�
7�� � �����!?�!'�/�!9�
;�
� � �����!<�!'�.�!8�
:�� � �����!@�!'�*<�!<�
>�� � �����!;�!'�*?�!?�
A�� � �����!;�!'�*Q�!Q�
S�� � �����!;�!'�+�!5�
7�� � �����!;�!'�+�!5�
7�
� � �����!;�!#���V�k�-A�!B�
D�� � �����!@�!#���V�o�-E�!F�
H�� � �����!=�!#���V�n�-D�!E�
G�� � �����!A�!#���V�6H�-H�!I�
K�� � �����!<�!#���V�6K�-K�!L�
N�� � �����!=�!#���V�6]�-]�!^�
`�� � �����!<�!#���V�k�-A�!B�
D�� � �����!<�!#���V�k�-A�!B�
D�_*�
)�
)�s
�.P!R�R!c�J�tjtj�}|j	tj
|�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�t
j||�|jtj|�|�t
j|dz|dz�t
j|dz|dz�|dz|dzf}|jtj|dz�|�|jtj|dz�|�|jtj|dz�d�|D��|jtj|dz�tj|��|jtj|d	z�tj|�d
z�t
j|dz|dz�|jtj|dztj|�zdz�|dz�|jtj|dztj|�zdz�|�t
jtj|�d
z|dz�|jtj|dz�|dz�t
jdtjtj|��zdztj|�zdz|dz�|jtj|dz�|dz�|jtjtj|��|�y)Nr�r�r�r�r��1\xc3�HK�|]}tj|d����y�w)r�N)r#�join)r'�rs  rr)z9TestNtpath.test_realpath_symlink_loops.<locals>.<genexpr>s����A��1�6�;�;�q�#�.��s� "�1\..�1\..\x�\xr��1\..\�a\b�..\r2)
r#r�rr�r�r�r%r�r\r�r`r��basename)rLr�r�s   r�test_realpath_symlink_loopsz&TestNtpath.test_realpath_symlink_loopsgs2�����	� 0� 0�1�����	�(�(�&�1����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7�
�
�
�6�6�"����V�_�_�V�4�f�=�
�
�
�6�C�<��#��.�
�
�
�6�C�<��#��.��S�L�&�3�,�/�����&�/�/�&�3�,�7��B����&�/�/�&�3�,�7��B����&�/�/�&�6�/�:�A��A�	C����V�_�_�V�g�-=�>�#�^�^�F�3�	5����V�_�_�V�j�-@�A�#�^�^�F�3�e�;�	=�
�
�
�6�C�<��#��.����V�_�_�V�i�-?�/5���v�/F�.G�IL�.M�N�#�c�\�	+�	
���&�/�/�&�9�*<�,2�O�O�F�,C�+D�FI�+J�K�"�	$�	�
�
�6�?�?�6�*�V�3�V�c�\�B����V�_�_�V�c�\�:�F�S�L�I�
�
�
�6�F�O�O�F�N�N�6�,B�C�C���"�O�O�F�3�4�69�:�;A�C�<�	I����V�_�_�V�c�\�:�F�S�L�I�	
���V�_�_�V�_�_�V�-D�E�v�Nrc��tjtj�}|j	tj
|�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�t
j||�|jttj|d��t
j|dz|dz�t
j|dz|dz�|jttj|dzd��|jttj|dzd��|jttj|dzd��|jtj|d	zd��tj|��|jttj|d
zd��t
j|dz|dz�|jttj|dztj|�zdzd��|jttj|dztj|�zdzd��t
jtj|�d
z|dz�|jttj|dzd��t
jdtjtj|��zdztj|�zdz|dz�|jttj|dzd��|jttjtj|�d��y)Nr�r�r�r�r�Tr�r�r�r�r�r�r�r�r2)r#r�rr�r�r�r%r�r�rr�r\r�r�r�s  r�"test_realpath_symlink_loops_strictz-TestNtpath.test_realpath_symlink_loops_strict�s�����	� 0� 0�1�����	�(�(�&�1����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7�
�
�
�6�6�"����'�6�?�?�F�4��H�
�
�
�6�C�<��#��.�
�
�
�6�C�<��#��.����'�6�?�?�F�S�L���N����'�6�?�?�F�S�L���N����'�6�?�?�F�V�O�D��Q�	
���V�_�_�V�g�-=�d�K�#�^�^�F�3�	5����'�6�?�?�F�Z�4G�PT��U�
�
�
�6�C�<��#��.����'�6�?�?�F�Y�4F�/5���v�/F�5G�IL�5M�48�	�	:�	
���'�6�?�?� �9�,�v���v�/F�F��L�!%�	�	'�	�
�
�6�?�?�6�*�V�3�V�c�\�B����'�6�?�?�F�S�L���N�
�
�
�6�F�O�O�F�N�N�6�,B�C�C���"�O�O�F�3�4�69�:�;A�C�<�	I����'�6�?�?�F�S�L���N�	
���'�6�?�?�F�O�O�F�4K�!%�	�	'rc���tjtj�}|j	tj
|�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�|j	tj
|dz�t
j||�|jttj|t��t
j|dz|dz�t
j|dz|dz�|jttj|dzt��|jttj|dzt��|jttj|dzt��|jtj|d	z�tj|��|jtj|d
z�tj|�dz�t
j|dz|dz�|jtj|dztj|�zdz�|dz�|jttj|dztj|�zdzt��t
jtj|�d
z|dz�|jttj|dzt��t
jdtjtj|��zdztj|�zdz|dz�|jttj|dzt��|jttjtj|�t��y)Nr�r�r�r�r�r�r�r�r�r�r�r�r�r�r2)r#r�rr�r�r�r%r�r�rr�rr\r�r�r�s  r�!test_realpath_symlink_loops_raisez,TestNtpath.test_realpath_symlink_loops_raise�sT�����	� 0� 0�1�����	�(�(�&�1����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7����	�(�(�&�3�,�7�
�
�
�6�6�"����'�6�?�?�F�=��Q�
�
�
�6�C�<��#��.�
�
�
�6�C�<��#��.����'�6�?�?�F�S�L�#0�	�	2����'�6�?�?�F�S�L�#0�	�	2����'�6�?�?�F�V�O�#0�	�	2�
	
���V�_�_�V�g�-=�>�#�^�^�F�3�	5����V�_�_�V�j�-@�A�#�^�^�F�3�e�;�	=�	�
�
�6�C�<��#��.����V�_�_�V�i�-?�/5���v�/F�.G�IL�.M�N�#�c�\�	+�	
����V�_�_��Y������!8�8�3�>� �	�	"�
	�
�
�6�?�?�6�*�V�3�V�c�\�B����'�6�?�?�F�S�L�#0�	�	2�	�
�
�6�F�O�O�F�N�N�6�,B�C�C�������0�1�36�7�8>���	F����'�6�?�?�F�S�L�#0�	�	2�	
���'�6�?�?�F�O�O�F�4K�#0�	�	2rc��tjtj�}|j	tj
|dz�|j	tj
d|zdz�|j	tj
|dz�|j	tj
|dz�t
|dzd�5}|jd�ddd�tj|dz|dz�t
d|zdzd�5}|jd�ddd�tjd|zdz|dz�|jtj|dzfi|��|dz�|jtj|dzfi|��d|zdz�t
tj|dz�d	�5}|j|j�d�ddd�t
tj|dz�d	�5}|j|j�d�ddd�|jtjd|zdzfi|��d|zdz�|jtjd|zdzfi|��d|zdz�y#1swY���xYw#1swY���xYw#1swY��xYw#1swY��xYw)
N�3z\\?\z3.�3linkz3.linkr��0�1�rb)r#r�rr�r�r�r��writer%r�r\r�rY�read)rLrNr��fs    r�test_realpath_symlink_prefixz'TestNtpath.test_realpath_symlink_prefix�sN�����	� 0� 0�1�����	�(�(�&�3�,�7����	�(�(�)�f�*<�t�*C�D����	�(�(�&�7�*:�;����	�(�(�&�8�*;�<�
�&�3�,��
%��
�G�G�D�M�&�
�
�
�6�C�<��'�!1�2�
�)�f�$�t�+�T�
2�a�
�G�G�D�M�3�
�
�
�9�v�%��,�f�x�.?�@����V�_�_�V�g�-=�H��H�#�c�\�	+����V�_�_�V�h�->�I�&�I�&��/�$�6�	8��&�/�/�&�7�"2�3�T�
:�a����Q�V�V�X�t�,�;�
�&�/�/�&�8�"3�4�d�
;�q����Q�V�V�X�t�,�<�	
���V�_�_�Y��-?�'�-I�T�V�T�&��/�#�5�	7����V�_�_�Y��-?�(�-J�U�f�U�&��/�$�6�	8�-&�
%��3�
2��;�
:��
;�
;�s0�J�
J&�!J3�!J?�J#�&J0�3J<�?Kc�d�tdd�tdd�tdd�tdd�y)Nzntpath.realpath('NUL')r�z$ntpath.realpath('NUL', strict=False)z#ntpath.realpath('NUL', strict=True)z,ntpath.realpath('NUL', strict=ALLOW_MISSING)rkrls r�test_realpath_nulzTestNtpath.test_realpath_nuls.���'��4��5�z�B��4�j�A��=�z�Jrzneed _getshortpathnamec���tjtj�}tj|�tj
|�t
j|�|jtj
|�tj|d�}t
j|�t|�}tj|d�}tj|d�}t|d�5}|jd�ddd�|j|tj|��iddidtifD]�}|j di|��5tj"|�5|j|tjdi|���ddd�tj"|j%��5|j|tjdi|���ddd�tj"|�5|j|tjdi|���ddd�ddd���y#1swY��4xYw#1swY��xYw#1swY�pxYw#1swY�9xYw#1swY��3xYw)	N�MyVeryLongDirectoryName�file.txtr�scontentr�TrS)r
)r#r�rr�r�r�r%r�r�r�rr�rr\r�rrJr��lower)rLr��
test_dir_long�test_dir_short�test_file_long�test_file_shortrrNs        r�test_realpath_cwdzTestNtpath.test_realpath_cwd"s������	� 0� 0�1������ ����� �
��������	�(�(�&�1����F�,E�F�
�
�����*�=�9�����]�J�?�� �+�+�n�j�A��
�.�$�
'�1�
�G�G�J��(�	
���^�V�_�_�_�-M�N��8�T�*�X�}�,E�E�F�����'��'��)�)�-�8��(�(�&����=�f�=�?�9��)�)�-�*=�*=�*?�@��(�(�&����=�f�=�?�A��)�)�.�9��(�(�&����=�f�=�?�:�(�'�F�(�
'��9�8��A�@��:�9��(�'�s`�1H5�I&�(&I�+I&�9&I�I&�<&I�"I&�5H?�I�I&�I�I&�I#�I&�&I0	c�\�tj�5}|j�d|d<d|d<d|d<tdd�tdd	�td
d�tdd
�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd	�tdd�tdd�tdd�td d!�td"d#�td$d%�td&d'�ddd�y#1swYyxYw)(Nr�rg�baz1z{foo�baz2z{foo}zntpath.expandvars("foo")zntpath.expandvars("$foo bar")zbar barzntpath.expandvars("${foo}bar")�barbarzntpath.expandvars("$[foo]bar")z	$[foo]barzntpath.expandvars("$bar bar")z$bar barzntpath.expandvars("$?bar")z$?barzntpath.expandvars("$foo}bar")zbar}barzntpath.expandvars("${foo")z${foozntpath.expandvars("${{foo}}")zbaz1}zntpath.expandvars("$foo$foo")zntpath.expandvars("$bar$bar")z$bar$barzntpath.expandvars("%foo% bar")zntpath.expandvars("%foo%bar")zntpath.expandvars("%foo%%foo%")z$ntpath.expandvars("%%foo%%foo%foo%")z%foo%foobarzntpath.expandvars("%?bar%")z%?bar%zntpath.expandvars("%foo%%bar")zbar%barz ntpath.expandvars("'%foo%'%bar")z'%foo%'%barzntpath.expandvars("bar'%foo%")z	bar'%foo%)r�EnvironmentVarGuard�clearrF�rL�envs  r�test_expandvarszTestNtpath.test_expandvarsGs��
�
*�
*�
,���I�I�K��C��J� �C��K�!�C��L��-�u�5��2�I�>��3�X�>��3�[�A��2�J�?��/��9��2�I�>��/��9��2�G�<��2�H�=��2�J�?��3�Y�?��2�H�=��4�h�?��9�=�I��0�(�;��3�Y�?��7��I��4�l�C�/-�
,�
,�s�DD"�"D+zneed os_helper.FS_NONASCIIc���d�}tj�5}|j�tj}||d<d|z||<|dd|z�|d|zd|z�|dd|z�|d	|zd
|z�|dd|z�|d
|zd
|z�|dd|z�|dj	|�d|z�|dd|z�|dj	|�d
|z�ddd�y#1swYyxYw)Nc�"�td|z|�y)Nzntpath.expandvars(%r)rk)�valuer�s  r�checkz2TestNtpath.test_expandvars_nonascii.<locals>.checkcs���*�U�2�H�=rr��hamz	$spam barz%s barz$%s barz
${spam}barz%sbarz${%s}barzham%sbarz	$spam}barz%s}barz$%s}barz
%spam% barz%{}% barz	ham%s barz	%spam%barz%{}%bar)rrr�FS_NONASCIIr)rLrr�nonasciis    r�test_expandvars_nonasciiz#TestNtpath.test_expandvars_nonasciias��	>�
�
*�
*�
,���I�I�K� �,�,�H�"�C��K�!�H�,�C��M��+�x�(�2�3��)�h�&�	�H�(<�=��,��(� 2�3��*�x�'��h�)>�?��+�x�(�2�3��)�h�&�	�H�(<�=��,��8� 3�4��*�#�#�H�-�{�X�/E�F��+�w��1�2��)�"�"�8�,�j�8�.C�D�-�
,�
,�s�C
C.�.C7�cpuc���tj}tj�5}|j	�d|d<d}|j|d|z�d|z�|j|d|z�d|z�|j|d|zdz�d|zd	z�|j|d|z�d	|z�|j|d
|z�d|z�ddd�y#1swYyxYw)N�B�Ai��z%A%z%A%A�BAz''z%%�%z$$�$)r#�
expandvarsrrrrY)rLr)r�ns    r�test_expandvars_largez TestNtpath.test_expandvars_largeus����&�&�
�
�
*�
*�
,���I�I�K��C��H��A����Z��a��0�#�a�%�8����Z��q��1�4��6�:����Z��Q���
�6��Q����E����Z��Q��/��Q��7����Z��Q��/��Q��7�-�
,�
,�s�B4C"�"C+c��tdd�tj�5}|j�tdd�d|d<d|d<d	|d
<tdd�tdd
�|d=tdd�tdd�|j�d
|d<d	|d
<tdd�tdd
�tdd�tdd�tdd�tdd�|j�d|d<d
|d<d	|d
<tdd�tdd
�|j�d
|d<d|d
<tdd�tdd
�ddd�y#1swYyxYw)Nzntpath.expanduser("test")�testzntpath.expanduser("~test")z~test�C:\�	HOMEDRIVEz
Users\eric�HOMEPATH�eric�USERNAMEz
C:\Users\testzntpath.expanduser("~")z
C:\Users\ericz
Users\test�USERPROFILEz"ntpath.expanduser("~test\foo\bar")zC:\Users\test\foo\barz"ntpath.expanduser("~test/foo/bar")zC:\Users\test/foo/barzntpath.expanduser("~\foo\bar")zC:\Users\eric\foo\barzntpath.expanduser("~/foo/bar")zC:\Users\eric/foo/barzF:\�HOME�idle)rFrrrrs  r�test_expanduserzTestNtpath.test_expanduser�sn���*�F�3�
�
*�
*�
,���I�I�K��/��9�%�C���+�C�
�O�$�C�
�O��/�1B�C��+�->�?��K� ��/��?��+�]�;��I�I�K�!2�C�
��$�C�
�O��/�1B�C��+�->�?��9�.�
0��7�,�
.��5�.�
0��3�,�
.�
�I�I�K� �C��K�!2�C�
��$�C�
�O��/�1B�C��+�->�?�
�I�I�K�!2�C�
��$�C�
�O��/��9��+�->�?�U-�
,�
,�s�D*E�Ezabspath requires 'nt' modulec��tdd�tdd�tdd�tdd�td	d�td
d�tdd�td
d�tdd�|jtjtjd���|jtjd�tjtjd�d��|jtjd�d�tdd�tdd�tdd�tdd�tdd�tdd�tdd�td d!�td"d#�td$d#�td%d&�td'd&�td(d&�td)d&�td*d&�td+d,�td-d.�td/d.�td0d.�td1d.�td2d.�td3d�td4d�td5d�td6d�td7d�tjtj�5}td8|�td9|d:z�td;|d<z�tj|�\}}td=|d>z�ddd�y#1swYyxYw)?Nzntpath.abspath("C:\")r.z-ntpath.abspath("\\?\C:////spam////eggs. . .")z\\?\C:\spam\eggsz-ntpath.abspath("\\.\C:////spam////eggs. . .")z\\.\C:\spam\eggsz#ntpath.abspath("//spam//eggs. . .")z\\spam\eggsz#ntpath.abspath("\\spam\\eggs. . .")zntpath.abspath("C:/spam. . .")zC:\spamzntpath.abspath("C:\spam. . .")zntpath.abspath("C:/nul")r�zntpath.abspath("C:\nul")zC:spamzC:zC:r�z:spamz:\spamzntpath.abspath("//..")r3zntpath.abspath("//../")z\\..\zntpath.abspath("//../..")zntpath.abspath("//../../")z\\..\..\zntpath.abspath("//../../../")zntpath.abspath("//../../../..")z ntpath.abspath("//../../../../")zntpath.abspath("//server")z\\serverzntpath.abspath("//server/")z	\\server\zntpath.abspath("//server/..")zntpath.abspath("//server/../")z\\server\..\z ntpath.abspath("//server/../..")z!ntpath.abspath("//server/../../")z#ntpath.abspath("//server/../../..")z$ntpath.abspath("//server/../../../")z ntpath.abspath("//server/share")z\\server\sharez!ntpath.abspath("//server/share/")r�z#ntpath.abspath("//server/share/..")z$ntpath.abspath("//server/share/../")z&ntpath.abspath("//server/share/../..")z'ntpath.abspath("//server/share/../../")zntpath.abspath("C:\nul. . .")zntpath.abspath("//... . .")zntpath.abspath("//.. . . .")zntpath.abspath("//../... . .")zntpath.abspath("//../.. . . .")zntpath.abspath("")zntpath.abspath(" ")z\ zntpath.abspath("?")z\?zntpath.abspath("/abc/")z\abc)rF�
assertTruer#�isabsr�rYr�r�temp_cwdr�r�)rL�cwd_dir�drive�_s    r�test_abspathzTestNtpath.test_abspath�se���'��0��A�CZ�[��A�CZ�[��4�:J�K��8�:J�K��/�*�=��0�*�=��)�L�9��*�L�9�������V�^�^�H�%=�>�?��������1�6�;�;�v�~�~�d�?S�U[�3\�]��������4�m�D��'�6�:��(�:�>��*�:�>��+�>�B��.�>�B��0�>�B��1�>�B��+�|�D��,�~�F��.�~�F��/�7I�J��1�7I�J��2�7I�J��4�7I�J��5�7I�J��1�:M�N��2�:O�P��4�:O�P��5�:O�P��7�:O�P��8�:O�P��/��>��,�v�6��-�v�6��/�*�=��0�*�=�
�
�
�	� 0� 0�
1�W��'��1��(�'�E�/�:��(�'�E�/�:��(�(��1�H�E�1��,�e�g�o�>�2�
1�
1�s
�0AK�Kc��tdd�tdd�tdd�tdd�tjtj�5}t	j
|�}tdd	|zd
z�tdd	|zdz�ddd�td
d�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�td d�td!d�td"d�td#d�y#1swY��xYw)$Nzntpath.relpath("a")r�z#ntpath.relpath(ntpath.abspath("a"))zntpath.relpath("a/b")r�zntpath.relpath("../a/b")z..\a\bzntpath.relpath("a", "../b")r�r|zntpath.relpath("a/b", "../c")z\a\bzntpath.relpath("a", "b/c")z..\..\az*ntpath.relpath("c:/foo/bar/bat", "c:/x/y")z..\..\foo\bar\batz@ntpath.relpath("//conky/mountpoint/a", "//conky/mountpoint/b/c")zntpath.relpath("a", "a")r�z(ntpath.relpath("/foo/bar/bat", "/x/y/z")z..\..\..\foo\bar\batz*ntpath.relpath("/foo/bar/bat", "/foo/bar")�batz#ntpath.relpath("/foo/bar/bat", "/")zfoo\bar\batz#ntpath.relpath("/", "/foo/bar/bat")r�z$ntpath.relpath("/foo/bar/bat", "/x")z..\foo\bar\batz$ntpath.relpath("/x", "/foo/bar/bat")z
..\..\..\xzntpath.relpath("/", "/")zntpath.relpath("/a", "/a")zntpath.relpath("/a/b", "/a/b")z"ntpath.relpath("c:/foo", "C:/FOO"))rFrr:r�r#r�)rLr;�
currentdirs   r�test_relpathzTestNtpath.test_relpath�s*���$�c�*��4�c�:��&��/��)�:�6�
�
�
�	� 0� 0�
1�W�����1�J��0�&��2C�E�2I�J��2�F�:�4E�h�4N�O�2�	�+�[�9��;�=T�U��Q�S^�_��)�3�/��9�;V�W��;�U�C��4�o�F��4�l�C��5�7J�K��5��G��)�3�/��+�S�1��/��5��3�S�9�#2�
1�s�:D?�?Ec���d�}�fd�}�jttjg�|tddg�|tddg�|tddg�|tddg�|dgd�|ddgd�|ddgd�|ddgd�|dd	gd�|d
dgd�|dd
gd�|dd
gd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|tddg�|dgd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|gd�d�|gd �d�|d!d"gd#�|dgd�|dd$gd�|tdd%g��jttjd&dg��jttjd&d'g��jttjd(dg��jttjdd)g��jttjdd*g��jttjdd)g�y)+Nc�B�td|zjdd�|�y)Nzntpath.commonpath(%r)r3r2)rFr8)�pathsr�s  rrz)TestNtpath.test_commonpath.<locals>.check�s"���+�e�3�<�<�V�T�J��
rc
�����j|tj|��j|tj|D�cgc]}tj|���c}�ycc}wr")r�r#�
commonpathr%r;)�excrEr(rLs   �r�check_errorz/TestNtpath.test_commonpath.<locals>.check_error�sP������c�6�#4�#4�e�<����c�6�#4�#4�7<�=�u�!�r�{�{�1�~�u�=�
?��=s�A&zC:\Program Filesz
Program FileszC:Program Filesz\Program FileszC:\Program Files\zC:\\Program FileszC:\Program Files\\zC:\.\Program FileszC:\Program Files\.r.zC:\binzC:\Program Files\BarzC:\Program Files\FoozC:\ProjectszC:/Program Files/Barzc:/program files/barzc:\program fileszD:\Program Filesr��alotri�and\jam�and\spam�andzand\\jamz
and\spam\\z	and\.\jamz
.\and\spam)rKrLrJ)rKrLrMz	C:and\jamz
C:and\spamzC:andz	spam\alotz
\spam\alotsC:\Program FileszProgram Files\Foos
Program FilessC:\Program Files\FoosProgram Files\Foo)r��
ValueErrorr#rG�	TypeError)rLrrIs`  r�test_commonpathzTestNtpath.test_commonpath�s���	�	?�
	
���*�f�&7�&7��<��J�!4�o� F�G��J�!4�6G� H�I��J�!2�O� D�E��J��2E� F�G�
�"�#�%8�9�
�"�$7�8�:M�N�
�$�&9�:�!�	#�
�$�&;�<�!�	#�
�$�&=�>�!�	#�
�%�'=�>�!�	#�
�v�y�!�6�*�
�"�I�.��7�
�"�$<�=�!�	#�
�'�)A�B�!�	#�
�"�N�3�V�<�
�$�n�5�v�>�
�'�)?�@�!�	#�
�'�)?�@�!�	#�
�%�'?�@�!�	#�	�J�!4�6I� J�K�
�v�h���
�v�v���'�
�v�v���#�
�z�;�'��/�
�|�_�-�u�5�
�}�n�-�u�5�
�/��4�
�.��6�
�|�]�+�W�5�
�r�d�B��
�r�<� �"�%��J��^� 4�5����)�V�%6�%6�/�1I�J�	L����)�V�%6�%6�/�1E�F�	H����)�V�%6�%6�+�-E�F�	H����)�V�%6�%6�.�0I�J�	L����)�V�%6�%6�.�0E�F�	H����)�V�%6�%6�*�,E�F�	Hrz&Emscripten cannot fstat unnamed files.c	�*�t�5}t�5}|jtj|j	�|j	���|jtj|j	�|j	���tjdk(r4|jt�5tjdd�ddd�ddd�ddd�y#1swY�xYw#1swY�xYw#1swYyxYw)N�win32���)
r	r8r#�sameopenfile�fileno�assertFalse�sys�platformr�r)rL�tf1�tf2s   r�test_sameopenfilezTestNtpath.test_sameopenfile?s���
�_��]�_���O�O�F�/�/��
�
��c�j�j�l�K�L����V�0�0�����s�z�z�|�L�M��|�|�w�&��&�&�w�/��'�'��B�/�0�&5�_�_�0�/��&5�_��_�_�s;�D	�B+C=�C1�C=� D	�1C:�6C=�=D	�D	�	Dc��|jtjd��|jtjd��|jtjd��|jtjd��|jtjd��|jtjd��|jtjd��|jtjd��|jtjd	��|jtjd
��|jtjd��|jtjd��tj�5}|jtj|��ddd�tjd
k(�r@tjd�}tj|�\}}tj|�5|jtj|j���|jtj|j���ddd�|jtjd��|jtjd��|jtjd��|jtjd��yy#1swY��_xYw#1swY��xYw)Nr�r.r�zC:/z\\.\c:\z\\.\C:\sc:\sC:\sc:/sC:/s\\.\c:\s\\.\C:\rR�
SystemRootz\\localhost\c$z\\localhost\c$\s\\localhost\c$s\\localhost\c$\)r8r#�ismountr�temp_dirrVrWrXr%�getenvr�r�r�upper)rLr��test_cwdr<rs     r�test_ismountzTestNtpath.test_ismountMs��������v�.�/�������v�.�/�������u�-�.�������u�-�.�������}�5�6�������}�5�6�������w�/�0�������w�/�0�������v�.�/�������v�.�/�������~�6�7�������~�6�7�
�
�
�
!�Q����V�^�^�A�.�/�"��<�<�7�"��y�y��.�H� �+�+�H�5�K�E�4��%�%�h�/�� � �������
�!>�?�� � �������
�!>�?�0�
�O�O�F�N�N�+>�?�@��O�O�F�N�N�+@�A�B��O�O�F�N�N�+?�@�A��O�O�F�N�N�+A�B�C�!#�"�
!��0�/�s�%M�A%M�M�Mc�`�|j|j�|j��y)z<Assert that two strings are equal ignoring case differences.N)rYr)rL�s1�s2s   r�
assertEqualCIzTestNtpath.assertEqualCIqs���������R�X�X�Z�0rzOS helpers require 'nt' modulec���tjtj�}|t	j
|�fD]Y}tj|�}tj|�d}tj|�d}|j||��[tjtj�\}}|j|d�|j|d�tjtjj��\}}	|j||�|j|	d�tjtjfD]�}tj|�}
|j!|
t"�|jt%|
�d�tj|j��}|j!|t&�|jt%|�d���y)Nr)�nt�_getfinalpathnamerW�
executabler%r;�_getvolumepathnamer#r�rg�
_getdiskusage�exec_prefix�
assertGreaterr=rY�prefix�assertIsInstancer,�lenr+)rLrkr�volume_path�
path_drive�volume_path_drive�cap�free�b_cap�b_free�
final_path�b_final_paths            r�test_nt_helperszTestNtpath.test_nt_helpersus}��
�)�)�#�.�.�9�
�����J� 7�7�D��/�/��5�K��*�*�4�0��3�J� &� 1� 1�+� >�q� A�����z�+<�=�	8��$�$�S�_�_�5�	��T����3��"����4��#��(�(����)?�)?�)A�B�
��v������$����6�1�%��Z�Z����0�D��-�-�d�3�J��!�!�*�c�2����s�:���2��/�/����
�>�L��!�!�,��6����s�<�0�!�4�1rrRz/Can only test junctions with creation on win32.c�F�tj�5}tj|�5tjd�ddl}	|j
dd�|jtjd��|jtjd��|jtjd�tjd��ddd�ddd�y#t$rtjd��wxYw#1swY�4xYw#1swYyxYw)N�tmpdirr�testjuncz!creating the test junction failed)rr_r�r%r��_winapi�CreateJunctionr�unittest�SkipTestr8r#�
isjunctionrVr\r�)rLr�r�s   r�test_isjunctionzTestNtpath.test_isjunction�s���
�
�
�
!�Q��%�%�a�(�����"��Q��*�*�8�Z�@����� 1� 1�*� =�>�� � ��!2�!2�8�!<�=��$�$�V�_�_�Z�%@�&�/�/�RZ�B[�\�)�"�
!���Q�"�+�+�,O�P�P�Q��
)�(��"�
!�s;�D�D�C)�BD�D�)D�D�D	�D�D z#drive letters are a windows conceptc��tjjd�}|�t|�dk7s|ddk7rt	j
d��|j
tjjd|z��y)N�SystemDrive�r��:z'SystemDrive is not defined or malformedz\\.\)	r%�environ�getrrr�r�rVr�isfile)rLr<s  r�test_isfile_driveletterz"TestNtpath.test_isfile_driveletter�s_���
�
���}�-���=�C��J�!�O�u�Q�x�3���#�#�$M�N�N���������	�E�(9�:�;r�pipezneed os.pipe()c�.�tj�\}}	|jtj|��tj
|�tj
|�y#tj
|�tj
|�wxYwr")r%r�rVr#r�r�)rL�pr�pws   r�test_isfile_anonymous_pipez%TestNtpath.test_isfile_anonymous_pipe�s]��������B�	����V�]�]�2�.�/��H�H�R�L��H�H�R�L��
�H�H�R�L��H�H�R�L�s�$A(�(,Bzwindows onlyc
��ddl}dtj���}|j||jdddddd�}	|jt
j|��|j|�y#|j|�wxYw)Nrz//./PIPE/python_isfile_test_r�)	r�r%�getpid�CreateNamedPipe�PIPE_ACCESS_INBOUNDrVr#r��CloseHandle)rLr��
named_pipe�hs    r�test_isfile_named_pipez!TestNtpath.test_isfile_named_pipe�sx���3�B�I�I�K�=�A�
��#�#�J�$+�$?�$?�$%�q�!�Q��1�
6��	#����V�]�]�:�6�7�����"��G����"�s�$A5�5Bc�t�|jtjjd��|jtjj	d��|jtjjd��|j
tjjd��y)Nz\\.\CON)rVr%rr��isdir�islinkr8�existsrls r�test_con_devicezTestNtpath.test_con_device�sl����������
�3�4���������z�2�3���������
�3�4���������z�2�3rzFast paths are only for win32c��|jtjjtj
u�|j
tjtjj��|jtjjtju�|j
tjtjj��|jtjjtju�|j
tjtjj��|jtjjtju�|j
tjtjj��|jtjjtj u�|j
tjtjj��yr")r8r%rr�ri�_path_normpathrV�inspect�
isfunctionr��_path_isdirr��_path_isfiler��_path_islinkr��_path_existsrls r�test_fast_paths_in_usez!TestNtpath.test_fast_paths_in_use�s@��	
������(�(�B�,=�,=�=�>�����+�+�B�G�G�,<�,<�=�>�������
�
����7�8�����+�+�B�G�G�M�M�:�;���������"�/�/�9�:�����+�+�B�G�G�N�N�;�<���������"�/�/�9�:�����+�+�B�G�G�N�N�;�<���������"�/�/�9�:�����+�+�B�G�G�N�N�;�<rrizDev Drives only exist on Win32c�8�|jtjtj�d�|jtjd�d�|jtjd�d�|jtjtj�d�d�|jtjd��|jt�5tjd�ddd�y#1swYyxYw)N)TFr��.rz2\\?\Volume{00000000-0000-0000-0000-000000000000}\\)r^r#�
isdevdriverr�r%�listvolumesrVr�rri�_path_isdevdriverls r�test_isdevdrivezTestNtpath.test_isdevdrive�s���	
�
�
�f�'�'�	�(8�(8�9�=�I��
�
�f�'�'��,�m�<��
�
�f�'�'��-�}�=��
�
�f�'�'����(8��(;�<�m�L�����*�*�+`�a�b�
�
�
�w�
'���� U�V�(�
'�
'�s�1D�Dz'isdevdrive fallback only used off Win32c�h�|jtjtj��yr")rVr#r�rr�rls r�test_isdevdrive_fallbackz#TestNtpath.test_isdevdrive_fallback�s#��	
����*�*�9�+;�+;�<�=rN)Drarbrcrmrzr�r�r�r�r�r�r�r�r�r�r�r�r�skip_unless_symlinkr��
skipUnless�HAVE_GETFINALPATHNAMErUrr�r�r�r�r�r�r�r�r�rr�HAVE_GETSHORTPATHNAMErrrr!r�requires_resourcer+r6rir>rBrP�skipIfrr[rcrgr|rWrXr�r�r.r%r�r�r��cpython_onlyr��namer�r�rSrrrerepsx��
D�1�0XA�t
S�/�"�D\�L(2�TD�Q��
6�
6�6��"�"��X���.�0H�I��2��$�'�(�M�)B�C�X�D�J�#�X�4�"�"��X���.�0H�I�Y�J�#�Y��X���.�0H�I�%[�J�%[�N�X���.�0H�I��2��$�'�(�M�)B�C�O�D�J�O�"�"�"��X���.�0H�I��2��$�'�(�M�)B�C�N�D�J�#�N��"�"��X���.�0H�I�5D�J�#�5D�n�"�"��X���.�0H�I�+O�J�#�+O�Z�"�"��X���.�0H�I�('�J�#�('�T�"�"��X���.�0H�I�22�J�#�22�h�"�"��X���.�0H�I��2��$�'�(�M�)B�C�8�D�J�#�8�@�X���.�0H�I�K�J�K��X���.�0H�I��X���.�0H�I�!?�J�J�!?�FD�4�X����.�.�0L�M�E�N�E�&�W���u�%�
8�&�
8�-@�b�X����;�<�,?�=�,?�\:�0CH�J�X�_�_�]�$L�M�0�N�0�"D�H1��X����=�>�5�?�5�:�X�_�_�S�\�\�W�,�._�`�
]�a�
]��X�_�_�S�\�\�W�,�.S�T�<�U�<��X�����V�,�.>�?��@���X�_�_�S�\�\�W�,�n�=�	#�>�	#��X�_�_�S�\�\�W�,�n�=�4�>�4��X�_�_�S�\�\�W�,�.M�N����
=��O�
=��X�_�_�R�W�W��_�&F�G�W�H�W��X�_�_�R�W�W��_�&O�P�>�Q�>rrec��eZdZeZdgZy)�NtCommonTestr�N)rarbrcr#�
pathmodule�
attributesrSrrr�r��s���J���Jrr�c��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�Zd�Zy)�
PathLikeTestsc�8�tj|_ttj�|_|jtj|j�t|jdd�5}|jd�ddd�y#1swYyxYw)N�xbrstest_ntpath.PathLikeTests)	rr��	file_namer�	file_pathr�r�r�r)rL�files  r�setUpzPathLikeTests.setUp�sd��"�)�)���!�)�"2�"2�3������	�(�(�$�.�.�9�
�$�.�.�$��
*�d��J�J�3�4�+�
*�
*�s�5B�Bc�h�|j||j�||j��yr")r\r�r�)rLrPs  r�_check_functionzPathLikeTests._check_function�s$�����T�$�.�.�1�4����3G�Hrc�
�|j|jj�tjdk(rK|jt
jd�d�|jt
jd�d�yy)NrRuΩΩuωΩzabcdef)r�rr$rWrXrYr#rls r�test_path_normcasez PathLikeTests.test_path_normcase�s]�����T�Y�Y�/�/�0��<�<�7�"����V�_�_�^�<�g�F����V�_�_�\�:�L�I�#rc�N�|j|jj�yr")r�rr9rls r�test_path_isabszPathLikeTests.test_path_isabs������T�Y�Y�_�_�-rc��|j|jjdtd�d�|jjddd��y)Nr��br�)rYrr�rrls r�test_path_joinzPathLikeTests.test_path_joins;�����������X�c�]�C�@�������S�#�6�	8rc�N�|j|jj�yr")r�r�splitrls r�test_path_splitzPathLikeTests.test_path_splitr�rc�N�|j|jj�yr")r�r�splitextrls r�test_path_splitextz PathLikeTests.test_path_splitext������T�Y�Y�/�/�0rc�N�|j|jj�yr")r�rr�rls r�test_path_splitdrivez"PathLikeTests.test_path_splitdrive������T�Y�Y�1�1�2rc�N�|j|jj�yr")r�rr�rls r�test_path_splitrootz!PathLikeTests.test_path_splitroots�����T�Y�Y�0�0�1rc�N�|j|jj�yr")r�rr�rls r�test_path_basenamez PathLikeTests.test_path_basenamer�rc�N�|j|jj�yr")r�rr�rls r�test_path_dirnamezPathLikeTests.test_path_dirname������T�Y�Y�.�.�/rc�N�|j|jj�yr")r�rr�rls r�test_path_islinkzPathLikeTests.test_path_islinks�����T�Y�Y�-�-�.rc�N�|j|jj�yr")r�r�lexistsrls r�test_path_lexistszPathLikeTests.test_path_lexists!r�rc�N�|j|jj�yr")r�rr^rls r�test_path_ismountzPathLikeTests.test_path_ismount$r�rc�N�|j|jj�yr")r�r�
expanduserrls r�test_path_expanduserz"PathLikeTests.test_path_expanduser'r�rc�N�|j|jj�yr")r�rr)rls r�test_path_expandvarsz"PathLikeTests.test_path_expandvars*r�rc�N�|j|jj�yr")r�rr�rls r�test_path_normpathz PathLikeTests.test_path_normpath-r�rc�N�|j|jj�yr")r�rr�rls r�test_path_abspathzPathLikeTests.test_path_abspath0r�rc�N�|j|jj�yr")r�rr�rls r�test_path_realpathz PathLikeTests.test_path_realpath3r�rc�N�|j|jj�yr")r�rr�rls r�test_path_relpathzPathLikeTests.test_path_relpath6r�rc��|jj|j|jg�}|j	||j�yr")rrGr�r�r\)rL�common_paths  r�test_path_commonpathz"PathLikeTests.test_path_commonpath9s7���i�i�*�*�D�N�N�D�N�N�+K�L�����[�$�.�.�9rc�N�|j|jj�yr")r�rr�rls r�test_path_isdirzPathLikeTests.test_path_isdir=r�rN)rarbrcr#rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rSrrr�r��sw���D�5�I�J�.�8�.�1�3�2�1�0�/�0�0�3�3�1�0�1�0�:�.rr��__main__)&r�r#r%r��
subprocessrWr�r>rr-r�test.supportrr�test.support.os_helperrr�tempfiler	ri�ImportErrorrjr��AttributeErrorr
r�rr0rFrU�TestCaserWre�
CommonTestr�r�ra�mainrSrr�<module>rs���
�	�
��
��� ��1�+�!�"��
�!�
���!��#��!��
#��<�0"�*3�X�&�&�3�y>��y>�x#�#�.�.��0A�0A��
M.�N�M.�`�z���H�M�M�O���])��
�B����"�!��"���"�!��"�s6�C�
C�C+�C�C�C(�'C(�+C5�4C5