Your IP : 172.28.240.42


Current Path : /usr/share/apport/testsuite/
Upload File :
Current File : //usr/share/apport/testsuite/test_fileutils.pyc


Yc@sddlZddlZddlZddlZddlZddlZddlZddlZyddl	m
Z
Wn!ek
rddlm
Z
nXdej
fdYZedkrejndS(iN(tStringIOtTcBseZdZdZedZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZRS(cCs4tjj|_tjtj_tjj|_dS(N(tapportt	fileutilst
report_dirtorig_report_dirttempfiletmkdtempt_config_filetorig_config_file(tself((s-/usr/share/apport/testsuite/test_fileutils.pytsetUp
scCs>tjtjj|jtj_d|_|jtj_dS(N(	tshutiltrmtreeRRRRtNoneR	R(R
((s-/usr/share/apport/testsuite/test_fileutils.pyttearDowns	cCstjjtjjd}tjjtjjd}t|d}|jdWdQXt|d}|jdWdQXtj|dtj|d|rtjjtjjd}t|d}|jd	WdQXtj|d
|||gS||gSdS(sCreate some test reportss
rep1.crashs
rep2.crashtwsreport 1Nsreport 2isinaccessible.crashtinaccessiblei(	tostpathtjoinRRRtopentwritetchmod(R
tcreate_inaccessibletr1tr2tfdtri((s-/usr/share/apport/testsuite/test_fileutils.pyt_create_reportss
cCsd}tgtjj|D]}|jdr|^qdksLtd	}d	}xtjdD]}|jdsqhntjj	tj
jd|}tgtjj|D]}|jdr|^q}|r|dkr|}n|r|dkr|}n|rh|rhPqhqhW|rV|jtj
j|d	d|n|r|jtj
j|d	d|n|rtj
j|}|j|d	d||jtj
j||j|jdnd	S(
sfind_package_desktopfile()tbashs.desktopis/usr/share/applications/isno-desktop package %ssmulti-desktop package %ssone-desktop package %sN(tlenRt	packagingt	get_filestendswithtAssertionErrorRRtlistdirtget_file_packageRRtassertEqualRtfind_package_desktopfiletassertNotEqualt
assertTruetexists(R
t	nodesktoptft
onedesktoptmultidesktoptdtpkgtnum((s-/usr/share/apport/testsuite/test_fileutils.pyttest_find_package_desktopfile-s6*			&&cCs|jtjjdt|jtjjdt|jtjjdt|jtjjdt|jtjjdt|jtjjdtdS(slikely_packaged()s	/bin/bashs/usr/bin/foos/usr/local/bin/foos/home/test/bin/foos/tmp/foos/var/lib/fooN(R&RRtlikely_packagedtTruetFalse(R
((s-/usr/share/apport/testsuite/test_fileutils.pyttest_likely_packagedQscCsX|jtjjdd|jtjjdd|jtjjdddS(sfind_file_package()s	/bin/bashRs/bin/catt	coreutilss/nonexistingN(R&RRtfind_file_packageR(R
((s-/usr/share/apport/testsuite/test_fileutils.pyttest_find_file_package\scCs%|jtjjgtjdkr=|jt}n.g|jtD]}d|krM|^qM}|jttjjt|t|}x|D]z}|jtjj	|t
|j|tjj||jtjj	|t|jttjj|qWdS(s#get_new_reports() and seen_report()iRN(
R&RRtget_new_reportsRtgetuidRR4tsettseen_reportR5tremovetmark_report_seen(R
ttrtrtnr((s-/usr/share/apport/testsuite/test_fileutils.pyt	test_seencs.%

cCstjjtjjd}t|dWdQXtjjtjjd}t|dWdQXtjdtjjtjjd}t|dWdQXtjdtjj	|tj
|}tj
|}|j|j|jkdS(s5mark_report_upload() for a previously uploaded reports
report.uploadRNsreport.uploadedisreport.crash(
RRRRRRRttimetsleeptmark_report_uploadtstatR)tst_mtime(R
tuploadtuploadedtreportt	upload_stt	report_st((s-/usr/share/apport/testsuite/test_fileutils.pyttest_mark_2nd_report_uploadvs

cCs|jtjjgtjdkr=|jt}n.g|jtD]}d|krM|^qM}|jttjjt|x|D]}tjj	|qW|jttjjt|dS(sget_all_reports()iRN(
R&RRtget_all_reportsRR;RR4R<R?(R
R@RA((s-/usr/share/apport/testsuite/test_fileutils.pyttest_get_all_reportss.%
cCs|jtjjg|jtjjgtjdkr|jt}|jt	tjjt	||jt	tjj
t	|x|D]}tjj|qW|jt	tjjt	||jt	tjj
t	gnxg|jtD]}d|kr|^q}|jt	tjjt	g|jt	tjj
t	gdS(s5get_all_system_reports() and get_new_system_reports()iRN(R&RRROtget_all_system_reportsRR;RR4R<tget_new_system_reportsR?(R
R@RA((s-/usr/share/apport/testsuite/test_fileutils.pyttest_get_system_reportss%%
%(.%cCsX|j}xE|rS|jttjjt|tjj|jqWdS(sdelete_report()N(RR&R<RRROt
delete_reporttpop(R
R@((s-/usr/share/apport/testsuite/test_fileutils.pyttest_delete_reports	%cCstd}|jtjj|dtd}|jtjj|dtd}|jtjj|dtdtjtjtjd
}|jtjj|dtdtjtjtjd}|jtjj|dd	S(sget_recent_crashes()sProblemType: Crashis1ProblemType: Crash
Date: Wed Aug 01 00:00:01 1990sAProblemType: Crash
Date: Wed Aug 01 00:00:01 1990
CrashCounter: 3s+ProblemType: Crash
Date: %s
CrashCounter: 3iiiNi_(	RR&RRtget_recent_crashesRDtctimetmktimet	localtime(R
RA((s-/usr/share/apport/testsuite/test_fileutils.pyttest_get_recent_crashess		))c	Cstj}|jttjj|d|d<tjj|e}tjj	tjj
tjtjj
d}|j|j
dtjj
|tj|WdQXd|d<tjj|X}tjj	tjj
tjtjj
d}|j|j
dtjj
|WdQX|jttjj|tj|tjtjj	tjj
d	||jttjj|dS(
smake_report_file()sbash 1tPackageis%s/bashNs	/bin/bashtExecutablePaths%s/_bin_bashtpwned(tproblem_reportt
ProblemReporttassertRaisest
ValueErrorRRtmake_report_fileRRRRR$R)t
startswithtunlinktOSErrortsymlink(R
tprR,R((s-/usr/share/apport/testsuite/test_fileutils.pyttest_make_report_files
.#
.)
%cCstjjtjjd}tjjtjjd}tjjtjjd}t|d}|jdWdQXt|d}|jdWdQXt|d"}|jd|d	|fWdQX|jtjj	|gd
t|d}|jdWdQX|jtjj	||d	gdt|d}|jd
WdQX|jtjj	||d	|gdt|d}|jdWdQX|jtjj	||gddS(scheck_files_md5()s
test 1.txts
test:2.txtssums.txtRs
Some stuffNs
More stuffsJ2e41290da2fa3f68bd3313174467e3b5  %s
f6423dfbc4faf022e58b4d3f5ff71a70  %s
iscorrect md5sumssSome stuff!sfile 1 wrongsMore stuff!sfiles 1 and 2 wrongsfile 2 wrong(
RRRRRRRRR&tcheck_files_md5(R
tf1tf2tsumfileR((s-/usr/share/apport/testsuite/test_fileutils.pyttest_check_files_md5s(&)cCsdtj_|jtjjddd|jtjjdddddtjj_tj}|j	tj_|jtjjddd|jtjjdddddtjj_|j
d|j|jtjjddd|jtjjdddd|jtjjddd|jtjjddddd|jtjjdd	d
|jtjjdddtt|jtjjdd
dtt
|jtjjdddtd|jtjjdddt
dtt
|jtjjddd|jtjjdd	d|jtjjdddd|jtjjdddddtjj_|jdS(sget_config()s/nonexistingtmaintfootmoos:[main]
one=1
two = TWO
b1 = 1
b2=False
[spethial]
one= 99
tonet1tdefaultttwotTWOtb1tbooltb2tb3tspethialt99tnopeN(RRRR&t
get_configRtconfigRtNamedTemporaryFiletnameRtflushR4R5tclose(R
R,((s-/usr/share/apport/testsuite/test_fileutils.pyttest_get_configs4""

"%%%%+""(t__name__t
__module__RRR5RR2R6R9RCRNRPRSRVR[RiRnR(((s-/usr/share/apport/testsuite/test_fileutils.pyRs			$											t__main__(tunittestRRRRDR_tapport.fileutilsRtapport.packagingt	cStringIORtImportErrortiotTestCaseRRRo(((s-/usr/share/apport/testsuite/test_fileutils.pyt<module>s<