Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/test/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/test/__pycache__/test_shutil.cpython-33.pyc

�
��fwc@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlmZmZddlmZmZmZmZmZmZmZmZmZmZmZmZddlZddlZddl
mZddlm
Z
m Z m!Z!m"Z"yddl#Z#e$Z%Wne&k
r�e'Z%YnXe
dZ(y"ddl)Z)ddl*Z*e$Z+Wne&k
r�e'Z+YnXyddl,Z,e$Z-Wne&k
red	�Z-YnXd
d�Z.dd
�Z/e'dd�Z0e'dd�Z1Gdd�dej2�Z3Gdd�dej2�Z4Gdd�dej2�Z5Gdd�dej2�Z6Gdd�dej2�Z7dd�Z8e9dkr�e8�ndS(iN(usupport(uTESTFN(u
splitdrive(ufind_executableuspawn(u
_make_tarballu
_make_zipfileumake_archiveuregister_archive_formatuunregister_archive_formatuget_archive_formatsuErroruunpack_archiveuregister_unpack_formatu
RegistryErroruunregister_unpack_formatuget_unpack_formats(uTESTFNucheck_warningsucaptured_stdoutu
requires_zlibu2uzipcOstttdd�d��dS(NuEXDEViuInvalid cross-device link(uOSErrorugetattruerrno(uargsukwargs((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_fake_rename1su_fake_renamecs%tj���fdd��}|S(Ncs4z#tj}tt_�||�SWd|t_XdS(N(uosurenameu_fake_rename(uargsukwargsubuiltin_rename(ufunc(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuwrap6s
		umock_rename.<locals>.wrap(u	functoolsuwraps(ufuncuwrap((ufuncu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyumock_rename5s!umock_renamec	CsYt|t�r$tjj|�}nt||r6dnd��}|j|�WdQXdS(u�Write *content* to a file located at *path*.

    If *path* is a tuple instead of a string, os.path.join will be used to
    make a path.  If *binary* is true, the file will be opened in binary
    mode.
    uwbuwN(u
isinstanceutupleuosupathujoinuopenuwrite(upathucontentubinaryufp((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
write_file@su
write_filecCsVt|t�r$tjj|�}nt||r6dnd��}|j�SWdQXdS(u�Return contents from a file located at *path*.

    If *path* is a tuple instead of a string, os.path.join will be used to
    make a path.  If *binary* is true, the file will be opened in binary
    mode.
    urburN(u
isinstanceutupleuosupathujoinuopenuread(upathubinaryufp((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu	read_fileLsu	read_filec
s�|EeZdZ�fdd�Z�fdd�Zdd�Zdd�Zejd	d
��Z	ejdd��Z
d
d�Zej
eed�d�ejejdd�dkd�ejeed�o�ej�dkd�dd����Zdd�Zdd�Zej
eed�d�ejdd ���Zej
eed!�d"�ejd#d$���Zejeed!�d%�ejd&d'���Zejd(d)��Zej
eed*�o�eed+�o�eed,�d-�d.d/��Zejd0d1��Zejejej
eed�oBej�dkd2�d3d4����Zejd5d6��Z ejd7d8��Z!ejd9d:��Z"ejd;d<��Z#d=d>�Z$d?d@�Z%dAdB�Z&ejdCdD��Z'dEdF�Z(dGdH�Z)ejej*dIkdJ�ej
eedK�dL�dMdN���Z+ejdOdP��Z,ejdQdR��Z-ej
eedS�dT�dUdV��Z.ej
eedS�dT�ejdWdX���Z/dYdZ�Z0ejd[d\��Z1d]d^�Z2ej
eed�d�d_d`��Z3ej
eed�d�ej
eeda�db�dcdd���Z4e5dedf��Z6dgdh�Z7didj�Z8e5ej
e9dk�o�e9dl�dm�dndo���Z:e5ej
e;dp�dqdr���Z<dsdt�Z=e5dudv��Z>e5ej
e?dw�dxdy���Z@dzd{�ZAd|d}�ZBd~d�ZCe5d�d���ZDd�d��ZEej
eeFd��d��d�d���ZGej
e?dw�ej
eed��d��d�d����ZHd�d��ZId�d��ZJd�d��ZK�S(�u
TestShutilcs tt|�j�g|_dS(N(usuperu
TestShutilusetUputempdirs(uself(u	__class__(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyusetUp[suTestShutil.setUpcsOtt|�j�x5|jrJ|jj�}tj|tjdk�qWdS(Nuntucygwin(untucygwin(	usuperu
TestShutilutearDownutempdirsupopushutilurmtreeuosuname(uselfud(u	__class__(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutearDown_suTestShutil.tearDowncCs tj�}|jj|�|S(ujCreate a temporary directory that will be cleaned up.

        Returns the path of the directory.
        (utempfileumkdtemputempdirsuappend(uselfud((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyumkdtempfsuTestShutil.mkdtempcCsz|j�}tjj|d�}tj|�ttjj|d�d�tj|�}|j|t�t	j
|�dS(Nukillmeusomefileufoo(umkdtempuosupathujoinumkdiru
write_fileufsencodeuassertIsInstanceubytesushutilurmtree(uselfutmpuvictim((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_rmtree_works_on_bytesos
u%TestShutil.test_rmtree_works_on_bytescs2|j�}tjj|d�}tj|�tjj|d�}tj||�|jttj	|�|j
tjj|��|j
tjj|��g��fdd�}tj	|d|�|j
t��d�|j�ddtjj�|j
�dd|�|j�dddt�dS(	Nudirulinkcs�j|�dS(N(uappend(uargs(uerrors(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuonerror�su8TestShutil.test_rmtree_fails_on_symlink.<locals>.onerroruonerroriii(umkdtempuosupathujoinumkdirusymlinkuassertRaisesuOSErrorushutilurmtreeu
assertTrueuexistsulexistsuassertEqualulenuassertIsuislinkuassertIsInstance(uselfutmpudir_ulinkuonerror((uerrorsu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_rmtree_fails_on_symlinkxs
u'TestShutil.test_rmtree_fails_on_symlinkc
Cs_|j�}tjj|d�}tjj|d�}tjj|d�}x$|||fD]}tj|�q[Wtjj|d�}t|d�tjj|d�}tj||�tjj|d�}tj||�tjj|d�}	tj||	�tj|�|j	tjj
|��|jtjj
|��|jtjj
|��dS(	Nudir1udir2udir3ufile1ufooulink1ulink2ulink3(umkdtempuosupathujoinumkdiru
write_fileusymlinkushutilurmtreeuassertFalseuexistsu
assertTrue(
uselfutmpudir1udir2udir3udufile1ulink1ulink2ulink3((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_rmtree_works_on_symlinks�s$

u(TestShutil.test_rmtree_works_on_symlinksc
s%tj�}|jttj|�tj|dd�|j�}t|dfd�t	j
j|d�}|jt��}tj|�WdQX|t	j
j|d�g}|j
|jj|�|jt	j
j|��tj|dd�|jt	j
j|��g��fdd�}tj|d|�|jt��d�|j�d	d	t	j�|j�d	d
|�|j�d	dd
t�|j
�d	dd
j|�|j�d
d	t	j�|j�d
d
|�|j�d
dd
t�|j
�d
dd
j|�dS(Nu
ignore_errorsutstfileuu*.*cs�j|�dS(N(uappend(uargs(uerrors(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuonerror�su.TestShutil.test_rmtree_errors.<locals>.onerroruonerroriiiT(utempfileumktempuassertRaisesuFileNotFoundErrorushutilurmtreeuTrueumkdtempu
write_fileuosupathujoinuNotADirectoryErroruassertInu	exceptionufilenameu
assertTrueuexistsuassertEqualulenuassertIsulistdiruassertIsInstanceurmdir(uselfufilenameutmpdirucmu
possible_argsuonerror((uerrorsu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_rmtree_errors�s2uTestShutil.test_rmtree_errorsuchmodurequires os.chmod()Niucygwinu2This test can't be run on Cygwin (issue #1071513).ugeteuidiu9This test can't be run reliably as root (issue #1076467).cCssd|_tjt�|jtjt�tjjtd�|_	tjjtd�|_
tj|j	�tj|j
�tj
t�j}tj
|j	�j}tj
|j
�j}t
jt
jB}tj|j	|�tj|j
|�tjt|�|jtjt|�|jtj|j	|�|jtj|j
|�tjtd|j�|j|jdd�dS(Niuaubuonerroriu1Expected call to onerror function did not happen.(u
errorStateuosumkdiruTESTFNu
addCleanupushutilurmtreeupathujoinuchild_file_pathuchild_dir_pathusupportucreate_empty_fileustatust_modeuS_IREADuS_IEXECuchmoducheck_args_to_onerroruassertEqual(uselfuold_dir_modeuold_child_file_modeuold_child_dir_modeunew_mode((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
test_on_error�s(	
uTestShutil.test_on_errorcCs�|jdkr�|tjkr4|j||j�nQ|tjkrY|j||j�n,|j|tj�|j	|t
|jg�|jt|dt
��|jd7_nF|j|tj�|j|t
�|jt|dt
��d|_dS(Niiii(u
errorStateuosuunlinkuassertEqualuchild_file_pathurmdiruchild_dir_pathuassertIsulistdiruassertInuTESTFNu
assertTrueu
issubclassuOSError(uselfufuncuarguexc((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyucheck_args_to_onerror�su TestShutil.check_args_to_onerrorcsfzUtj��fdd�}|t_tjt�ttdfd�tjt�Wd�t_XdS(Ncs&|tkrt��n
�|�SdS(N(uTESTFNuOSError(ufnuargsukwargs(u
orig_lstat(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuraisersuFTestShutil.test_rmtree_does_not_choke_on_failing_lstat.<locals>.raiserufoo(uosulstatumkdiruTESTFNu
write_fileushutilurmtree(uselfuraiser((u
orig_lstatu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu+test_rmtree_does_not_choke_on_failing_lstats		
u6TestShutil.test_rmtree_does_not_choke_on_failing_lstaturequires os.chmodcCs|j�}tjj|d�}tjj|d�}tjj|d�}tjj|d�}t|d�t|d�tj||�tj||�tj|tjtj	B�tj|tj
�|jtj|�jtj|�j�t
j||�|jtj|�jtj|�j�tjdkrtj|tj
�t
j||�|jtj|�jtj|�j�tj|tj
�t
j||�|jtj|�jtj|�j�tj|tj
�t
j||�|jtj|�jtj|�j�ndS(Nufooubarubazuquuxunt(umkdtempuosupathujoinu
write_fileusymlinkuchmodustatuS_IRWXUuS_IRWXGuS_IRWXOuassertNotEqualust_modeushutilucopymodeuassertEqualuname(uselfutmp_dirusrcudstusrc_linkudst_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copymode_follow_symlinkss0

((((u(TestShutil.test_copymode_follow_symlinksulchmodurequires os.lchmodcCs|j�}tjj|d�}tjj|d�}tjj|d�}tjj|d�}t|d�t|d�tj||�tj||�tj|tjtj	B�tj|tj�tj
|tjtj	B�tj
|tj�tj
||dd�|jtj|�jtj|�j�|jtj|�jtj|�j�tj
|tj�tj
||dd�|jtj|�jtj|�j�tj
|tj�tj
||dd�|jtj|�jtj|�j�dS(Nufooubarubazuquuxufollow_symlinksF(umkdtempuosupathujoinu
write_fileusymlinkuchmodustatuS_IRWXUuS_IRWXGulchmoduS_IRWXOushutilucopymodeuFalseuassertEqualulstatust_modeuassertNotEqual(uselfutmp_dirusrcudstusrc_linkudst_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu test_copymode_symlink_to_symlink1s.

((u+TestShutil.test_copymode_symlink_to_symlinku requires os.lchmod to be missingcCs�|j�}tjj|d�}tjj|d�}tjj|d�}tjj|d�}t|d�t|d�tj||�tj||�tj||dd�dS(Nufooubarubazuquuxufollow_symlinksF(	umkdtempuosupathujoinu
write_fileusymlinkushutilucopymodeuFalse(uselfutmp_dirusrcudstusrc_linkudst_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu*test_copymode_symlink_to_symlink_wo_lchmodOs

u5TestShutil.test_copymode_symlink_to_symlink_wo_lchmodc
Cs�|j�}tjj|d�}tjj|d�}tjj|d�}tjj|d�}t|d�tj|�}tj||j|jdf�t|d�|j	tj|�jtj|�j�tj
||�tj
||�ttd�rtj|tj
�nttd�rJttd�rJtj|tj�ntj|�}ttd�r�tj||d	d�|j	|jtj|�j�ntj||d	d�tj|�}tjtjkrx7dD],}	|jt||	�t||	�d�q�Wnttd�r9|j|j|j�nttd�rpt|d
�rp|j|j|j�ntj||d	d�|jttj|�jtj|�j�dk�dS(NufooubarubazuquxgE@ulchmodulchflagsu	UF_NODUMPufollow_symlinksust_atimeust_mtimeiust_flagsg�������?TF(ust_atimeust_mtime(umkdtempuosupathujoinu
write_fileustatuutimeust_atimeust_mtimeuassertNotEqualusymlinkuhasattrulchmoduS_IRWXOulchflagsu	UF_NODUMPulstatushutilucopystatuTrueust_modeuFalseusupports_follow_symlinksuassertLessEqualugetattruassertEqualust_flagsu
assertTrueuabs(
uselfutmp_dirusrcudstusrc_linkudst_linkusrc_statu
src_link_statu
dst_link_statuattr((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copystat_symlinks]sD

("
+u!TestShutil.test_copystat_symlinksuchflagsu
EOPNOTSUPPuENOTSUPu)requires os.chflags, EOPNOTSUPP & ENOTSUPcCs�|j�}tjj|d�}tjj|d�}t|d�t|d�dd�}tj}zrx9tjtjfD]%}||�t_t	j
||�q{W|tjtj�t_|jtt	j
||�Wd|t_XdS(Nufile1ufile2uxxxcs(t��dd��fdd�}|S(Nufollow_symlinkscs��_��dS(N(uerrno(upathuflagsufollow_symlinks(uerruex(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_chflags_raiser�s	unTestShutil.test_copystat_handles_harmless_chflags_errors.<locals>.make_chflags_raiser.<locals>._chflags_raiserT(uOSErroruTrue(uerru_chflags_raiser((uerruexu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyumake_chflags_raiser�s	uUTestShutil.test_copystat_handles_harmless_chflags_errors.<locals>.make_chflags_raiser(
umkdtempuosupathujoinu
write_fileuchflagsuerrnou
EOPNOTSUPPuENOTSUPushutilucopystatuassertRaisesuOSError(uselfutmpdirufile1ufile2umake_chflags_raiseruold_chflagsuerr((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu-test_copystat_handles_harmless_chflags_errors�s

	u8TestShutil.test_copystat_handles_harmless_chflags_errorscsN|j�}tjj|d��t�d�tjj|d�}t|d�tj�|�tj�dd�tj�dd�tj�|�|jt	tj
���t	tj
|���|jtj�d�tj|d��tj|�t|d�t
tjd����fdd	�}z?tj�|t_tj�|�|jdtj
|��Wd�t_Xd
d��fdd�}z&tj
�|t_
tj�|�Wd�t_
Xtjj|d
��t���tj�dd�tjj|d�}t||�tj�|�|jtj|d�d�dS(Nufooubaruuser.foos42uuser.bars43uEPERMcs,|dkr��n�||||�dS(Nuuser.foo((ufnameuattruvalukwargs(u
orig_setxattruos_error(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_raise_on_user_foo�s	u5TestShutil.test_copyxattr.<locals>._raise_on_user_fooufollow_symlinkscs1|�kr!ttjd��n�|d|�S(NuOperation not supportedufollow_symlinks(uOSErroruerrnouENOTSUP(ufnameufollow_symlinks(uorig_listxattrusrc(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
_raise_on_src�su0TestShutil.test_copyxattr.<locals>._raise_on_srcuthe_originaluuser.the_valuesfiddlyuthe_copyT(umkdtempuosupathujoinu
write_fileushutilu
_copyxattrusetxattruassertEqualusortedu	listxattrugetxattruremoveuOSErroruerrnouEPERMuassertInuTrueucopystat(uselfutmp_dirudstu_raise_on_user_foou
_raise_on_src((uorig_listxattru
orig_setxattruos_errorusrcu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copyxattr�sH

.

		
		


uTestShutil.test_copyxattruroot privileges requiredcCsM|j�}tjj|d�}tjj|d�}t|d�tj||�tj|dd�tj|dddd	�tjj|d�}tjj|d�}t|d�tj||�tj	||dd	�|j
tj|ddd	�d�|jt
tj|d�tj	||dd	�|j
tj|d�d�dS(
Nufooubazutrusted.foos42s43ufollow_symlinksubaruquxF(umkdtempuosupathujoinu
write_fileusymlinkusetxattruFalseushutilu
_copyxattruassertEqualugetxattruassertRaisesuOSError(uselfutmp_dirusrcusrc_linkudstudst_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copyxattr_symlinks�s 

"u"TestShutil.test_copyxattr_symlinkscCs{|j�}tjj|d�}tjj|d�}tjj|d�}t|d�tj||�ttd�r�tj|tj	tj
B�ntj||dd�|jtjj|��|jt|�t|��tj|�tj||dd�|jtjj|��|jtj|�tj|��ttd�rw|jtj|�jtj|�j�ndS(Nufooubarubazulchmodufollow_symlinksTF(umkdtempuosupathujoinu
write_fileusymlinkuhasattrulchmodustatuS_IRWXUuS_IRWXOushutilucopyuTrueuassertFalseuislinkuassertEqualu	read_fileuremoveuFalseu
assertTrueureadlinkulstatust_mode(uselfutmp_dirusrcudstusrc_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copy_symlinks�s$

"uTestShutil.test_copy_symlinksc	Csc|j�}tjj|d�}tjj|d�}tjj|d�}t|d�tj||�ttd�r�tj|tj	tj
B�nttd�r�ttd�r�tj|tj�ntj|�}tj
|�}tj||dd�|jtjj|��|jt|�t|��tj|�tj||dd
�|jtjj|��|jtj|�tj|��tj
|�}tjtjkr�x7dD],}|jt||�t||�d
�q�Wnttd�r(|j|j|j�|j|j|j�nttd�r_t|d�r_|j|j|j�ndS(Nufooubarubazulchmodulchflagsu	UF_NODUMPufollow_symlinksust_atimeust_mtimeiust_flagsTF(ust_atimeust_mtime( umkdtempuosupathujoinu
write_fileusymlinkuhasattrulchmodustatuS_IRWXUuS_IRWXOulchflagsu	UF_NODUMPulstatushutilucopy2uTrueuassertFalseuislinkuassertEqualu	read_fileuremoveuFalseu
assertTrueureadlinkuutimeusupports_follow_symlinksuassertLessEqualugetattrust_modeuassertNotEqualust_flags(	uselfutmp_dirusrcudstusrc_linkusrc_statu
src_link_statudst_statuattr((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copy2_symlinkss:

"
uTestShutil.test_copy2_symlinkscCs�|j�}tjj|d�}tjj|d�}t|d�tj|dd�tj||�|jtj	|d�tj	|d��tj
|�dS(Nufooubaruuser.foos42(umkdtempuosupathujoinu
write_fileusetxattrushutilucopy2uassertEqualugetxattruremove(uselfutmp_dirusrcudst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copy2_xattr.s
uTestShutil.test_copy2_xattrcCs�|j�}tjj|d�}tjj|d�}tjj|d�}tjj|d�}t|d�tj||�tj||dd�|j	tjj
|��|jtj|�tj|��tj||�|j
tjj
|��dS(Nusrcudstudst_linkulinkufooufollow_symlinksF(umkdtempuosupathujoinu
write_fileusymlinkushutilucopyfileuFalseu
assertTrueuislinkuassertEqualureadlinkuassertFalse(uselfutmp_dirusrcudstudst_linkulink((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copyfile_symlinks;s
"u!TestShutil.test_copyfile_symlinksc
s-tjtjtjtjhtjkoHtjtjkoHtjtjk}|r|j	t
j�|j	t
jj
�|j�}tjj|d�}tj|�zTt
j}Gdd�dt���fdd�}|t
_|j�t
j|�Wd|t
_Xn#|jt
j�|jt
jj
�dS(NuacBs|EeZdZdS(uHTestShutil.test_rmtree_uses_safe_fd_version_if_available.<locals>.CalledN(u__name__u
__module__u__qualname__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuCalledYsuCalledcs
��dS(N((uargsukwargs(uCalled(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_raiserZsuITestShutil.test_rmtree_uses_safe_fd_version_if_available.<locals>._raiser(uosuopenustatuunlinkurmdirusupports_dir_fdulistdirusupports_fdusupports_follow_symlinksu
assertTrueushutilu_use_fd_functionsurmtreeuavoids_symlink_attacksumkdtempupathujoinumkdiru_rmtree_safe_fdu	ExceptionuassertRaisesuassertFalse(uselfu_use_fd_functionsutmp_dirudureal_rmtreeu_raiser((uCalledu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu-test_rmtree_uses_safe_fd_version_if_availableLs&
		
u8TestShutil.test_rmtree_uses_safe_fd_version_if_availablecCsFtj�\}}tj|�|jttj|�tj|�dS(N(	utempfileumkstempuosucloseuassertRaisesuNotADirectoryErrorushutilurmtreeuremove(uselfuhandleupath((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_rmtree_dont_delete_fileds
u'TestShutil.test_rmtree_dont_delete_filecCsttj�}tjjtj�d�}|jtj|�|jtjtjj|��t	|dfd�tj
tjj|d��t	|ddfd�tj||�|jtjj
tjj|d���|jtjjtjj|d���|jtjj
tjj|dd���t|df�}|j|d�t|ddf�}|j|d�dS(Nudestinationutest.txtu123utest_diru456(utempfileumkdtempuosupathujoinu
addCleanupushutilurmtreeudirnameu
write_fileumkdirucopytreeu
assertTrueuisfileuisdiru	read_fileuassertEqual(uselfusrc_dirudst_diruactual((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_simpleks ((
uTestShutil.test_copytree_simplec	Cs|j�}tjj|d�}tjj|d�}tjj|d�}tj|�tj|�t|dfd�tjj|d�}tjj|d�}tjtjj|d�|�ttd�r�tj|t	j
t	jB�nttd	�r!tt	d
�r!tj|t	j
�ntj|�}tj||dd�|jtjjtjj|dd���|jtjtjj|dd��tjj|d��tj|�}ttd�r�|j|j|j�nttd	�r
|j|j|j�ndS(
Nusrcudstusubufile.txtufooulinkusub/linkulchmodulchflagsu	UF_NODUMPusymlinksT(umkdtempuosupathujoinumkdiru
write_fileusymlinkuhasattrulchmodustatuS_IRWXUuS_IRWXOulchflagsu	UF_NODUMPulstatushutilucopytreeuTrueu
assertTrueuislinkuassertEqualureadlinkust_modeust_flags(	uselfutmp_dirusrc_dirudst_dirusub_dirusrc_linkudst_linkusrc_statudst_stat((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_symlinks~s2

+$u!TestShutil.test_copytree_symlinksc#Cs�tjj}tjj}tj�}z�|tj�d�}t|dfd�t|dfd�tj||d��t|ddfd�tj||d��t|ddfd�tj||dd��tj||dd	��t|dddfd�t|dd	d
fd�z�tj	dd�}tj
||d|�|j|||d���|j|||d���|j|||d���Wdtj
|�Xz�tj	dd
�}tj
||d|�|j|||d���|j|||dd	���|j|||dd���Wdtj
|�Xzgdd�}tj
||d|�|j|||dd	d
���|j|||dd���Wdtj
|�XWdtj
|�tj
tjj|��XdS(Nudestinationutest.txtu123utest.tmputest_diru456u	test_dir2usubdirusubdir2utest.pyu*.tmpuignoreusubdir*cSs�g}x�|D]}tjj||�}tjj|�r`|j�ddkr`|j|�q
tjj|�ddkr
|j|�q
q
W|S(Niusubdiru.pyi����i����(uosupathujoinuisdirusplituappendusplitext(usrcunamesuresunameupath((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_filter�s
u6TestShutil.test_copytree_with_exclude.<locals>._filter(uosupathujoinuexistsutempfileumkdtempu
write_fileumkdirushutiluignore_patternsucopytreeu
assertTrueuassertFalseurmtreeudirname(uselfujoinuexistsusrc_dirudst_dirupatternsu_filter((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_with_exclude�sL #
#
u%TestShutil.test_copytree_with_excludecCstj�}tjj|d�}tj|�tjj|d�}|jtj|�tj	|d�t
|dfd�tj	tjj|d�d�t
|dfd�tj	tjj|d�d�tjd	|�}tj	|d�tj||�|jtj
|�jtj
|�j�|jtj
tjj|d��jtj
tjj|d��j�|jtj
tjj|d��jtj
tjj|d��j�tjj|tjj|�d
�}|jtj
|�jtj
|�j�dS(Nusourceudestinationi�upermissive.txtu123urestrictive.txtu456i�udiri(utempfileumkdtempuosupathujoinumkdiru
addCleanupushutilurmtreeuchmodu
write_fileucopytreeuassertEqualustatust_modeusplit(uselfutmp_dirusrc_dirudst_dirurestrictive_subdirurestrictive_subdir_dst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu!test_copytree_retains_permissions�s,
($"$"u,TestShutil.test_copytree_retains_permissionsuntutemporarily disabled on Windowsulinkurequires os.linkcCs�tjt�tjjtd�}tjjtd�}z�t|d��}|jd�WdQXtj||�|jt	j
t	j||�t|d��}|j|j
�d�WdQXtj|�Wdt	jtdd�XdS(Nucheeseushopuwucheddaruru
ignore_errorsT(uosumkdiruTESTFNupathujoinuopenuwriteulinkuassertRaisesushutiluErrorucopyfileuassertEqualureaduremoveurmtreeuTrue(uselfusrcudstuf((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu'test_dont_copy_file_onto_link_to_itself�s
u2TestShutil.test_dont_copy_file_onto_link_to_itselfcCs�tjt�tjjtd�}tjjtd�}z�t|d��}|jd�WdQXtjd|�|jt	j
t	j||�t|d��}|j|j
�d�WdQXtj|�Wdt	jtdd�XdS(Nucheeseushopuwucheddaruru
ignore_errorsT(uosumkdiruTESTFNupathujoinuopenuwriteusymlinkuassertRaisesushutiluErrorucopyfileuassertEqualureaduremoveurmtreeuTrue(uselfusrcudstuf((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu*test_dont_copy_file_onto_symlink_to_itselfs
u5TestShutil.test_dont_copy_file_onto_symlink_to_itselfc
Cs�tjt�zttjjtd�}tjjtd�}tj|�tj||�|jttj	|�tj	|dd�Wdtj	tdd�XdS(Nucheeseushopu
ignore_errorsT(uosumkdiruTESTFNupathujoinusymlinkuassertRaisesuOSErrorushutilurmtreeuTrue(uselfusrcudst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_rmtree_on_symlinks

u!TestShutil.test_rmtree_on_symlinkumkfifourequires os.mkfifo()cCs^tjt�z<|jtjtjtt�|jtjtjtt�Wdtj	t�XdS(N(
uosumkfifouTESTFNuassertRaisesushutiluSpecialFileErrorucopyfileuTESTFN2u__file__uremove(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copyfile_named_pipe*s
u#TestShutil.test_copyfile_named_pipecCstjt�z�tjjtd�}tj|�tjj|d�}tj|�ytjtt�Wnrtj	k
r�}zO|j
d}|jt|�d�|d\}}}|jd||�WYdd}~XnX|j
d�Wdtjtdd�tjtdd�XdS(	Nusubdirumypipeiiu`%s` is a named pipeu$shutil.Error should have been raisedu
ignore_errorsT(uosumkdiruTESTFNupathujoinumkfifoushutilucopytreeuTESTFN2uErroruargsuassertEqualulenufailurmtreeuTrue(uselfusubdirupipeueuerrorsusrcudstu	error_msg((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_named_pipe5s 



'u#TestShutil.test_copytree_named_pipecs�|j�}tjj|j�d�}t|dfd�tjtjj|d��t|ddfd�g��fdd�}tj||d|�|jt	��d	�dS(
Nudestinationutest.txtu123utest_diru456cs�j||f�dS(N(uappend(usrcudst(ucopied(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_copyTsu4TestShutil.test_copytree_special_func.<locals>._copyu
copy_functioni(
umkdtempuosupathujoinu
write_fileumkdirushutilucopytreeuassertEqualulen(uselfusrc_dirudst_diru_copy((ucopiedu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_special_funcKsu%TestShutil.test_copytree_special_funccCs)|j�}tjj|j�d�}tjdtjj|d��tjtjj|d��t|ddfd�|jtt	j
||�tjj|j�d�}t	j
||dd
�|jdtj
|��tjj|j�d�}t	j
||d	d
�|jdtj
|��dS(Nudestinationu
IDONTEXISTutest.txtutest_diru456udestination2uignore_dangling_symlinksudestination3usymlinksT(umkdtempuosupathujoinusymlinkumkdiru
write_fileuassertRaisesuErrorushutilucopytreeuTrueuassertNotInulistdiruassertIn(uselfusrc_dirudst_dir((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_dangling_symlinksZsu*TestShutil.test_copytree_dangling_symlinkscCsrd}|j�}t||fd�tjj||�}|j�}|||�tjj||�}||fS(Nutest.txtuxxx(umkdtempu
write_fileuosupathujoin(uselfumethodufnameutmpdirufile1utmpdir2ufile2((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
_copy_fileos
uTestShutil._copy_filecCs]|jtj�\}}|jtjj|��|jtj|�j	tj|�j	�dS(N(
u
_copy_fileushutilucopyu
assertTrueuosupathuexistsuassertEqualustatust_mode(uselfufile1ufile2((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu	test_copyysuTestShutil.test_copyuutimeurequires os.utimecCs�|jtj�\}}|jtjj|��tj|�}tj|�}|j|j	|j	�x4dD],}|j
t||�t||�d�qlWttd�r�t|d�r�|jt|d�t|d��ndS(Nust_atimeust_mtimeiuchflagsust_flags(ust_atimeust_mtime(
u
_copy_fileushutilucopy2u
assertTrueuosupathuexistsustatuassertEqualust_modeuassertLessEqualugetattruhasattr(uselfufile1ufile2u
file1_statu
file2_statuattr((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
test_copy2�s
uTestShutil.test_copy2cCs�|j�}t|dfd�t|dfd�tjtjj|d��t|ddfd�|j�}tj|�tjt	|�dt	|�dkd�tjj|d�}tj
�}tj|�ztt	|�d	d
�Wdtj|�X|d}|j
tjj|��tjj|d�}tj
�}tj|�z!tt	|�d	d
dd�Wdtj|�X|d
}|j
tjj|��dS(Nufile1uxxxufile2usubufile3iu)source and target should be on same driveuarchiveiu.u.tar.gzucompressu.tar(umkdtempu
write_fileuosumkdirupathujoinurmdiruunittestu
skipUnlessu
splitdriveugetcwduchdiru
_make_tarballu
assertTrueuexistsuNone(uselfutmpdirutmpdir2u	base_nameuold_dirutarball((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_make_tarball�s2
#


!
uTestShutil.test_make_tarballc
CsEtj|�}z$|j�}|j�t|�SWd|j�XdS(N(utarfileuopenugetnamesusortutupleuclose(uselfupathutarunames((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_tarinfo�s
uTestShutil._tarinfocCs�|j�}tjj|d�}tj|�t|dfd�t|dfd�tjtjj|d��t|ddfd�tjtjj|d��|j�}tjj|d�}|||fS(	Nudistufile1uxxxufile2usubufile3usub2uarchive(umkdtempuosupathujoinumkdiru
write_file(uselfutmpdirudistutmpdir2u	base_name((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
_create_files�s
uTestShutil._create_filesutarugzipuNeed the tar command to runc
)Cs4|j�\}}}tj�}tj|�zt|d�Wdtj|�X|d}|jtjj|��tjj|d�}ddddg}dddg}tj�}tj|�z*t	��}	t
|�t
|�WdQXWdtj|�X|jtjj|��|j|j|�|j|��tjj|d	�}tj�}tj|�zt|dd
d�Wdtj|�X|d}|jtjj|��tjj|d	�}tj�}tj|�zt|dd
ddd
�Wdtj|�X|d}|jtjj|��dS(Nudistu.tar.gzuarchive2.tar.gzutaru-cfuarchive2.tarugzipu-f9uarchiveucompressu.tarudry_runT(u
_create_filesuosugetcwduchdiru
_make_tarballu
assertTrueupathuexistsujoinucaptured_stdoutuspawnuassertEqualu_tarinfouNoneuTrue(
uselfutmpdirutmpdir2u	base_nameuold_dirutarballutarball2utar_cmdugzip_cmdus((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_tarfile_vs_tar�sH



"



uTestShutil.test_tarfile_vs_taruNeed zip support to runcCs�|j�}t|dfd�t|dfd�|j�}tj|�tjj|d�}t||�|d}|jtjj|��dS(Nufile1uxxxufile2uarchiveu.zip(	umkdtempu
write_fileuosurmdirupathujoinu
_make_zipfileu
assertTrueuexists(uselfutmpdirutmpdir2u	base_nameutarball((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_make_zipfiles


uTestShutil.test_make_zipfilecCs;|j�}tjj|d�}|jtt|d�dS(Nuarchiveuxxx(umkdtempuosupathujoinuassertRaisesu
ValueErrorumake_archive(uselfutmpdiru	base_name((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_make_archivesuTestShutil.test_make_archivec	CsItr/tjd�d}tjd�d}n
d}}|j�\}}}tjj|j	�d�}t
|d||d|d|�}|jtjj|��t
|d||�}|jtjj|��t
|d||d|d|�}|jtjj|��t
|d||dddd	�}|jtjj|��dS(
Niurootuarchiveuzipuownerugrouputaru	kjhkjhkjguoihohoh(
uUID_GID_SUPPORTugrpugetgrgidupwdugetpwuidu
_create_filesuosupathujoinumkdtempumake_archiveu
assertTrueuexists(uselfugroupuownerubase_diruroot_diru	base_nameures((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_make_archive_owner_group s"
	u(TestShutil.test_make_archive_owner_groupuRequires grp and pwd supportc
Cs|j�\}}}tj�}tj|�tjd�d}tjd�d}z%t|dddd|d|�}Wdtj|�X|j
tjj|��t
j|�}zAx:|j�D],}	|j|	jd�|j|	jd�q�WWd|j�XdS(Niudistucompressuownerugroup(u
_create_filesuosugetcwduchdirugrpugetgrgidupwdugetpwuidu
_make_tarballuNoneu
assertTrueupathuexistsutarfileuopenu
getmembersuassertEqualuuidugiduclose(
uselfutmpdirutmpdir2u	base_nameuold_dirugroupuowneruarchive_nameuarchiveumember((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_tarfile_root_owner<s 
u"TestShutil.test_tarfile_root_ownercCs�tj�}dd�}td|gd�zLytddd|j��Wntk
r_YnX|jtj�|�Wdtd�XdS(Nc_s
t��dS(N(uRuntimeError(uargsukw((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_breaksXsu1TestShutil.test_make_archive_cwd.<locals>._breaksuxxxuxxx fileuroot_dir(uosugetcwduregister_archive_formatumake_archiveumkdtempu	ExceptionuassertEqualuunregister_archive_format(uselfucurrent_diru_breaks((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_make_archive_cwdVs
u TestShutil.test_make_archive_cwdc	Cs�|jttdd�|jttddd�d�|jttddd�d
dg�tddd�dgd	�d
d�t�D�}|jd|�td�dd�t�D�}|jd|�dS(NuxxxicSstS(N(ux(((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu<lambda>hsu9TestShutil.test_register_archive_format.<locals>.<lambda>cSstS(N(ux(((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu<lambda>jsiicSstS(N(ux(((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu<lambda>msuxxx filecSsg|]\}}|�qS(((u.0unameuparams((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
<listcomp>ns	u;TestShutil.test_register_archive_format.<locals>.<listcomp>cSsg|]\}}|�qS(((u.0unameuparams((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
<listcomp>rs	(ii(iii(ii(uassertRaisesu	TypeErroruregister_archive_formatuget_archive_formatsuassertInuunregister_archive_formatuassertNotIn(uselfuformats((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_register_archive_formates

u'TestShutil.test_register_archive_formatc
Cs�g}x�tj|�D]|\}}}xj|D]b}tjj||�}tjj|tjj|�d�}	tjj|	�s,|j|�q,q,WqW|S(Nii����(uosuwalkupathujoinusplituexistsuappend(
uselfudir1udir2udiffurootudirsufilesufile_upathutarget_path((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
_compare_dirsus
%uTestShutil._compare_dirscCsdddg}tr%|jd�nx�|D]�}|j�}|j�\}}}|j�}t||||�}t||�|j||�}	|j|	g�|j�}
t||
d|�|j||
�}	|j|	g�q,W|jt	j
tt�|jtttdd�dS(Nutarugztaruzipubztaruformatuxxx(
u
BZ2_SUPPORTEDuappendumkdtempu
_create_filesumake_archiveuunpack_archiveu
_compare_dirsuassertEqualuassertRaisesushutilu	ReadErroruTESTFNu
ValueError(uselfuformatsuformatutmpdirubase_diruroot_diru	base_nameutmpdir2ufilenameudiffutmpdir3((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_unpack_archive�s"

uTestShutil.test_unpack_archivecs�t�}�fdd�}tdddg|dg�tdd	��jttd
dg|�td�td
dg|��jd
dgdft���jddgdft��td
��jt�|�dS(
Ncs4�j|d��j|d��j|d�dS(Niu	stuff.boouxx(uassertEqual(ufilenameuextract_diruextra(uself(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_boo�su.TestShutil.test_unpack_registery.<locals>._boouBoou.boou.b2uextraiu	stuff.boouxxuBoo2u(uextrai(	uget_unpack_formatsuregister_unpack_formatuunpack_archiveuassertRaisesu
RegistryErroruunregister_unpack_formatuassertInuassertNotInuassertEqual(uselfuformatsu_boo((uselfu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_unpack_registery�s	



u TestShutil.test_unpack_registeryu
disk_usageu)disk_usage not available on this platformcCs~tjtj��}|j|jd�|j|jd�|j|jd�|j|j|j�|j|j|j�dS(Ni(	ushutilu
disk_usageuosugetcwdu
assertGreaterutotaluuseduassertGreaterEqualufree(uselfuusage((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_disk_usage�suTestShutil.test_disk_usageuchownurequires os.chownc#s��j�}tjd|��t�d��jt��tj��WdQX�jt��tj�dd�WdQX�jt��tj�dd�WdQX�jt	��tj�d�WdQX�jt	��tj�d�WdQXt
j�}t
j�}dd��fd	d
�}tj�||�|�||�tj�|�|�|�tj�d|�|�|�tj�d|�|�d|�tj|||�||||�tj||�|||�tj|d|�|||�tj|d|�||d|�tj|�d}tj|�d}tj�||�|�||�tj|||�||||�dS(
Nudirutesting chown functionuuserunon-exising usernameugroupunon-exising groupnamesspamg��Q�	@csWtj��}|dk	r1�j||j�n|dk	rS�j||j�ndS(N(uosustatuNoneuassertEqualust_uidust_gid(upathuuidugidus(ufilenameuself(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyucheck_chown�s
u*TestShutil.test_chown.<locals>.check_chownugidi(umkdtemputempfileumktempu
write_fileuassertRaisesu
ValueErrorushutiluchownuLookupErroru	TypeErroruosugetuidugetgiduNoneupwdugetpwuidugrpugetgrgid(uselfudirnameuuidugiducheck_chownuuserugroup((ufilenameuselfu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
test_chown�sL




uTestShutil.test_chowncCs�x�tjtjfD]�}|j�}|j�}tjj|d�}t|d�|||�}|j|tjj|d��||tjj|d��}|j|tjj|d��qWdS(Nufooubar(	ushutilucopyucopy2umkdtempuosupathujoinu
write_fileuassertEqual(uselfufnusrc_dirudst_dirusrcurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copy_return_value�s
u!TestShutil.test_copy_return_valuecCs�|j�}|j�}tjj|d�}tjj|d�}t|d�tj||�}|jtjj|��|j	t
|�t
|��dS(Nubarufoo(umkdtempuosupathujoinu
write_fileushutilucopyfileu
assertTrueuexistsuassertEqualu	read_file(uselfusrc_dirudst_dirudst_fileusrc_fileurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copyfile_return_values
u%TestShutil.test_copyfile_return_valuecCs�|j�}|d}|jtj|d�tjj|d�}t|d�tj	||�}|j
dgtj|��dS(NudestufooT(umkdtempu
addCleanupushutilurmtreeuTrueuosupathujoinu
write_fileucopytreeuassertEqualulistdir(uselfusrc_dirudst_dirusrcurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_copytree_return_values

u%TestShutil.test_copytree_return_value(Lu__name__u
__module__u__qualname__usetUputearDownumkdtemputest_rmtree_works_on_bytesusupportuskip_unless_symlinkutest_rmtree_fails_on_symlinkutest_rmtree_works_on_symlinksutest_rmtree_errorsuunittestu
skipUnlessuhasattruosuskipIfusysuplatformugeteuidu
test_on_errorucheck_args_to_onerroru+test_rmtree_does_not_choke_on_failing_lstatutest_copymode_follow_symlinksu test_copymode_symlink_to_symlinku*test_copymode_symlink_to_symlink_wo_lchmodutest_copystat_symlinksuerrnou-test_copystat_handles_harmless_chflags_errorsuskip_unless_xattrutest_copyxattrutest_copyxattr_symlinksutest_copy_symlinksutest_copy2_symlinksutest_copy2_xattrutest_copyfile_symlinksu-test_rmtree_uses_safe_fd_version_if_availableutest_rmtree_dont_delete_fileutest_copytree_simpleutest_copytree_symlinksutest_copytree_with_excludeu!test_copytree_retains_permissionsunameu'test_dont_copy_file_onto_link_to_itselfu*test_dont_copy_file_onto_symlink_to_itselfutest_rmtree_on_symlinkutest_copyfile_named_pipeutest_copytree_named_pipeutest_copytree_special_funcutest_copytree_dangling_symlinksu
_copy_fileu	test_copyu
test_copy2u
requires_zlibutest_make_tarballu_tarinfou
_create_filesufind_executableutest_tarfile_vs_taruZIP_SUPPORTutest_make_zipfileutest_make_archiveutest_make_archive_owner_groupuUID_GID_SUPPORTutest_tarfile_root_ownerutest_make_archive_cwdutest_register_archive_formatu
_compare_dirsutest_unpack_archiveutest_unpack_registeryushutilutest_disk_usageu
test_chownutest_copy_return_valueutest_copyfile_return_valueutest_copytree_return_value(u
__locals__((u	__class__u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
TestShutilYs�		$$ 
)8$#
A*'
'*(	5!!	*:u
TestShutilcBs�|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	e
ed�opej�dkd
�dd��Z
dd�Zdd�Zejejdkd�dd��Zdd�Zdd�Zdd�ZdS(u	TestWhichcCs�tjdd�|_|jtj|jd�tjd|jdddd�|_t	j
|jjtj
�|j|jj�t	jj|jj�\|_|_dS(NuprefixuTmpudirusuffixu.ExeT(utempfileumkdtemputemp_diru
addCleanupushutilurmtreeuTrueuNamedTemporaryFileu	temp_fileuosuchmodunameustatuS_IXUSRucloseupathusplitudirufile(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyusetUpsuTestWhich.setUpcCs5tj|jd|j�}|j||jj�dS(Nupath(ushutiluwhichufileudiruassertEqualu	temp_fileuname(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
test_basic)suTestWhich.test_basiccCs8tj|jjd|j�}|j||jj�dS(Nupath(ushutiluwhichu	temp_fileunameutemp_diruassertEqual(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_absolute_cmd.suTestWhich.test_absolute_cmdcCs�tjj|j�\}}tjj||j�}tjd|��-tj	|d|j
�}|j||�WdQXtjd|j��'tj	|d|�}|j|�WdQXdS(Nupath(
uosupathusplitudirujoinufileusupportu
change_cwdushutiluwhichutemp_diruassertEqualuassertIsNone(uselfubase_dirutail_dirurelpathurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_relative_cmd4suTestWhich.test_relative_cmdcCs�tjj|j�}tjd|j��atj|jd|�}t	j
dkrz|j|tjjtj
|j��n
|j|�WdQXdS(Nupathuwin32(uosupathudirnameudirusupportu
change_cwdushutiluwhichufileusysuplatformuassertEqualujoinucurdiruassertIsNone(uselfubase_dirurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_cwdAs(uTestWhich.test_cwdugeteuidiunon-root user requiredcCsytj|jjtj�tj|jjtj�rD|jd�nt	j
|jd|jdtj�}|j
|�dS(Nucan't set the file read-onlyupathumode(uosuchmodu	temp_fileunameustatuS_IREADuaccessuW_OKuskipTestushutiluwhichufileudiruassertIsNone(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_non_matching_modeMs
$u TestWhich.test_non_matching_modecCsrtjj|j�\}}tjd|��?tj|jd|�}|j	|tjj
||j��WdQXdS(Nupath(uosupathusplitudirusupportu
change_cwdushutiluwhichufileuassertEqualujoin(uselfubase_dirutail_dirurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_relative_pathWsuTestWhich.test_relative_pathcCs)tjdd|j�}|j|�dS(Nufoo.exeupath(ushutiluwhichudiruassertIsNone(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_nonexistent_file]suTestWhich.test_nonexistent_fileuwin32upathext check is Windows-onlycCsMtj|jdd�d|j�}|j||jjdd�d�dS(Niupathu.EXEi����i����(ushutiluwhichufileudiruassertEqualu	temp_fileuname(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_pathext_checkingbs%uTestWhich.test_pathext_checkingc
CsNtj��<}|j|d<tj|j�}|j||jj�WdQXdS(NuPATH(	usupportuEnvironmentVarGuardudirushutiluwhichufileuassertEqualu	temp_fileuname(uselfuenvurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_environ_pathjs
uTestWhich.test_environ_pathcCs|tjj|j�}tjd|j��Ltj��9}|j|d<tj|j	dd�}|j
|�WdQXWdQXdS(NupathuPATHu(uosupathudirnameudirusupportu
change_cwduEnvironmentVarGuardushutiluwhichufileuassertIsNone(uselfubase_diruenvurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_empty_pathps
uTestWhich.test_empty_pathc
CsHtj��6}|jdd�tj|j�}|j|�WdQXdS(NuPATH(usupportuEnvironmentVarGuardupopuNoneushutiluwhichufileuassertIsNone(uselfuenvurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_empty_path_no_PATHxsu!TestWhich.test_empty_path_no_PATHN(u__name__u
__module__u__qualname__usetUpu
test_basicutest_absolute_cmdutest_relative_cmdutest_cwduunittestuskipIfuhasattruosugeteuidutest_non_matching_modeutest_relative_pathutest_nonexistent_fileu
skipUnlessusysuplatformutest_pathext_checkingutest_environ_pathutest_empty_pathutest_empty_path_no_PATH(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu	TestWhichs
$	u	TestWhichcBs�|EeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	d
d��Z
e	dd��Zdd�Ze	dd��Z
dd�Ze	dd��Zdd�Zejejjd�dd��Zdd�Zd d!�Zd"d#�Zd$d%�Zeje	d&d'���Zeje	d(d)���Zeje	d*d+���Zeje	d,d-���Z d.d/�Z!d0d1�Z"d2S(3uTestMovec	Cs�d}tj�|_tj�|_tjj|j|�|_tjj|j|�|_t	|jd��}|j
d�WdQXdS(Nufoouwbsspam(utempfileumkdtempusrc_dirudst_diruosupathujoinusrc_fileudst_fileuopenuwrite(uselfufilenameuf((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyusetUp�suTestMove.setUpc
CsFx?|j|jfD]+}y|r2tj|�nWqYqXqWdS(N(usrc_dirudst_dirushutilurmtree(uselfud((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutearDown�suTestMove.tearDowncCst|d��}|j�}WdQXtj||�t|d��}|j||j��WdQX|jtjj|��dS(Nurb(	uopenureadushutilumoveuassertEqualuassertFalseuosupathuexists(uselfusrcudstureal_dstufucontents((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_check_move_file�suTestMove._check_move_filecCsattj|��}tj||�|j|ttj|���|jtjj|��dS(N(	usorteduosulistdirushutilumoveuassertEqualuassertFalseupathuexists(uselfusrcudstureal_dstucontents((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_check_move_dir�suTestMove._check_move_dircCs |j|j|j|j�dS(N(u_check_move_fileusrc_fileudst_file(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_file�suTestMove.test_move_filecCs |j|j|j|j�dS(N(u_check_move_fileusrc_fileudst_dirudst_file(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_file_to_dir�suTestMove.test_move_file_to_dircCs|j�dS(N(utest_move_file(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_file_other_fs�su TestMove.test_move_file_other_fscCs|j�dS(N(utest_move_file_to_dir(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_file_to_dir_other_fs�su'TestMove.test_move_file_to_dir_other_fscCsJtj�}z|j|j||�Wdytj|�WnYnXXdS(N(utempfileumktempu_check_move_dirusrc_dirushutilurmtree(uselfudst_dir((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
test_move_dir�suTestMove.test_move_dircCs|j�dS(N(u
test_move_dir(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_other_fs�suTestMove.test_move_dir_other_fscCs>|j|j|jtjj|jtjj|j���dS(N(u_check_move_dirusrc_dirudst_diruosupathujoinubasename(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_to_dir�suTestMove.test_move_dir_to_dircCs|j�dS(N(utest_move_dir_to_dir(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_to_dir_other_fs�su&TestMove.test_move_dir_to_dir_other_fscCsH|j|jtjj|jtjj|jtjj|j���dS(N(u_check_move_dirusrc_diruosupathusepudst_dirujoinubasename(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_sep_to_dir�su!TestMove.test_move_dir_sep_to_dirurequires os.path.altsepcCsH|j|jtjj|jtjj|jtjj|j���dS(N(u_check_move_dirusrc_diruosupathualtsepudst_dirujoinubasename(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_altsep_to_dir�su$TestMove.test_move_dir_altsep_to_dircCs?t|jd��WdQX|jtjtj|j|j�dS(Nuwb(uopenudst_fileuassertRaisesushutiluErrorumoveusrc_fileudst_dir(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu"test_existing_file_inside_dest_dir�su+TestMove.test_existing_file_inside_dest_dircCs;tjj|jd�}|jtjtj|j|�dS(Nubar(uosupathujoinusrc_diruassertRaisesushutiluErrorumove(uselfudst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_dont_move_dir_in_itself�su%TestMove.test_dont_move_dir_in_itselfc
Cs�tjt�zqxjdgD]_\}}tjjt|�}tjjt|�}|jtj||�dd||f�qWWdtjtdd�XdS(Nusrcdirusrcdir/destumsgu?_destinsrc() wrongly concluded that dst (%s) is not in src (%s)u
ignore_errors(usrcdirusrcdir/destT(
uosumkdiruTESTFNupathujoinu
assertTrueushutilu
_destinsrcurmtreeuTrue(uselfusrcudst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_destinsrc_false_negative�s
u&TestMove.test_destinsrc_false_negativec
Cs�tjt�ztxmddgD]_\}}tjjt|�}tjjt|�}|jtj||�dd||f�qWWdtjtdd	�XdS(
Nusrcdirusrc/destu
srcdir.newumsgu;_destinsrc() wrongly concluded that dst (%s) is in src (%s)u
ignore_errors(usrcdirusrc/dest(usrcdiru
srcdir.newT(
uosumkdiruTESTFNupathujoinuassertFalseushutilu
_destinsrcurmtreeuTrue(uselfusrcudst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_destinsrc_false_positive�s
u&TestMove.test_destinsrc_false_positivecCs�tjj|jd�}tj|j|�tj||j�|j	tjj
|j��|j	tjj|j|j��dS(Nubar(uosupathujoinusrc_dirusymlinkusrc_fileushutilumoveudst_fileu
assertTrueuislinkusamefile(uselfudst((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_file_symlink�s
uTestMove.test_move_file_symlinkcCs�d}tjj|j|�}tj|j|�tj||j�tjj|j|�}|j	tjj
|��|j	tjj|j|��dS(Nubar(uosupathujoinusrc_dirusymlinkusrc_fileushutilumoveudst_diru
assertTrueuislinkusamefile(uselfufilenameudstu
final_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_file_symlink_to_dirsu&TestMove.test_move_file_symlink_to_dircCs�tjj|jd�}tjj|jd�}tj||�tjj|jd�}tj||�|jtjj	|��tj
dkr�|jtjj|�tj
|��n(|jtjj|�tjj|��dS(Nubazubaruquuxunt(uosupathujoinusrc_dirusymlinkudst_dirushutilumoveu
assertTrueuislinkunameuassertEqualurealpathureadlink(uselfusrcudstudst_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dangling_symlinks(u#TestMove.test_move_dangling_symlinkcCs�tjj|jd�}tjj|jd�}tj|�tj||�tjj|jd�}tj||�|j	tjj
|��|j	tjj||��dS(Nubazubaruquux(uosupathujoinusrc_dirumkdirusymlinkudst_dirushutilumoveu
assertTrueuislinkusamefile(uselfusrcudstudst_link((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_symlinks
uTestMove.test_move_dir_symlinkcCsMtj|j|j�}|j|tjj|jtjj|j���dS(N(	ushutilumoveusrc_fileudst_diruassertEqualuosupathujoinubasename(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_return_value's	uTestMove.test_move_return_valuecCsMtj|jtjj|jd��}|j|tjj|jd��dS(Nubar(ushutilumoveusrc_fileuosupathujoinudst_diruassertEqual(uselfurv((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu test_move_as_rename_return_value,s'u)TestMove.test_move_as_rename_return_valueN(#u__name__u
__module__u__qualname__usetUputearDownu_check_move_fileu_check_move_dirutest_move_fileutest_move_file_to_dirumock_renameutest_move_file_other_fsutest_move_file_to_dir_other_fsu
test_move_dirutest_move_dir_other_fsutest_move_dir_to_dirutest_move_dir_to_dir_other_fsutest_move_dir_sep_to_diruunittestu
skipUnlessuosupathualtseputest_move_dir_altsep_to_diru"test_existing_file_inside_dest_dirutest_dont_move_dir_in_itselfutest_destinsrc_false_negativeutest_destinsrc_false_positiveusupportuskip_unless_symlinkutest_move_file_symlinkutest_move_file_symlink_to_dirutest_move_dangling_symlinkutest_move_dir_symlinkutest_move_return_valueu test_move_as_rename_return_value(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuTestMoves8	$
uTestMovecBs�|EeZdZdZGdd�de�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dS(uTestCopyFilecBs\|EeZdZd
Zd	Zd
Zd
ddd�Z	dd�Z
dd�Zdd�Zd	S(uTestCopyFile.FauxcCs||_||_dS(N(u_raise_in_exitu_suppress_at_exit(uselfu
raise_in_exitusuppress_at_exit((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu__init__9s	uTestCopyFile.Faux.__init__cGsdS(Nu((uselfuargs((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuread<suTestCopyFile.Faux.readcCs
d|_dS(NT(uTrueu_entered(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu	__enter__>suTestCopyFile.Faux.__enter__cCs:|||f|_|jr3d|_td��n|jS(NuCannot closeT(u_exited_withu_raise_in_exituTrueu_raiseduIOErroru_suppress_at_exit(uselfuexc_typeuexc_valuexc_tb((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu__exit__@s
		uTestCopyFile.Faux.__exit__NFT(
u__name__u
__module__u__qualname__uFalseu_entereduNoneu_exited_withu_raiseduTrueu__init__ureadu	__enter__u__exit__(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuFaux5suFauxcCs|jrt`ndS(N(u_deleteushutiluopen(uself((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutearDownGs	uTestCopyFile.tearDowncCs|t_d|_dS(NT(ushutiluopenuTrueu_delete(uselfufunc((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_set_shutil_openKs	uTestCopyFile._set_shutil_opencCs9ddd�}|j|�|jttjdd�dS(NurcSs+|dkrtd��nds't�dS(NusrcfileuCannot open "srcfile"i(uIOErroruAssertionError(ufilenameumode((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_openPsu4TestCopyFile.test_w_source_open_fails.<locals>._openusrcfileudestfile(u_set_shutil_openuassertRaisesuIOErrorushutilucopyfile(uselfu_open((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_w_source_open_failsOs
u%TestCopyFile.test_w_source_open_failscs�|j��d�fdd�}|j|�tjdd�|j�j�|j�jdtk�|j�jdj	d	�dS(
Nurcs;|dkr�S|dkr+td��nds7t�dS(NusrcfileudestfileuCannot open "destfile"i(uIOErroruAssertionError(ufilenameumode(usrcfile(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_open]s
u2TestCopyFile.test_w_dest_open_fails.<locals>._openusrcfileudestfileiiuCannot open "destfile"(uCannot open "destfile"(
uFauxu_set_shutil_openushutilucopyfileu
assertTrueu_enteredu_exited_withuIOErroruassertEqualuargs(uselfu_open((usrcfileu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_w_dest_open_failsYs
u#TestCopyFile.test_w_dest_open_failscs�|j��|jd	��d��fdd�}|j|�tjdd�|j�j�|j�j�|j�j�|j�jdt	k�|j
�jdjd
�dS(Nurcs0|dkr�S|dkr �Sds,t�dS(Nusrcfileudestfilei(uAssertionError(ufilenameumode(udestfileusrcfile(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_openqs
u3TestCopyFile.test_w_dest_close_fails.<locals>._openusrcfileudestfileiiuCannot closeT(uCannot close(uFauxuTrueu_set_shutil_openushutilucopyfileu
assertTrueu_enteredu_raisedu_exited_withuIOErroruassertEqualuargs(uselfu_open((udestfileusrcfileu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_w_dest_close_failsls
u$TestCopyFile.test_w_dest_close_failscs�|jd��|j��d��fdd�}|j|�|jttjdd�|j�j�|j�j�|j	�j
�|j�jddk�|j�j
�dS(Nurcs0|dkr�S|dkr �Sds,t�dS(Nusrcfileudestfilei(uAssertionError(ufilenameumode(udestfileusrcfile(u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu_open�s
u5TestCopyFile.test_w_source_close_fails.<locals>._openusrcfileudestfileiT(
uFauxuTrueu_set_shutil_openuassertRaisesuIOErrorushutilucopyfileu
assertTrueu_entereduassertFalseu_raisedu_exited_withuNone(uselfu_open((udestfileusrcfileu5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_w_source_close_fails�s
	u&TestCopyFile.test_w_source_close_failscCs�tj�|_|jtj|jd�tjj	tjj
|j�tjj|j�j��}|j
|j|�z0tj|j|�|jtjj|��Wdtj|�XdS(NT(utempfileumkdtempusrc_diru
addCleanupushutilurmtreeuTrueuosupathujoinudirnameubasenameuupperuassertNotEqualumoveu
assertTrueuisdirurmdir(uselfudst_dir((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_move_dir_caseinsensitive�s	u*TestCopyFile.test_move_dir_caseinsensitiveNF(u__name__u
__module__u__qualname__uFalseu_deleteuobjectuFauxutearDownu_set_shutil_openutest_w_source_open_failsutest_w_dest_open_failsutest_w_dest_close_failsutest_w_source_close_failsutest_move_dir_caseinsensitive(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyuTestCopyFile1s
uTestCopyFilecBs\|EeZdZdd�Zdd�Zejeje	j
j��d�dd��ZdS(	u
TermsizeTestscCs6tj�}|j|jd�|j|jd�dS(u�Check if get_terminal_size() returns a meaningful value.

        There's no easy portable way to actually check the size of the
        terminal, so let's check if it returns something sensible instead.
        iN(ushutiluget_terminal_sizeuassertGreaterEqualucolumnsulines(uselfusize((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_does_not_crash�su!TermsizeTests.test_does_not_crashcCs�tj��}d|d<tj�}WdQX|j|jd�tj��}d|d<tj�}WdQX|j|jd�dS(u.Check if environment variables have precedenceu777uCOLUMNSNi	u888uLINESix(usupportuEnvironmentVarGuardushutiluget_terminal_sizeuassertEqualucolumnsulines(uselfuenvusize((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_os_environ_first�s

u#TermsizeTests.test_os_environ_firstu
not on ttycCs�y%tjddg�j�j�}Wn(ttjfk
rO|jd�YnXt|d�t|d�f}tj	��!}|d=|d=t
j�}WdQX|j||�dS(	u�Check if stty returns the same results ignoring env

        This test will fail if stdin and stdout are connected to
        different terminals with different sizes. Nevertheless, such
        situations should be pretty rare.
        usttyusizeustty invocation failediiuLINESuCOLUMNSN(
u
subprocessucheck_outputudecodeusplituFileNotFoundErroruCalledProcessErroruskipTestuintusupportuEnvironmentVarGuardushutiluget_terminal_sizeuassertEqual(uselfusizeuexpecteduenvuactual((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyutest_stty_match�s% uTermsizeTests.test_stty_matchN(
u__name__u
__module__u__qualname__utest_does_not_crashutest_os_environ_firstuunittestu
skipUnlessuosuisattyusysu
__stdout__ufilenoutest_stty_match(u
__locals__((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu
TermsizeTests�s

u
TermsizeTestscCstjttttt�dS(N(usupporturun_unittestu
TestShutiluTestMoveuTestCopyFileu
TermsizeTestsu	TestWhich(((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu	test_main�su	test_mainu__main__(:uunittestushutilutempfileusysustatuosuos.pathuerrnou	functoolsu
subprocessutestusupportutest.supportuTESTFNu
splitdriveudistutils.spawnufind_executableuspawnu
_make_tarballu
_make_zipfileumake_archiveuregister_archive_formatuunregister_archive_formatuget_archive_formatsuErroruunpack_archiveuregister_unpack_formatu
RegistryErroruunregister_unpack_formatuget_unpack_formatsutarfileuwarningsucheck_warningsucaptured_stdoutu
requires_zlibubz2uTrueu
BZ2_SUPPORTEDuImportErroruFalseuTESTFN2ugrpupwduUID_GID_SUPPORTuzipfileuZIP_SUPPORTu_fake_renameumock_renameu
write_fileu	read_fileuTestCaseu
TestShutilu	TestWhichuTestMoveuTestCopyFileu
TermsizeTestsu	test_mainu__name__(((u5/opt/alt/python33/lib64/python3.3/test/test_shutil.pyu<module>sfR"







�����d�x.