Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/psutil/tests/__pycache__/test_posix.cpython-35.pyc



Cs[?@s\dZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddZ!ddZ"ddZ#ej$edGd d!d!ej%Z&ej$edGd"d#d#ej%Z'e(d$krXee)dS)%zPOSIX specific tests.N)AIX)BSD)LINUX)MACOS)OPENBSD)POSIX)SUNOS)PY3)APPVEYOR)get_kernel_version)get_test_subprocess)mock)
PYTHON_EXE)
reap_children)retry_before_failing)run_test_module_by_name)sh)skip_on_access_denied)TRAVIS)unittest)wait_for_pid)whichcCsts|jdd}tr0|jdd}trH|jdd}t|}tss|jddj}yt|SWntk
r|SYnXd	S)
zkExpects a ps command with a -o argument and parse the result
    returning only the value of interest.
    z --no-headers  z-o startz-o stimez-o rssz	-o rssize
N)	rreplacerrrsplitstripint
ValueError)cmdoutputr"/test_posix.pyps+s
r$cCs3d}trd}td||fjddS)NcommandZcommzps --no-headers -o %s -p %srr)rr$r)pidfieldr"r"r#ps_nameIsr(cCs,d}tstrd}td||fS)Nr%argszps --no-headers -o %s -p %s)rrr$)r&r'r"r"r#ps_argsPsr*z
POSIX onlyc@sZeZdZdZeddZeddZddZdd	Zd
dZ	dd
Z
ddZee
ddZee
ddZddZddZddZddZejepedddZdd Zd!d"Zejed#ejed$d%d&Zd'd(Zd)S)*TestProcesszBCompare psutil results against 'ps' command line utility (mainly).cCs5ttddgdtjj|_t|jdS)Nz-Ez-Ostdin)rr
subprocessPIPEr&r)clsr"r"r#
setUpClass[szTestProcess.setUpClasscCstdS)N)r)r/r"r"r#
tearDownClassaszTestProcess.tearDownClasscCs?td|j}tj|jj}|j||dS)Nzps --no-headers -o ppid -p %s)r$r&psutilProcessZppidassertEqual)selfZppid_psZppid_psutilr"r"r#	test_ppideszTestProcess.test_ppidcCsBtd|j}tj|jjj}|j||dS)Nzps --no-headers -o uid -p %s)r$r&r2r3uidsrealr4)r5Zuid_psZ
uid_psutilr"r"r#test_uidjszTestProcess.test_uidcCsBtd|j}tj|jjj}|j||dS)Nzps --no-headers -o rgid -p %s)r$r&r2r3Zgidsr8r4)r5Zgid_psZ
gid_psutilr"r"r#test_gidoszTestProcess.test_gidcCs?td|j}tj|jj}|j||dS)Nzps --no-headers -o user -p %s)r$r&r2r3usernamer4)r5Zusername_psZusername_psutilr"r"r#
test_usernametszTestProcess.test_usernamecCsctj}tjddt;}|j|jt|jj	|j
sXtWdQRXdS)Nzpsutil.pwd.getpwuidside_effect)r2r3r
patchKeyErrorr4r;strr7r8calledAssertionError)r5pZfunr"r"r#test_username_no_resolutionys%z'TestProcess.test_username_no_resolutioncCsTtjdtd|j}tj|jjdd}|j||dS)Ng?zps --no-headers -o rss -p %sri)timesleepr$r&r2r3memory_infor4)r5Zrss_psZ
rss_psutilr"r"r#test_rss_memorys
 zTestProcess.test_rss_memorycCsTtjdtd|j}tj|jjdd}|j||dS)Ng?zps --no-headers -o vsz -p %sri)rErFr$r&r2r3rGr4)r5Zvsz_psZ
vsz_psutilr"r"r#test_vsz_memorys
 zTestProcess.test_vsz_memorycCst|j}tjj|j}tj|jjj}t	j
dd|}t	j
dd|}|j||dS)Nz\d.\d)r(r&ospathbasenamelowerr2r3nameresubr4)r5Zname_psZname_psutilr"r"r#	test_nameszTestProcess.test_namecCsud}dddg}tjdd|Dtjdd|'tj}|j|jdWdQRXWdQRXdS)Nzlong-program-namezlong-program-name-extendedZfooZbarzpsutil._psplatform.Process.namereturn_valuez"psutil._psplatform.Process.cmdline)r
r>r2r3r4rO)r5rOcmdlinerCr"r"r#test_name_longs

zTestProcess.test_name_longcCsrd}tjdd|Ptjddtjdd'tj}|j|jdWdQRXWdQRXdS)Nzlong-program-namezpsutil._psplatform.Process.namerSz"psutil._psplatform.Process.cmdliner=rrJ)r
r>r2AccessDeniedr3r4rO)r5rOrCr"r"r#test_name_long_cmdline_ad_excs
z)TestProcess.test_name_long_cmdline_ad_exccCsrd}tjdd|Ptjddtjdd'tj}|jtj|jWdQRXWdQRXdS)Nzlong-program-namezpsutil._psplatform.Process.namerSz"psutil._psplatform.Process.cmdliner=rrJ)r
r>r2Z
NoSuchProcessr3assertRaisesrO)r5rOrCr"r"r#test_name_long_cmdline_nsp_excs
z*TestProcess.test_name_long_cmdline_nsp_exczps -o start not availablecCstd|jjdd}tj|jj}tjj|jd}t	|}tjj|jd}|j
|||gdS)Nzps --no-headers -o start -p %srrz%H:%M:%S)r$r&rr2r3Zcreate_timedatetimeZ
fromtimestampstrftimeroundassertIn)r5Ztime_psZtime_psutilZtime_psutil_tstampZround_time_psutilZround_time_psutil_tstampr"r"r#test_create_times 		zTestProcess.test_create_timecCszt|j}tj|jj}y|j||Wn8tk
ru|dt|}|j||YnXdS)N)r(r&r2r3Zexer4rBlen)r5Zps_pathnameZpsutil_pathnameZadjusted_ps_pathnamer"r"r#test_exes
zTestProcess.test_execCsDt|j}djtj|jj}|j||dS)Nr)r*r&joinr2r3rTr4)r5Z
ps_cmdlineZpsutil_cmdliner"r"r#test_cmdlines!zTestProcess.test_cmdlineznot reliable on SUNOSznot reliable on AIXcCs9td|j}tjj}|j||dS)Nzps --no-headers -o nice -p %s)r$r&r2r3nicer4)r5Zps_niceZpsutil_nicer"r"r#	test_niceszTestProcess.test_nicec	
sfdd}tjtj}g}ddddddd	d
ddg
}trstdkrs|jdtrtdkr|jdxttjD]jds|krqqy@|j	}x!t
d
D]}||qW|j	}Wntjk
r#YqXt||dkrd||f}|j|qW|r~|j
ddj|dS)Ncs]f}t|d}|dk	rUt|rUdkrHtjf}||n|dS)Nrlimit)getattrcallabler2Z
RLIMIT_NOFILE)rCattrr))rOr"r#calls
z&TestProcess.test_num_fds.<locals>.call	terminatekillZsuspendZresumercsend_signalwaitZchildrenZas_dictZmemory_info_ex$reZnum_ctx_switches_rz@failure while processing Process.%s method (before=%s, after=%s)r)rnrorp)rnrorq)r2r3rKgetpidrrappenddir
startswithZnum_fdsrangerVabsfailra)	r5rirCZfailures
ignored_namesZnum1xZnum2ryr")rOr#test_num_fdss4
	

zTestProcess.test_num_fdsN)__name__
__module____qualname____doc__classmethodr0r1r6r9r:r<rDrrrHrIrRrUrWrYrskipIfrrr^r`rbrrrdr|r"r"r"r#r+Ws,			
$

!r+c@seZdZdZeddZejedeje	deje
dddd	Zejepe	oe
jd
eddZd
dZddZddZddZejedddZdS)TestSystemAPIszTest some system APIs.cCsVtstr!ddddg}nddddg}t|dtj}|jdj}|jdksvtt	rt
|tjj
}g}xP|jdd	dD]5}|rt|jdj}|j|qW|j|jtj}|j|jts2trBd|krB|jdd|j||dS)
Nr$z-Az-or&Zaxstdoutrrr)rrrr-r.communicaterpollrBr	r@sysrencodingrrrtremover&r2Zpidssortrrinsertr4)r5r rCr!Zpids_psliner&Zpids_psutilr"r"r#	test_pids s( 

zTestSystemAPIs.test_pidszunreliable on SUNOSzunreliable on TRAVISZifconfigzno ifconfig cmdcCsqtd}x^tjddjD]D}x;|jD]}|j|r8Pq8W|jd||fq%WdS)Nzifconfig -aZpernicTz/couldn't find %s nic in 'ifconfig -a' output
%s)rr2Znet_io_counterskeysrrvry)r5r!Znicrr"r"r#test_nic_names?szTestSystemAPIs.test_nic_namesz unreliable on APPVEYOR or TRAVIScCstd}|jd}dd|D}dd|D}|jt|ttjx:tjD],}|j|j||j|j|qpWdS)NZwhorcSs g|]}|jdqS)r)r).0r{r"r"r#
<listcomp>Ts	z-TestSystemAPIs.test_users.<locals>.<listcomp>cSs g|]}|jdqS)r)r)rr{r"r"r#rUs	)	rrr4r_r2usersr]rOZterminal)r5outlinesrZ	terminalsur"r"r#
test_usersNs"zTestSystemAPIs.test_userscCs]tjddttjd5}|jttjjt	j
|jsRtWdQRXdS)Nzpsutil._psposix.os.killr=rJ)
r
r>OSErrorerrnoEBADFrXr2_psposixZ
pid_existsrKrsrArB)r5mr"r"r#test_pid_exists_let_raise[sz(TestSystemAPIs.test_pid_exists_let_raisecCs]tjddttjd5}|jttjjt	j
|jsRtWdQRXdS)Nzpsutil._psposix.os.waitpidr=rJ)
r
r>rrrrXr2rwait_pidrKrsrArB)r5rr"r"r#test_os_waitpid_let_raisedsz(TestSystemAPIs.test_os_waitpid_let_raisec
CsitjddttjdA}|jtjjtjj	t
jdd|js^t
WdQRXdS)Nzpsutil._psposix.os.waitpidr=rJtimeoutg{Gz?)r
r>rrZEINTRrXr2rTimeoutExpiredrrKrsrArB)r5rr"r"r#test_os_waitpid_eintrls	z$TestSystemAPIs.test_os_waitpid_eintrcCsQtjddd5}|jttjjtj|j	sFt
WdQRXdS)Nzpsutil._psposix.os.waitpidrSr)rr)r
r>rXrr2rrrKrsrArB)r5rr"r"r#test_os_waitpid_bad_ret_statusus
	z-TestSystemAPIs.test_os_waitpid_bad_ret_statuszunreliable on AIXc
Cs/dd}d
}xtjddD]}tj|j}y||j\}}}}Wndtk
r}	zDt|	j}	d|	ksd|	ksd	|	krw%nWYdd}	~	Xq%X|j|j	|d
||j|j
|d
||j|j|d
||j|j|d
dq%WdS)NcSstd|j}|jdd}|j}t|dd}t|dd}t|dd}t|djdd	}||||fS)
Nzdf -k %srrirn%rJ)rrrrfloatr)devicerrZfieldstotalusedfreepercentr"r"r#dfsz*TestSystemAPIs.test_disk_usage.<locals>.dfriallFzno such file or directoryzraw devices not supportedzpermission deniedZdeltarii@)
r2Zdisk_partitions
disk_usageZ
mountpointrRuntimeErrorr@rNZassertAlmostEqualrrrr)
r5rZ	tolerancepartusagerrrrerrr"r"r#test_disk_usage~s"
zTestSystemAPIs.test_disk_usageN)r}r~rrrrrrrrrrr
r2rrrrrrrrr"r"r"r#rs+
			r__main__)*rrZrrKrPr-rrEr2rrrrrrrZpsutil._compatr	Zpsutil.testsr
rrr
rrrrrrrrrrr$r(r*rZTestCaser+rr}__file__r"r"r"r#<module>sN
Back to Directory File Manager