%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/fail2ban/tests/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyc

�
��&dc@s;dZdZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZmZd	d
lmZyddlmZejZWnek
r�dZnXd	dlmZmZejjejje�d
�Z d�Z!defd��YZ"dS(s"Copyright (c) 2013 Steven HiscockstGPLi����Ni(t
FileContainer(tMyTime(t
FailTicket(tActionstUtilsi(t	DummyJail(tdatabase(tLogCaptureTestCasetlogSystfilescCs tjjrtd�St|�S(Ns:memory:(tunittesttF2Bt	memory_dbt
Fail2BanDb(tfilename((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
getFail2BanDb0s
tDatabaseTestcBseZd�Zed��Zejd��Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsqtt|�j�tdkr1tjd��nd|_tjj	sdt
jdd�\}|_nd|_dS(sCall before every test case.sEUnable to import fail2ban database module as sqlite is not available.s.dbt	fail2ban_s:auto-create-in-memory:N(
tsuperRtsetUpRtNoneRtSkipTestt
dbFilenameRR
ttempfiletmkstempt_db(tselft_((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyR8s	cCs=t|jt�r6|jdkr6t|j�|_n|jS(Ns:auto-create-in-memory:(t
isinstanceRt
basestringRR(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pytdbDs!cCs/t|jt�r"|jj�n||_dS(N(RRRtclose(Rtvalue((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyRIscCsItt|�j�tdkr#dS|jdk	rEtj|j�ndS(sCall after every test case.N(RRttearDownRRRtostremove(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyR"Os
cCsA|jjdkr$tjd��n|j|j|jj�dS(Ns:memory:sin :memory: database(RRRRtassertEqualR(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestGetFilenameXscCs^|j|jjd�d|j_|j|jjd�d|j_|j|jjd�dS(Ni�Qt1y6mon15d5h30mi�_�s2y 12mon 30d 10h 60miiP��(R%Rtpurgeage(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestPurgeAge]s
cCs|jtjtd�dS(Ns/this/path/should/not/exist(tassertRaisestsqlite3tOperationalErrorR(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestCreateInvalidPathdscCsi|jjdkr$tjd��n|j�t|j�|_|j|jj	|jj
�kd�dS(Ns:memory:sin :memory: databases3Jail not retained in Db after disconnect reconnect.(RRRRttestAddJailRRt
assertTruetjailtnametgetJailNames(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestCreateAndReconnectjs
cCs�tjd�s!tjd��nd|_|jdkrWtjdd�\}|_nx�dD]�}|j	d|�t
jtj
jtd�|j�tj|jtj�}tj||�tj|�z�t|j�|_|dkrJ|jd	d
ddt�|j|jj�td
g��|jt|jj��d�nW|jdd
ddt�|jt|jj��d�|jt|jj��d�Wd|jr�|jjdkr�tj|jj�d|_nXq^WdS(Nssqlite3 --versionsno sqlite3 commands.dbRi�6i�s)[test-repair], next phase - file-size: %dsdatabase_v1.dbsRepair seems to be successfulsCheck integritysDatabase updatedtalls/tmp/Fail2BanDb_pUlZJh.logisRepair seems to be failedsNew database created.is:memory:(i�6i�(Rt
executeCmdRRRRRRRtpruneLogtshutiltcopyfileR#tpathtjointTEST_FILES_DIRtopentO_RDWRt	ftruncateR RtassertLoggedtTrueR%tgetLogPathstsettlenR2t_dbFilenameR$t_dbBackupFilename(RRt	truncSizetf((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestRepairDbus4	

	""	#cCs�d|_zh|jdkr9tjdd�\}|_ntjtjj	t
d�|j�t|j�|_|j|jj
�tdg��|j|jj�tdg��tdddg�}|j|jj�d	|�|j|jjtj�tj�|jt|jjtjd
�|jjddd
d�}|jt|�d
�|j|d	j�d�Wd|jr�|jjdkr�tj|jj�nXdS(Ns.dbRsdatabase_v1.dbs"DummyJail #29162448 with 0 ticketss/tmp/Fail2BanDb_pUlZJh.logs	127.0.0.1gף��ծ�Auabc
iitfromtimeiW�RtcorrectBanTimei@�s:memory:(RRRRRR7R8R#R9R:R;RR%R2RBRARtgetBanstupdateDbt__version__R*tNotImplementedErrortgetCurrentBansRCt
getBanTimeRDR$RE(RRtticketttickets((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestUpdateDb�s$	""" cCs�d|_|jdkr6tjdd�\}|_ntjtjj	t
d�|j�t|j�|_|j|jj
�tdg��|j|jj�tdg��|jj�}|jt|�d�tddd	d
dg�}|jd�|j|d
|�|j|dj�d�|j|jjtj�tj�tdd�|_|jjd|jdd�}|jt|�d�|j|d
j�d�|jt|jjtjd�tj|jj�dS(Ns.dbRsdatabase_v2.dbspam-generics/var/log/auth.logis1.2.3.7if�~Tu�Dec  3 09:31:08 f2btest test:auth[27658]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7u�Dec  3 09:31:32 f2btest test:auth[27671]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7u�Dec  3 09:31:34 f2btest test:auth[27673]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7iiis1.2.3.8R1R0RIiX(RRRRRR7R8R#R9R:R;RR%R2RBRARKRCRt
setAttempttgetIPRLRMRR0RORPR*RNR$RE(RRtbansRQRR((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
testUpdateDb2�s0	""	
" cCsKt�|_|jj|j�|j|jj|jjt�kd�dS(NsJail not added to database(RR0RtaddJailR/R1R2R@(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyR.�s
cCs}|j�tjdd�\}}t|d�|_|jj|j|j�|j||jj	|j��t
j|�dS(Ns.logtFail2BanDb_sutf-8(R.RRRt
fileContainerRtaddLogR0tassertInRAR#R$(RRR((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
testAddLog�s
cCsx|j�|jj�}t|d�}|jd�|j�|jj�|jj�|jj�|jj�}|j|dk�|j	j
|j|j�t|d�|_|j
|jj�d�|j
|j	j|j|j�|�t|d�}|jd�|j�t|d�|_|j
|jj�d�|j
|j	j|j|j�d�tj|�dS(Ntws,Some text to write which will change md5sum
isutf-8s%Some different text to change md5sum
(R]RZtgetFileNameR<twriteR treadlinetgetPosR/Rt	updateLogR0RR%R[RR#R$(RRtfile_tlastPos((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
testUpdateLog�s.







cCs�|j�|j|jj|jd�d�xVdD]N}|jj|jd|dt|��|j|jj|jd�|�q3WdS(Nssystemd-journali/hYi/hYi/hYtTEST(i/hYi/hYi/hY(R.R%Rt
getJournalPosR0Rt
updateJournaltstr(Rtt((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestUpdateJournal	s

"
&cCs�|j�tdddg�}|jj|j|�|jjd|j�}|jt|�d�|jt	|dt��dS(Ns	127.0.0.1isabc
R0i(
R.RRtaddBanR0RKR%RCR/R(RRQRR((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
testAddBans
cCs�|j�tdddddg�tdddddg�td	ddddg�td
ddddg�tdddd
g�tddddg�tdddd
g�g}x$|D]}|jj|j|�q�W|jd�|jjd|j�}|jd�|jt|�d�x�t	|�D]�\}}t
jd|||j��t
jd||j��|j||j
�|j
��|jt||j��t|j���q+W|jd�tj}z|dt_x$|D]}|jj|j|�q�W|jd�|jjd|j�}|jd�|jt|�d�Wd|t_X|jd�|jj|jtd��|jjd|j�}|jt|�d�|jdd�dS(Ns	127.0.0.1isuser "test"suser "�����"suser "äöüß"s	127.0.0.2uuser "Ñâåòà"uuser "äöüß"s	127.0.0.3s	127.0.0.4uuser "äöüß"s	127.0.0.5sunterminated �s	127.0.0.6uunterminated Ïs	127.0.0.7sjson dumps failedR0sjson loads failedisreadtickets[%d]: %rs == tickets[%d]: %rs[test-phase 2] simulate errorssf2b-test::non-existing-encodingis[test-phase 3] still operable?s	127.0.0.8i(R.RRRmR0tassertNotLoggedRKR%RCt	enumeratet	DefLogSystdebugtgetDataRUt
getMatchesR6Rt
PREFER_ENCR?(RRRRQtreadticketstitpriorEnc((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestAddBanInvalidEncodedsF



 0
		




cCs||j�x=dD]5}td|ddg�}|jj|j|�qW|jjd|j�}|jt|�d�|S(	Niiis
192.0.2.%distest
R0(iii(R.RRRmR0RKR%RC(RRwRQRR((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
_testAdd3BansXs

cCs�|j�}|jj|j|dj��|jt|jjd|j��d�|jj|j|dj�|dj��|jt|jjd|j��d�dS(NiR0ii(RzRtdelBanR0RUR%RCRK(RRR((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
testDelBanas
 (-cCsI|j�|jj|j�|jt|jjd|j��d�dS(NR0i(RzRR{R0R%RCRK(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt
testFlushBansjs
cCs�|j�|jj|jtdtj�ddg��|jj|jtdtj�ddg��|jt|jj	d|jdd��d�|jt|jj	d|jdd	��d
�|jt|jj	d|jdd��d�dS(
Ns	127.0.0.1i<sabc
i(R0tbantimei2iiii����i(
R.RRmR0RRttimeR%RCRK(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestGetBansWithTimeps
	&	&..c	CsQ|j�d}idgd6tdg�d6idgd6tdg�d6idgd6tddg�d6id	gd6tddg�d6g}g|D]}|dd
^q�}d}xZ|D]R}|d8}td
tj�|d|�}|jd�|jj|j|�q�W||j_	|jj
d
�}|j|j�d
�|j|j
�t|��|jt|j��|�|j|j�||�td
tj�d|ditddg�d6�}|jt|��|jj|j|�|jj
d
�}|j|j
�dt|��|jt|j��|�|j|j�||�|jj|jd
dtj�d�}|j|dk	�|j|j
�t|��|jt|j��|�|j|j�||�|jj|jd
dtj�ddd�}|jt|j��d�|j|j�|dd�|jj|jd
dtj�ddd
�}|jt|j��d
�|jdddg�d
|j_	|jj|j|�|jj|jd
dtj�d�}|j|dk	�|j|j
�t|��|jt|j��d
�dS(Nisabc
tmatchesttesttusers123
sABC
troots1234
iiPi
s	127.0.0.1tdataiRIidt
maxmatchesit1t2t3(R.RBRRRRTRRmR0t
maxMatchest
getBansMergedR%RUt
getAttemptRCRtROR/Rt
setMatches(RR�tfailuresRGtmatches2findRwRQ((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestGetBansMerged_MaxMatches|s\
 &!


 (%	%	(c	Cs�|j�tdd�}|jj|�tdtj�ddg�}|jd�|jj|j	|�tdtj�ddg�}|jd	�|jj|j	|�td
tj�d	dg�}|jd�|jj|j	|�tdtj�ddg�}|jd�|jj||�|jj
d�}|j|j�d�|j|j
�d�|j|j�dddg�|jj
dd
|j	�}|j|j�d�|j|j
�d�|j|j�ddg�|jt|�t|jj
dd
|j	���td
tj�d	dg�}|jd�|jj|j	|�|jt|�t|jj
dd
|j	���tdtj�ddg�}|jd�|jj|j	|�|jt|�t|jj
dd
|j	���|jj
�}|jt|�d�|jttd�|D���g|D]}|j�^qP�|jj
d
|�}|jt|�d�|jj
dd�}|jt|�d�|jj
dd�}|jt|�d�|jj
dd�}|jt|�d�|jj
dd�}|jt|�d�|jjd
|j	�}|jt|�d�|jjd
ddd�}|j|j�d�|jjd
|j	dddtj��}|jt|�d�|jjd
|j	dddtj�tjd��}|jt|�d�|jjd
|j	dddtj�tjd��}|jt|�d�|jd�|jj|j	|�|jjd
|j	dddtj�tjd��}|jt|�d�|jd|j	j��|j	jjd�|jjd
|j	dddtj�tjd��}|jt|�d�|j|dj�d�dS(NR1sDummyJail-2s	127.0.0.1i(sabc
i
is123
is	127.0.0.2sABC
iFR0icss|]}|j�VqdS(N(RU(t.0RQ((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pys	<genexpr>�siR~iiiii����tipt
forbantimeRIt1years(ignore ticket (with new max ban-time %r)(R.RRRXRRRRTRmR0R�R%RUR�RttidtassertNotEqualRCtassertSortedEqualtlistRBRORtstr2secondst
setBanTimeR?t
getMaxBanTimetactionsRP(Rtjail2RQt	newTicketRR((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestGetBansMerged�s�




	"
	"
	" 
cCs�|j�|j|j_|jj|j�t|j�}|jdtjj	t
d�i�td�}|jd�|j
ddg�|jj|�|j�|jdttttf�dS(Ntaction_checkainfosaction.d/action_checkainfo.pys1.2.3.4iR�sban ainfo %s, %s, %s, %s(R.RR0RRXRtaddR#R9R:R;RRTR�t
putFailTickett_Actions__checkBanR?R@(RR�RQ((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestActionWithDBs


cCsx|j�|jj|j�|jj�}|jt|�dkoM|jj|�|jjdt�}|jt|�dko�|jj|�|jjdt	�}|j
t|�dk�|jj|j�|jj�}|jt|�dko|jj|�|jjdt	�}|jt|�dko?|jj|�|jjdt�}|j
t|�dk�dS(Nitenabledi(R.RtdelJailR0R2R\RCR1tFalseR@R/RX(Rtjails((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyttestDelAndAddJail/s
((((cCs�|j�|jj�|jt|jj��d�|jj|j�|jj�|jt|jj��d�|j�|jj|j�|jj�|jt|jj��d�|jt|jj	d|j��d�|j�|jj
|jtdtj
�dg��|jj|j�|jj�|jt|jj��d�|jt|jj	d|j��d�dS(NiiR0s	127.0.0.1sabc
(R.RtpurgeR%RCR2R�R0RnRKRmRRR(R((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt	testPurgeBs$




(
	"
(t__name__t
__module__RtpropertyRtsetterR"R&R)R-R3RHRSRWR.R]RfRlRnRyRzR|R}R�R�R�R�R�R�(((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyR6s4								#		!			'			
	<							9	i		(#t
__copyright__t__license__R#tsysRRR+R7t
server.filterRt
server.mytimeRt
server.ticketRtserver.actionsRRt	dummyjailRtserverRRtImportErrorRtutilsRR	RqR9R:tdirnamet__file__R;RR(((sC/usr/lib/python2.7/site-packages/fail2ban/tests/databasetestcase.pyt<module>s*


!	

Zerion Mini Shell 1.0