Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.16.139.131
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_ntpath.cpython-310.pyc
o

abE��@sNddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddlm
Z
zddlZWneyCdZYnwzejWneyTdZYnwdZzddlZWneyhdZYnwdZd	d
�Zdd�Zd
d�ZGdd�dej�ZGdd�de�ZGdd�dejej�ZGdd�de�Zedkr�e��dSdS)�N)�	os_helper)�
TestFailed)�FakePath)�test_genericpath)�
TemporaryFileFTcCsntjddd�j}tjtjtjg|_tj|_||dd�}|s&td�t�	����t�
|�}||||�}|d|�S)NZkernel32T)Zuse_last_errorrz&failed to get short path name 0x{:08X})�ctypesZWinDLLZGetShortPathNameWZ	c_wchar_pZc_uint32�argtypesZrestype�OSError�formatZget_last_errorZcreate_unicode_buffer)�pathZGSPNZ
result_len�result�r
�9/usr/local/python-3.10/lib/python3.10/test/test_ntpath.py�_getshortpathname!s
�
rcCsBt|tttjf�rt�t�|��St|d�rt	dd�|D��S|S)N�__iter__css �|]}t�t�|��VqdS�N)�ntpath�normcase�os�fsdecode��.0�pr
r
r�	<genexpr>1s�z_norm.<locals>.<genexpr>)
�
isinstance�bytes�strr�PathLikerrr�hasattr�tuple)rr
r
r�_norm-s

r cCs"|�dd�}t|�}||kr%t|�t|�kr%tdt|�t|�t|�f��|�dd�}|�dd�}|�dd	�}|�d
d�}|�dd
�}|�dd�}t�|��d�}|�dd��d�}t	�
��t	�dt�t|�}Wd�n1sswYt|�t|�kr�tdt|�t|�t
|�f��dS)N�\�\\z%%s should return: %s but returned: %sz('z(b'z("z(b"z['z[b'z["z[b"z, 'z, b'z, "z, b"�latin1�ascii�backslashreplace�ignore)�replace�evalr rrr�fsencode�decode�encode�warnings�catch_warnings�simplefilter�DeprecationWarning�repr)�fnZ
wantResultZ	gotResultr
r
r�tester5s.�

���r2c@seZdZdd�Zdd�ZdS)�NtpathTestCasecCs,||kst|�t|�krdS|�||�dSr)r �assertEqual)�selfZpath1Zpath2r
r
r�assertPathEqualNszNtpathTestCase.assertPathEqualcCs|�t|�t|��dSr)ZassertInr )r5rZpathsetr
r
r�assertPathInSszNtpathTestCase.assertPathInN)�__name__�
__module__�__qualname__r6r7r
r
r
rr3Msr3c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zej
e�ed�dd���Zej
e�ed�dd���Zej
e�ed�dd���Zej
e�ed�dd���Zej
e�ed�dd���Zej
e�ed�dd���Zej
e�ed�d d!���Ze�ed�d"d#��Ze�ed�e�ed$�d%d&���Zd'd(�Ze�ejd)�d*d+��Zd,d-�Ze�ed.�d/d0��Z d1d2�Z!d3d4�Z"d5d6�Z#d7d8�Z$d9d:�Z%e�ed;�d<d=��Z&d>S)?�
TestNtpathcCshtdd�tdd�tdd�tdd�td	d
�tdd�td
d�tdd�tdd�tdd�dS)Nzntpath.splitext("foo.ext"))�foo�.extzntpath.splitext("/foo/foo.ext"))z/foo/foor=zntpath.splitext(".ext"))r=�zntpath.splitext("\foo.ext\foo"))z\foo.ext\foor>zntpath.splitext("foo.ext\"))zfoo.ext\r>zntpath.splitext(""))r>r>zntpath.splitext("foo.bar.ext"))zfoo.barr=z!ntpath.splitext("xx/foo.bar.ext"))z
xx/foo.barr=z!ntpath.splitext("xx\foo.bar.ext"))z
xx\foo.barr=zntpath.splitext("c:a/b\c.d"))zc:a/b\cz.d�r2�r5r
r
r�
test_splitextXs








zTestNtpath.test_splitextcCsftdd�tdd�tdd�tdd�td	d
�tdd�td
d�tdd�|�t�d�d�dS)Nzntpath.splitdrive("c:\foo\bar"))�c:�\foo\barzntpath.splitdrive("c:/foo/bar"))rB�/foo/barz/ntpath.splitdrive("\\conky\mountpoint\foo\bar"))z\\conky\mountpointrCz/ntpath.splitdrive("//conky/mountpoint/foo/bar"))z//conky/mountpointrDz0ntpath.splitdrive("\\\conky\mountpoint\foo\bar"))r>z\\\conky\mountpoint\foo\barz0ntpath.splitdrive("///conky/mountpoint/foo/bar"))r>z///conky/mountpoint/foo/barz0ntpath.splitdrive("\\conky\\mountpoint\foo\bar"))r>z\\conky\\mountpoint\foo\barz0ntpath.splitdrive("//conky//mountpoint/foo/bar"))r>z//conky//mountpoint/foo/baru//conky/MOUNTPOİNT/foo/bar)u//conky/MOUNTPOİNTrD)r2r4r�
splitdriver@r
r
r�test_splitdriveds6���������zTestNtpath.test_splitdrivecCs@tdd�tdd�tdd�tdd�td	d
�tdd�dS)
Nzntpath.split("c:\foo\bar"))zc:\foo�barz*ntpath.split("\\conky\mountpoint\foo\bar"))z\\conky\mountpoint\foorGzntpath.split("c:\"))�c:\r>z#ntpath.split("\\conky\mountpoint\"))z\\conky\mountpoint\r>zntpath.split("c:/"))�c:/r>z#ntpath.split("//conky/mountpoint/"))z//conky/mountpoint/r>r?r@r
r
r�
test_splitys
�
�
zTestNtpath.test_splitcCs,tdd�tdd�tdd�tdd�dS)Nzntpath.isabs("c:\")�z#ntpath.isabs("\\conky\mountpoint\")zntpath.isabs("\foo")zntpath.isabs("\foo\bar")r?r@r
r
r�
test_isabs�s


zTestNtpath.test_isabscCs"tdd�tdd�tdd�dS)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/spamr?r@r
r
r�test_commonprefix�s���zTestNtpath.test_commonprefixcCs2tdd�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||f|�q�q�tdPdQ�tdRdQ�tdSdQ�tdTdU�tdVdW�tdXdY�dS)ZNzntpath.join("")r>zntpath.join("", "", "")zntpath.join("a")�azntpath.join("/a")z/azntpath.join("\a")�\azntpath.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)
r>za/bz/a/brBzc:a/brIzc:/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/yzntpath.join(%r, %r)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/br?)r5�x�yr
r
r�	test_join�sp













































�




zTestNtpath.test_joincCs�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'�dS)(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('/')r!zntpath.normpath('c:/')rHzntpath.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\Zr?r@r
r
r�
test_normpath�s,




















zTestNtpath.test_normpathcCsDt�t���}td|�td|�td|�td|�td|�dS)Nzntpath.realpath('.')zntpath.realpath('./.')z&ntpath.realpath('/'.join(['.'] * 100))zntpath.realpath('.\.')z&ntpath.realpath('\'.join(['.'] * 100)))r�normpathr�getcwdr2�r5�expectedr
r
r�test_realpath_curdir�s



zTestNtpath.test_realpath_curdircCs~t�t���}tdt�|��tdt�t�|���tdt�|�dd�tdt�t�|���tdt�|�dd�dS)Nzntpath.realpath('..')zntpath.realpath('../..')z&ntpath.realpath('/'.join(['..'] * 50))rr!zntpath.realpath('..\..')z&ntpath.realpath('\'.join(['..'] * 50)))rrXrrYr2�dirnamerErZr
r
r�test_realpath_pardir�s����zTestNtpath.test_realpath_pardirzneed _getfinalpathnamecCs�t�tj�}t|d���|�tj|�|�tj|d�t�	||d�|�
t�|d�|�|�
t�t�|d��t�|��dS�N�wb�1)
r�abspathr�TESTFN�open�close�
addCleanup�unlinkr�symlinkr6�realpathr)�r5�ABSTFNr
r
r�test_realpath_basics�zTestNtpath.test_realpath_basiccCsZt�tj�}t�|d|�|�tj|�|jt	tj
|dd�|jt	tj
|ddd�dS)NraT��strict�2)rrbrrcrrhrfrg�assertRaises�FileNotFoundErrorrirjr
r
r�test_realpath_stricts
zTestNtpath.test_realpath_strictcCsjt�tj�}t|d���|�tj|�|�tj|d�t�	|t�
|d��|�t�|d�|�dSr_)
rrbrrcrdrerfrgrrh�relpathr6rirjr
r
r�test_realpath_relativesz!TestNtpath.test_realpath_relativecCsvt�tj�}t�|�|�tj|�t�|���t�d�t�	d�t�
dd�t�
dd�t�	d�t�
dd�t�
dd�t�
d	d
�t�
dd�t�
d
d�t�
|dd�t�
dd�|�t�d�|d�|�t�d�|d�|�t�d
�|d�|�t�d�|d�|�t�d�|d�|�t�d�|d�|�t�d�|d�|�t�d�|d�|�t�d�t�
|d��|�t�d�t�
|d��|�t�d�t�
|d��|�t�d�t�
|d��|�t�d�t�
|d��|�t�d �t�
|d��|�t�d!�t�
|d��|�t�d"�t�
|d��Wd�dS1�s4wYdS)#NZsubdirrT�	recursiverS�parentr5�missing�brokenz
broken\barZbroken1zself\self\brokenZbroken2z"subdir\parent\subdir\parent\brokenZbroken3z\brokenZbroken4zrecursive\..\brokenZbroken5z\missingz
broken\fooz\missing\fooz\broken\barzbroken1\bazz\broken\bar\bazz\self\self\missingz$\subdir\parent\subdir\parent\missingsbrokens
broken\foosbroken1sbroken1\bazsbroken2sbroken3sbroken4sbroken5)rrbrrcr�mkdirrf�rmtree�
change_cwd�chdirrhr6rir)rjr
r
r�test_realpath_broken_symlinks&s�



����������������$�z(TestNtpath.test_realpath_broken_symlinkscCsNt�tj�}|�tj|�|�tj|d�|�tj|d�|�tj|d�|�tj|d�|�tj|d�t�||�|�t�	|�|�t�|d|d�t�|d|d�|d|df}|�
t�	|d�|�|�
t�	|d�|�|�
t�	|d�dd�|D��|�t�	|d	�t�|��|�t�	|d
�t�|�d�t�|d|d�|�t�	|d
t�|�d�|d�|�
t�	|d
t�|�d�|�t�t�|�d|d�|�t�	|d�|d�t�dt�t�|��dt�|�d|d�|�t�	|d�|d�|�t�	t�|��|�dS)NrarorQ�crN�1\xcss�|]	}t�|d�VqdS)rPN)r�join)r�rr
r
rrws�z9TestNtpath.test_realpath_symlink_loops.<locals>.<genexpr>�1\..�1\..\xz\xrP�1\..\�a\b�..\r!)
rrbrrcrfrgrrhr6rir7r]�basename)r5rkr[r
r
r�test_realpath_symlink_loops_sf�������������z&TestNtpath.test_realpath_symlink_loopscCs6t�tj�}|�tj|�|�tj|d�|�tj|d�|�tj|d�|�tj|d�|�tj|d�t�||�|jt	tj
|dd�t�|d|d�t�|d|d�|jt	tj
|ddd�|jt	tj
|ddd�|jt	tj
|ddd�|�tj
|d	dd�t�|��|jt	tj
|d
dd�t�|d|d�|jt	tj
|dt�
|�ddd�|jt	tj
|dt�
|�ddd�t�t�
|�d
|d�|jt	tj
|ddd�t�dt�
t�|��dt�
|�d|d�|jt	tj
|ddd�|jt	tj
t�
|�dd�dS)NrarorQr~rNTrmrr�r�rPr�r�r�r!)rrbrrcrfrgrrhrpr	rir6r]r�rjr
r
r�"test_realpath_symlink_loops_strict�sZ����
�����
�z-TestNtpath.test_realpath_symlink_loops_strictcCst�tj�}|�tj|d�|�tjd|d�|�tj|d�|�tj|d�t|dd��
}|�d�Wd�n1sCwYt�	|d|d�td|dd��
}|�d�Wd�n1skwYt�	d|d|d�|�
t�|d�|d�|�
t�|d�d|d�tt�|d�d	��}|�|�
�d�Wd�n1s�wYtt�|d�d	��}|�|�
�d�Wd�n1s�wY|�
t�d|d�d|d�|�
t�d|d�d|d�dS)
N�3z\\?\z3.Z3linkz3.linkr`�0�1�rb)rrbrrcrfrgrd�writerrhr6rir4�read)r5rk�fr
r
r�test_realpath_symlink_prefix�s>���
���
�
�z'TestNtpath.test_realpath_symlink_prefixcCstdd�dS)Nzntpath.realpath('NUL')rVr?r@r
r
r�test_realpath_nul�szTestNtpath.test_realpath_nulzneed _getshortpathnamecCsrt�tj�}t�|�t�|�t�|�|�tj|�t�	|d�}t�|�t
|�}t�	|d�}t�	|d�}t|d��
}|�d�Wd�n1sLwY|�
|t�|��t�|��|�
|t�d��Wd�n1sswYt�|����|�
|t�d��Wd�n1s�wYt�|��|�
|t�d��Wd�dS1s�wYdS)NZMyVeryLongDirectoryNamezfile.txtr`scontent)rrbrrcrgrzrryrfr�rrdr�r6rir{�lower)r5rkZ
test_dir_longZtest_dir_shortZtest_file_longZtest_file_shortr�r
r
r�test_realpath_cwd�s.



���"�zTestNtpath.test_realpath_cwdcCst���x}|��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'�Wd�dS1swYdS)(NrGr<Zbaz1z{fooZbaz2z{foo}zntpath.expandvars("foo")zntpath.expandvars("$foo bar")zbar barzntpath.expandvars("${foo}bar")Zbarbarzntpath.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�clearr2�r5�envr
r
r�test_expandvars�s2


















"�zTestNtpath.test_expandvarszneed os_helper.FS_NONASCIIcCs�dd�}t���l}|��tj}||d<d|||<|dd|�|d|d|�|dd	|�|d
|d|�|dd
|�|d|d|�|dd|�|d�|�d|�|dd	|�|d�|�d|�Wd�dS1swwYdS)NcSstd||�dS)Nzntpath.expandvars(%r)r?)�valuer[r
r
r�check�z2TestNtpath.test_expandvars_nonascii.<locals>.check�spamZhamz	$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)rr�r��FS_NONASCIIr
)r5r�r�Znonasciir
r
r�test_expandvars_nonasciis"
"�z#TestNtpath.test_expandvars_nonasciicCsDtdd�t����}|��tdd�d|d<d|d<d	|d
<tdd�tdd
�|d=tdd�tdd�|��d
|d<d	|d
<tdd�tdd
�tdd�tdd�tdd�tdd�|��d|d<d
|d<d	|d
<tdd�tdd
�|��d
|d<d|d
<tdd�tdd
�Wd�dS1s�wYdS)Nzntpath.expanduser("test")�testzntpath.expanduser("~test")z~test�C:\�	HOMEDRIVEz
Users\eric�HOMEPATHZeric�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:\�HOMEZidle)r2rr�r�r�r
r
r�test_expanduser+sR








����


"�zTestNtpath.test_expanduserzabspath requires 'nt' modulecCs~tdd�t�tj��*}td|�td|d�td|d�t�|�\}}td|d	�Wd�dS1s8wYdS)
Nzntpath.abspath("C:\")r�zntpath.abspath("")zntpath.abspath(" ")z\ zntpath.abspath("?")z\?zntpath.abspath("/abc/")z\abc)r2r�temp_cwdrcrrE)r5�cwd_dir�drive�_r
r
r�test_abspath\s

"�zTestNtpath.test_abspathcCstdd�tdd�tdd�tdd�t�tj��}t�|�}tdd	|d
�tdd	|d�Wd�n1s<wYtd
d�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�tdd�td d�td!d�td"d�td#d�dS)$Nzntpath.relpath("a")rNz#ntpath.relpath(ntpath.abspath("a"))zntpath.relpath("a/b")r�zntpath.relpath("../a/b")z..\a\bzntpath.relpath("a", "../b")r�rOzntpath.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")rTz(ntpath.relpath("/foo/bar/bat", "/x/y/z")z..\..\..\foo\bar\batz*ntpath.relpath("/foo/bar/bat", "/foo/bar")Zbatz#ntpath.relpath("/foo/bar/bat", "/")zfoo\bar\batz#ntpath.relpath("/", "/foo/bar/bat")rUz$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"))r2rr�rcrr�)r5r�Z
currentdirr
r
r�test_relpathfs.




�












zTestNtpath.test_relpathcsZdd�}�fdd�}��ttjg�|tddg�|tddg�|tddg�|tddg�|dgd�|ddgd�|d	dgd�|d	d	gd�|d
dgd�|dd
gd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|d	dgd�|ddgd�|ddgd�|ddgd�|tddg�|dgd�|ddgd�|ddgd�|ddgd�|ddgd�|dd gd�|gd!�d�|gd"�d�|d#d$gd%�|dgd�|dd&gd�|tdd'g���ttjd(dg���ttjd(d)g���ttjd*dg���ttjdd+g���ttjdd,g���ttjdd+g�dS)-NcSstd|�dd�|�dS)Nzntpath.commonpath(%r)r"r!)r2r')�pathsr[r
r
rr�s�z)TestNtpath.test_commonpath.<locals>.checkcs.��|tj|���|tjdd�|D��dS)NcSsg|]}t�|��qSr
)rr)rr
r
r�
<listcomp>�szCTestNtpath.test_commonpath.<locals>.check_error.<locals>.<listcomp>)rpr�
commonpath)�excr�r@r
r�check_error�s
�z/TestNtpath.test_commonpath.<locals>.check_errorzC:\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��alotr>�and\jam�and\spam�andzand\\jamz
and\spam\\z	and\.\jamz
.\and\spam)r�r�r�)r�r�r�z	C:and\jamz
C:and\spamzC:andz	spam\alotz
\spam\alotsC:\Program FileszProgram Files\Foos
Program FilessC:\Program Files\FoosProgram Files\Foo)rp�
ValueErrorrr��	TypeError)r5r�r�r
r@r�test_commonpath~s����������
�
�
�
�
�
�zTestNtpath.test_commonpathc
Cs�t��^}t��B}|�t�|��|����|�t�|��|����tjdkrB|�t	��t�dd�Wd�n1s=wYWd�n1sLwYWd�dSWd�dS1sdwYdS)N�win32���)
r�
assertTruer�sameopenfile�fileno�assertFalse�sys�platformrpr	)r5Ztf1Ztf2r
r
r�test_sameopenfile�s
��P�zTestNtpath.test_sameopenfilecCs�|�t�d��|�t�d��|�t�d��|�t�d��|�t�d��|�t�d��|�t�d��|�t�d��|�t�d	��|�t�d
��|�t�d��|�t�d��t���}|�t�|��Wd�n1swwYtjd
kr�t�tj	�\}}t�
t�tj	���|�t�|����|�t�|�
���Wd�n1s�wY|�t�d��|�t�d��|�t�d��|�t�d��dSdS)NrHr�rIzC:/z\\.\c:\z\\.\C:\sc:\sC:\sc:/sC:/s\\.\c:\s\\.\C:\r�z\\localhost\c$z\\localhost\c$\s\\localhost\c$s\\localhost\c$\)r�r�ismountrZtemp_dirr�r�r�rE�
executabler{r]r��upper)r5�dr�rr
r
r�test_ismount�s4
�
��zTestNtpath.test_ismountcCs|�|��|���dS)z<Assert that two strings are equal ignoring case differences.N)r4r�)r5�s1�s2r
r
r�
assertEqualCI�szTestNtpath.assertEqualCIzOS helpers require 'nt' modulecCst�tj�}|t�|�fD]}t�|�}t�|�d}t�|�d}|�	||�q
t�
tj�\}}|�|d�|�|d�t�
tj�
��\}}	|�||�|�|	d�tjtjfD]*}t�|�}
|�|
t�|�t|
�d�t�|�
��}|�|t�|�t|�d�qYdS)Nr)�nt�_getfinalpathnamer�r�rr)�_getvolumepathnamerrEr�Z
_getdiskusage�exec_prefixZ
assertGreaterr+r4�prefixZassertIsInstancer�lenr)r5r�rZvolume_path�
path_driveZvolume_path_driveZcap�freeZb_capZb_freeZ
final_pathZb_final_pathr
r
r�test_nt_helpers�s(

�zTestNtpath.test_nt_helpersN)'r8r9r:rArFrJrLrMrRrWr\r^rZskip_unless_symlink�unittestZ
skipUnless�HAVE_GETFINALPATHNAMErlrrrtr}r�r�r�r��HAVE_GETSHORTPATHNAMEr�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr;WsbA

	
	
7
-
*

 




1
	E
#
r;c@seZdZeZdgZdS)�NtCommonTestrsN)r8r9r:rZ
pathmoduleZ
attributesr
r
r
rr�s
r�c@s�eZdZeZdd�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+S),�
PathLikeTestscCsbtj|_ttj�|_|�tj|j�t|jdd��}|�d�Wd�dS1s*wYdS)N�xbrstest_ntpath.PathLikeTests)	rrc�	file_namer�	file_pathrfrgrdr�)r5�filer
r
r�setUps"�zPathLikeTests.setUpcCs|�||j�||j��dSr)r6r�r�)r5�funcr
r
r�_check_function%szPathLikeTests._check_functioncC�|�|jj�dSr)r�rrr@r
r
r�test_path_normcase(r�z PathLikeTests.test_path_normcasecCr�r)r�r�isabsr@r
r
r�test_path_isabs+r�zPathLikeTests.test_path_isabscCs,|�|j�dtd�d�|j�ddd��dS)NrN�br~)r4rr�rr@r
r
r�test_path_join.s�zPathLikeTests.test_path_joincCr�r)r�r�splitr@r
r
r�test_path_split2r�zPathLikeTests.test_path_splitcCr�r)r�r�splitextr@r
r
r�test_path_splitext5r�z PathLikeTests.test_path_splitextcCr�r)r�rrEr@r
r
r�test_path_splitdrive8r�z"PathLikeTests.test_path_splitdrivecCr�r)r�rr�r@r
r
r�test_path_basename;r�z PathLikeTests.test_path_basenamecCr�r)r�rr]r@r
r
r�test_path_dirname>r�zPathLikeTests.test_path_dirnamecCr�r)r�r�islinkr@r
r
r�test_path_islinkAr�zPathLikeTests.test_path_islinkcCr�r)r�r�lexistsr@r
r
r�test_path_lexistsDr�zPathLikeTests.test_path_lexistscCr�r)r�rr�r@r
r
r�test_path_ismountGr�zPathLikeTests.test_path_ismountcCr�r)r�r�
expanduserr@r
r
r�test_path_expanduserJr�z"PathLikeTests.test_path_expandusercCr�r)r�r�
expandvarsr@r
r
r�test_path_expandvarsMr�z"PathLikeTests.test_path_expandvarscCr�r)r�rrXr@r
r
r�test_path_normpathPr�z PathLikeTests.test_path_normpathcCr�r)r�rrbr@r
r
r�test_path_abspathSr�zPathLikeTests.test_path_abspathcCr�r)r�rrir@r
r
r�test_path_realpathVr�z PathLikeTests.test_path_realpathcCr�r)r�rrsr@r
r
r�test_path_relpathYr�zPathLikeTests.test_path_relpathcCs&|j�|j|jg�}|�||j�dSr)rr�r�r�r6)r5Zcommon_pathr
r
r�test_path_commonpath\sz"PathLikeTests.test_path_commonpathcCr�r)r�r�isdirr@r
r
r�test_path_isdir`r�zPathLikeTests.test_path_isdirN)r8r9r:rrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr�s.r��__main__) rrr�r�r,Ztest.supportrrZtest.support.os_helperrr�r�tempfilerr��ImportErrorr��AttributeErrorr�rr�rr r2ZTestCaser3r;Z
CommonTestr�r�r8�mainr
r
r
r�<module>sT�
��
CJ�
© 2025 GrazzMean