Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_posixpath.cpython-35.opt-1.pyc



��Yfh�
@sddlZddlZddlZddlZddlmZmZmZmZddlm	Z	m
Z
yddlZWnek
r�dZYnXee	j
�Zdd�Zdd�ZGdd	�d	ej�ZGd
d�de
jej�Zedkrej�dS)
�N)�realpath�abspath�dirname�basename)�support�test_genericpathcCs/dtk}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)�testZfound_backslash�msg�r�8/opt/alt/python35/lib64/python3.5/test/test_posixpath.py�!skip_if_ABSTFN_contains_backslashsrcCs*ytj|�Wntk
r%YnXdS)N)�os�rmdir�OSError)rrrr�
safe_rmdirs
rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zejej�d�dd��Zejedkd�dd��Zejedkd�d d!��Zd"d#�Zd$d%�Zed&d'��Zed(d)��Zejeed*�d+�ed,d-���Zejeed*�d+�ed.d/���Z ejeed*�d+�ed0d1���Z!ejeed*�d+�ed2d3���Z"ejeed*�d+�ed4d5���Z#ejeed*�d+�ed6d7���Z$ejeed*�d+�ed8d9���Z%ejeed*�d+�ed:d;���Z&d<d=�Z'd>d?�Z(d@dA�Z)dS)B�
PosixPathTestcCs|j�dS)N)�tearDown)�selfrrr�setUp$szPosixPathTest.setUpcCsCx<dddgD]+}tjtj|�ttj|�qWdS)N��1�2)r�unlink�TESTFNr)r�suffixrrrr'szPosixPathTest.tearDowncCs�|jtjdddd�d�|jtjddd�d�|jtjddd	�d
�|jtjddd
d�d�|jtjddd�d�|jtjddd�d�dS)Nz/foo�barz/barZbazz/bar/bazz/foo/bar/bazz/foo/zbar/zbaz/z
/foo/bar/baz/s/foosbars/barsbazs/bar/bazs/foo/bar/bazs/foo/sbar/sbaz/s
/foo/bar/baz/)�assertEqual�	posixpath�join)rrrr�	test_join,szPosixPathTest.test_joincCs�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd	�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�dS)Nz/foo/bar�/foor�/r�fooz////foo�////z
//foo//bar�//foos/foo/bar�/foo�bar�/��foos////foo�////s
//foo//bar�//foo)r$r)r%r)rr&)r'r&)r(r)r)r*)r+r,)r,r-)r.r-)r/r*)r r!�split)rrrr�
test_split:szPosixPathTest.test_splitcCs�|jtj|�||f�|jtjd|�d||f�|jtjd|�d||f�|jtjd|�d||f�|jtjd|�d||f�|jtj|d�||ddf�t|d�}t|d�}t|d�}|jtj|�||f�|jtjd|�d||f�|jtjd|�d||f�|jtjd	|�d	||f�|jtjd
|�d
||f�|jtj|d�||ddf�dS)Nr%zabc/zabc.def/z	/abc.def/r�ASCIIr+sabc/sabc.def/s	/abc.def/r,)r r!�splitext�bytes)r�path�filenameZextrrr�splitextTestGs0'zPosixPathTest.splitextTestcCs�|jddd�|jddd�|jddd�|jdd	d
�|jddd�|jd
d
d�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�dS)Nzfoo.barr&z.barzfoo.boo.barzfoo.boozfoo.boo.biff.barzfoo.boo.biffz.csh.rcz.cshz.rcZnodotsrz.cshrcz...manydotsz...manydots.extz.ext�.z..z........)r7)rrrr�
test_splitextcszPosixPathTest.test_splitextcCs�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd	�d�|jtjd
�d�|jtjd�d�|jtjd�d�dS)
NrFr%Tz/fooz/foo/barzfoo/barr,r+s/foos/foo/barsfoo/bar)�assertIsr!�isabs)rrrr�
test_isabsqszPosixPathTest.test_isabscCs�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d	�|jtjd
�d�|jtjd�d�|jtjd
�d�|jtjd�d	�dS)Nz/foo/barrr%rr&z////fooz
//foo//bars/foo/barsbarr+r,sfoos////foos
//foo//bar)r r!r)rrrr�
test_basename~szPosixPathTest.test_basenamecCs�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d	�|jtjd
�d�|jtjd�d�|jtjd
�d�|jtjd�d�|jtjd�d�dS)Nz/foo/barz/foor%r&rz////fooz////z
//foo//barz//foos/foo/bars/foor+sfoor,s////foos////s
//foo//bars//foo)r r!r)rrrr�test_dirname�szPosixPathTest.test_dirnamec
Csm|jtjtjd�d�|jtjtjd�d�ttjdd�}z�|jd�|j�|jtjtjd�d�tj	�rNt
jtjdtjd�|jtjtjd�d�t
jtjd�|jtjtjd�d�|jtj
tjd�d�|jtjtjd�d�Wd|j�sh|j�XdS)NrFr�wbsfooT)r:r!�islinkrr�lexists�open�write�close�can_symlinkr�symlink�remove�exists)r�frrr�test_islink�s   

    $zPosixPathTest.test_islinkc
CsZ|jtjd�d�tj��.tjdt�|jtjd�d�WdQRXdS)Nr%T�ignorer+)r:r!�ismount�warnings�catch_warnings�simplefilter�DeprecationWarning)rrrr�test_ismount�s
zPosixPathTest.test_ismountcCsU|jtjt�d�z*tjt�|jtjt�d�Wdtt�XdS)NF)r:r!rLr	r�mkdirr)rrrr�test_ismount_non_existent�s

z'PosixPathTest.test_ismount_non_existentzTest requires symlink supportcCsBz-tjdt�|jtjt�d�Wdtjt�XdS)Nr%F)rrFr	r:r!rLr)rrrr�test_ismount_symlinks�sz#PosixPathTest.test_ismount_symlinksNzTest requires posix modulecCsLtj}dd�}z&|t_|jtjt�d�Wd|t_XdS)NcSsOd}d}|tkr$d}d}tjd||dddddddf
�S)Nr�)r	�posix�stat_result)r5�st_ino�st_devrrr�
fake_lstat�sz?PosixPathTest.test_ismount_different_device.<locals>.fake_lstatT)r�lstatr:r!rLr	)r�
save_lstatrZrrr�test_ismount_different_device�s		z+PosixPathTest.test_ismount_different_devicecCsLtj}dd�}z&|t_|jtjt�d�Wd|t_XdS)NcSsvd}d}|jt�r3|tkr3td��|tkrKd}d}tjd||dddddddf
�S)Nrz!Fake [Errno 13] Permission deniedrU)�
startswithr	rrVrW)r5rXrYrrrrZ�szEPosixPathTest.test_ismount_directory_not_readable.<locals>.fake_lstatT)rr[r:r!rLr	)rr\rZrrr�#test_ismount_directory_not_readable�s		z1PosixPathTest.test_ismount_directory_not_readablecCsK|jtjd�d�|jtjd�d�tj���}x}dD]u}|jd|��Z||d<|jtjd	�d�|jtjd
�d�|jtjd�d�WdQRXqHWWdQRXyd
dl}Wntk
r�Yn[X|jtjd
�t	�|jtjd�t
�tjd	�dkr�|jtjd	�dtjd
��|jtjd�dtjd��|jtjd�t	�|jtjd�t	�|jtjd�t
�|jtjd�t
�tj��T}|d=|jtj
��j}|jd�p$d}|jtjd	�|�WdQRXdS)Nr&sfoor%r�//�///�home�HOME�~z~/z~/fooz/foors~/�~r+z~root/z~foo/s~root/s~foo/)r%rr`ra)r r!�
expanduserrZEnvironmentVarGuardZsubTest�pwd�ImportErrorZassertIsInstance�strr4�getpwuidr�getuid�pw_dir�rstrip)r�envrbrgrrr�test_expanduser�s>

+
zPosixPathTest.test_expandusercCsb|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d	�|jtjd
�d�|jtjd�d�|jtjd
�d
�|jtjd�d�|jtjd�d
�|jtjd�d�|jtjd�d�|jtjd�d�dS)Nrr8r%z//z///z///foo/.//bar//z/foo/barz///foo/.//bar//.//..//.//bazz/foo/bazz///..//./foo/.//barr,�.r+s//s///s///foo/.//bar//s/foo/bars///foo/.//bar//.//..//.//bazs/foo/bazs///..//./foo/.//bar)r r!�normpath)rrrr�
test_normpaths"zPosixPathTest.test_normpathcCs�|jtd�tj��|jtd�tj��|jtdjdgd��tj��|jtd�tj��|jtd�tj��|jtdjdgd��tj��dS)Nr8z./.r%�drps./.r+)r rr�getcwdr"�getcwdb)rrrr�test_realpath_curdir(s,z"PosixPathTest.test_realpath_curdircCs�|jtd�ttj���|jtd�tttj����|jtdjdgd��d�|jtd�ttj���|jtd�tttj����|jtdjdgd��d�dS)Nz..z../..r%rss..s../..r+)r rrrrtr"ru)rrrr�test_realpath_pardir2s"(&"(z"PosixPathTest.test_realpath_pardirrFzMissing symlink implementationcCsGz2tjtdt�|jtt�td�Wdtjt�XdS)Nr)rrFr	r rrr)rrrr�test_realpath_basic<sz!PosixPathTest.test_realpath_basiccCsPz;tjtjtd�t�|jtt�td�Wdtjt�XdS)Nr)	rrFr!�relpathr	r rrr)rrrr�test_realpath_relativeGsz$PosixPathTest.test_realpath_relativecCs�z1tjtt�|jtt�t�tjtdtd�tjtdtd�|jttd�td�|jttd�td�|jttd�td�|jttd�tt��|jttd�tt�d�tjtdtd�|jttd	tt�d�td�|jttd	tt�d�td�tjtt�d
td�|jttd�td
�tjdttt��d
tt�dtd�|jttd�td�tjtt���!|jttt��t�WdQRXWdtj	t�tj	td�tj	td�tj	td�tj	td�tj	td�XdS)Nrrz1/xz1/..z1/../xz/x�x�yz1/../za/b�az../r%�c)
rrFr	r rrrr�
change_cwdr)rrrr�test_realpath_symlink_loopsQs8 $!!0'
z)PosixPathTest.test_realpath_symlink_loopscCs�z]tjt�tjdtt�td�tjdtd�|jttd�t�Wdtjtd�tjtd�t	t�XdS)Nz../z/selfzself/self/selfz/link)
rrRr	rFrr rrrr)rrrr�(test_realpath_repeated_indirect_symlinks{s
z6PosixPathTest.test_realpath_repeated_indirect_symlinkscCsd}z�tjt�xDt|�D]6}tjdjd|gd�td|d�q#Wtjdtd�|jttd|�t�tj	t��|jtd|�t�WdQRXWdx-t|d�D]}tj
td|�q�Wtt�XdS)N�
r%z%dz/%drUr8z/0)rrRr	�rangerFr"r rrrrr)rZdepth�irrr�test_realpath_deep_recursion�s
4%z*PosixPathTest.test_realpath_deep_recursioncCs�zotjt�tjtd�tjtdtd�tjtd��|jtd�td�WdQRXWdtjtd�t	td�t	t�XdS)Nz/yz/kr}z/y/a)
rrRr	rFrrr rrr)rrrr�test_realpath_resolve_parents�s
%z+PosixPathTest.test_realpath_resolve_parentscCs�z�tjt�tjtd�tjtd�tjtdtd�|jttd�td�tjtt���)|jtt	t�d�td�WdQRXWdtj
td�ttd�ttd�tt�XdS)Nz/kz/k/yz/link-yz
/link-y/..)rrRr	rFr rrrrrrr)rrrr�(test_realpath_resolve_before_normalizing�s
z6PosixPathTest.test_realpath_resolve_before_normalizingcCs�z�tjt�tjtd�tjttd�tjtt���Itt�}|jt	|d�t�|jt	|d�td�WdQRXWdtj
td�ttd�tt�XdS)Nz/k�linkzlink/k)rrRr	rFrrrrr rrr)r�baserrr�test_realpath_resolve_first�s
)z)PosixPathTest.test_realpath_resolve_firstcCsItjdd�}t_ztjjtj��d}|jttjd�|jtjd�d�|jtjtj	d��d�|jtjd�d�|jtjd�d�|jtjdd�d	|d
�|jtjdd�d	|d�|jtjdd
�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjd
d
�d�|jtjdd�d�Wd|t_XdS)NcSsdS)Nz/home/user/barrrrrr�<lambda>�sz,PosixPathTest.test_relpath.<locals>.<lambda>rUrr}za/bz../a/bz../bz../z/az../cz/a/bzb/cz../../ar8z/foo/bar/batz/x/y/zz../../../foo/bar/batz/foo/barZbatr%zfoo/bar/batz../../..z/xz../foo/bar/batz
../../../x���)
rrtr5r0�assertRaises�
ValueErrorr!ryr r)rZreal_getcwd�curdirrrr�test_relpath�s."$ zPosixPathTest.test_relpathcCs{tjdd�}t_zQtjjtj��d}|jttjd�|jtjd�d�|jtjtj	d��d�|jtjd�d�|jtjd�d�|jtjdd�d	|d
�|jtjdd�d	|d�|jtjdd
�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjdd�d�|jtjd
d
�d�|jtjdd�d�|jt
tjdd�|jt
tjdd�Wd|t_XdS)NcSsdS)Ns/home/user/barrrrrrr��sz2PosixPathTest.test_relpath_bytes.<locals>.<lambda>rUr,�asa/bs../a/bs../bs../s/as../cs/a/bsb/cs../../arps/foo/bar/bats/x/y/zs../../../foo/bar/bats/foo/barsbatr+sfoo/bar/bats../../..s/xs../foo/bar/bats
../../../xsbytesrir�)rrur5r0r�r�r!ryr r�	TypeError)rZreal_getcwdbr�rrr�test_relpath_bytes�s4"z PosixPathTest.test_relpath_bytescs��fdd�}�fdd�}�jttjg�|tddg�|tddg�|dgd�|ddgd�|ddgd�|ddgd�|d	d
gd�|ddgd�|d
dgd
�|ddgd
�|ddgd�|ddgd�|ddgd�|ddgd�|dgd�|ddgd�|ddgd�|ddgd�|ddgd�|ddgd�|dddgd�|dddgd�|dgd�|ddgd�|tddg��jttjd dg��jttjd d!g��jttjd"dg��jttjdd#g��jttjdd$g��jttjd%d#g�dS)&NcsL�jtj|�|��jtjdd�|D��tj|��dS)NcSsg|]}tj|��qSr)r�fsencode)�.0�prrr�
<listcomp>s	z@PosixPathTest.test_commonpath.<locals>.check.<locals>.<listcomp>)r r!�
commonpathrr�)�pathsZexpected)rrr�checksz,PosixPathTest.test_commonpath.<locals>.checkcs=�j|tj|��j|tjdd�|D��dS)NcSsg|]}tj|��qSr)rr�)r�r�rrrr�#s	zFPosixPathTest.test_commonpath.<locals>.check_error.<locals>.<listcomp>)r�r!r�)�excr�)rrr�check_error sz2PosixPathTest.test_commonpath.<locals>.check_errorz/usrZusrz
/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/lib64ZspamZalotrzand/jamzand/spam�andzand//jamz
and/spam//z	and/./jamz
./and/spamz	spam/alotz
/spam/alots	/usr/lib/zusr/lib/python3susr/lib/s/usr/lib/python3susr/lib/python3zusr/lib/)r�r�r!r�r�)rr�r�r)rr�test_commonpathsP




zPosixPathTest.test_commonpath)*�__name__�
__module__�__qualname__rrr#r1r7r9r<r=r>rJrQrSr
Z
skipUnlessrrErTZskipIfrVr]r_rorrrrvrw�hasattrrrxrzr�r�r�r�r�r�r�r�r�rrrrr"s^



		$$(

	(
rc@s(eZdZeZddddgZdS)�PosixCommonTestry�samefile�sameopenfile�samestatN)r�r�r�r!Z
pathmoduleZ
attributesrrrrr�Rsr��__main__)rr!r
rMrrrrrrrrVrhrr	rrZTestCaserZ
CommonTestr�r��mainrrrr�<module>s$"

��2