Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_posixpath.cpython-34.pyo

�
f f�[�
@s'ddlZddlZddlZddlZddlZddlZddlmZmZmZm	Z	ddl
mZmZyddl
Z
Wnek
r�dZ
YnXeej�Zdd�Zdd�ZGdd	�d	ej�ZGd
d�dejej�Zedkr#ej�ndS)
�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/python34/lib64/python3.4/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�Zdd�Zejej�d�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(dS)@�
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�d}|jt|��tjdd�WdQX|jt|��tjdd�WdQX|jt��}tjdd�WdQX|j|jjd|�dS)Nz.Can't mix strings and bytes in path componentssbytes�strr)ZassertRaisesRegex�	TypeErrorr!r"�assertRaisesZassertNotEqualZ	exception�args)r�errmsg�cmrrr�test_join_errors<szPosixPathTest.test_join_errorscCs�|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+�bar)r,r)rr-)r.r-)r/r7)r0r1)r2r3)r3r4)r5r4)r6r1)r r!�split)rrrr�
test_splitHszPosixPathTest.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�ASCIIr2sabc/sabc.def/s	/abc.def/r3)r r!�splitext�bytes)r�path�filenameZextrrr�splitextTestUs0'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........)r?)rrrr�
test_splitextqszPosixPathTest.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/barr3r2s/foos/foo/barsfoo/bar)�assertIsr!�isabs)rrrr�
test_isabsszPosixPathTest.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/barsbarr2r3sfoos////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/foor2sfoor3s////foos////s
//foo//bars//foo)r r!r)rrrr�test_dirname�szPosixPathTest.test_dirnamec
Css|jtjtjd�d�|jtjtjd�d�ttjdd�}z�|jd�|j�|jtjtjd�d�tj	�rQt
jtjdtjd�|jtjtjd�d�t
jtjd�|jtjtjd�d�|jtj
tjd�d�|jtjtjd�d�nWd|j�sn|j�nXdS)NrFr�wbsfooT)rBr!�islinkrr�lexists�open�write�close�can_symlinkr�symlink�remove�exists)r�frrr�test_islink�s   

    'zPosixPathTest.test_islinkc
CsY|jtjd�d�tj��.tjdt�|jtjd�d�WdQXdS)Nr,T�ignorer2)rBr!�ismount�warnings�catch_warnings�simplefilter�DeprecationWarning)rrrr�test_ismount�s
zPosixPathTest.test_ismountcCsU|jtjt�d�z*tjt�|jtjt�d�Wdtt�XdS)NF)rBr!rTr	r�mkdirr)rrrr�test_ismount_non_existent�s

z'PosixPathTest.test_ismount_non_existentzTest requires symlink supportcCsBz-tjdt�|jtjt�d�Wdtjt�XdS)Nr,F)rrNr	rBr!rTr)rrrr�test_ismount_symlinks�sz#PosixPathTest.test_ismount_symlinksNzTest requires posix modulecCsLtj}dd�}z&|t_|jtjt�d�Wd|t_XdS)NcSsRd}d}|tkr'd}d}ntjd||dddddddf
�S)Nr�)r	�posix�stat_result)r=�st_ino�st_devrrr�
fake_lstat�s	z?PosixPathTest.test_ismount_different_device.<locals>.fake_lstatT)r�lstatrBr!rTr	)rZ
save_lstatrbrrr�test_ismount_different_device�s		z+PosixPathTest.test_ismount_different_devicecCs�|jtjd�d�|jtjd�d�yddl}Wntk
rVYn�X|jtjd�t�|jtjd�t�tjd�dkr�|jtjd�dtjd��|jtjd�d	tjd��n|jtjd
�t�|jtjd�t�|jtjd�t�|jtjd
�t�tj	���}d|d<|jtjd�d�|jtjd�d�|d=|j
tj��j
}|jtjd�|jd��WdQXdS)Nr-sfoorz~/s~/�~r,�~r2z~root/z~foo/s~root/s~foo/�HOMEz~/fooz/foo)r r!�
expanduser�pwd�ImportErrorZassertIsInstancer$r<rZEnvironmentVarGuard�getpwuidr�getuid�pw_dir�rstrip)rri�env�homerrr�test_expanduser�s4

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)Nrr@r,z//z///z///foo/.//bar//z/foo/barz///foo/.//bar//.//..//.//bazz/foo/bazz///..//./foo/.//barr3�.r2s//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)Nr@z./.r,�drrs./.r2)r rr�getcwdr"�getcwdb)rrrr�test_realpath_curdirs,z"PosixPathTest.test_realpath_curdircCs�|jtd�ttj���|jtd�tttj����|jtdjdgd��d�|jtd�ttj���|jtd�tttj����|jtdjdgd��d�dS)Nz..z../..r,rus..s../..r2)r rrrrvr"rw)rrrr�test_realpath_pardir%s"(&"(z"PosixPathTest.test_realpath_pardirrNzMissing symlink implementationcCsGz2tjtdt�|jtt�td�Wdtjt�XdS)Nr)rrNr	r rrr)rrrr�test_realpath_basic/sz!PosixPathTest.test_realpath_basiccCsPz;tjtjtd�t�|jtt�td�Wdtjt�XdS)Nr)	rrNr!�relpathr	r rrr)rrrr�test_realpath_relative:sz$PosixPathTest.test_realpath_relativecCs�z0tjtt�|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�WdQXWdtj	t�tj	td�tj	td�tj	td�tj	td�tj	td�XdS)Nrrz1/xz1/..z1/../xz/x�x�yz1/../za/b�az../r,�c)
rrNr	r rrrr�
change_cwdr)rrrr�test_realpath_symlink_loopsDs8 $!!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)
rrZr	rNrr rrrr)rrrr�(test_realpath_repeated_indirect_symlinksns
z6PosixPathTest.test_realpath_repeated_indirect_symlinkscCsd}z�tjt�xDt|�D]6}tjdjd|gd�td|d�q#Wtjdtd�|jttd|�t�tj	t��|jtd|�t�WdQXWdx-t|d�D]}tj
td|�q�Wtt�XdS)N�
r,z%dz/%dr]r@z/0)rrZr	�rangerNr"r rrr�rr)rZdepth�irrr�test_realpath_deep_recursion}s
4$z*PosixPathTest.test_realpath_deep_recursioncCs�zntjt�tjtd�tjtdtd�tjtd��|jtd�td�WdQXWdtjtd�t	td�t	t�XdS)Nz/yz/krz/y/a)
rrZr	rNrr�r 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�WdQXWdtj
td�ttd�ttd�tt�XdS)Nz/kz/k/yz/link-yz
/link-y/..)rrZr	rNr rrr�rrrr)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�WdQXWdtj
td�ttd�tt�XdS)Nz/k�linkzlink/k)rrZr	rNrr�rrr 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>r]rrza/bz../a/bz../bz../z/az../cz/a/bzb/cz../../ar@z/foo/bar/batz/x/y/zz../../../foo/bar/batz/foo/barZbatr,zfoo/bar/batz../../..z/xz../foo/bar/batz
../../../x���)
rrvr=r8r&�
ValueErrorr!r{r 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>r]r3�asa/bs../a/bs../bs../s/as../cs/a/bsb/cs../../arrs/foo/bar/bats/x/y/zs../../../foo/bar/bats/foo/barsbatr2sfoo/bar/bats../../..s/xs../foo/bar/bats
../../../xsbytesr$r�)rrwr=r8r&r�r!r{r rr%)rZreal_getcwdbr�rrr�test_relpath_bytes�s4"z PosixPathTest.test_relpath_bytes))�__name__�
__module__�__qualname__rrr#r*r9r?rArDrErFrRrYr[r
Z
skipUnlessrrMr\ZskipIfr^rdrqrtrrxry�hasattrrrzr|r�r�r�r�r�r�r�r�rrrrr$s\



		$#

	(
rc@s(eZdZeZddddgZdS)�PosixCommonTestr{�samefile�sameopenfile�samestatN)r�r�r�r!Z
pathmoduleZ
attributesrrrrr�sr��__main__)�	itertoolsrr!�sysr
rUrrrrrrrr^rjrr	rrZTestCaserZ
CommonTestr�r��mainrrrr�<module>s&"

��