o _:&@sddZdZdZddlZddlmZmZddlmZdd l m Z Gd d d ej Z Gd d d ej Z dS)z Cyril Jaquierz Copyright (c) 2004 Cyril JaquierGPLN) setUpMyTimetearDownMyTime) BanManager) BanTicketcspeZdZfddZfddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ZS) AddFailurecs,tt|ttdd|_t|_dS)Call before every test case. 193.168.0.128;fAN)superr setUprr_AddFailure__ticketr_AddFailure__banManagerself __class__C/usr/lib/python3/dist-packages/fail2ban/tests/banmanagertestcase.pyr#s  zAddFailure.setUpctt|tdSzCall after every test case.N)r r tearDownrrrrrr* zAddFailure.tearDowncCsZ||j|j||jd||jd|jd||jddS)Nrr) assertTruer addBanTicketr assertEqualsize getBanTotal setBanTotalrrrrtestAdd/s  zAddFailure.testAddcCs>||j|j||j|j||jddS)Nr)rrrr assertFalserrrrrrtestAddDuplicate6szAddFailure.testAddDuplicatecCs|j}d}dD]j\}}tdd}td|}|dur ||||j|||j|||jd|j | }|| || ||| ||k| |}|| d|dkrs|||dq dS)Nr))r N)gTfAN)r iQ)r r r rr$) r getBanTimer setBanTimerrr"rr getTicketByIDgetIDgetEndOfBanTimegetTime)r defBanTimeprevEndOfBanTimetnewbtnewticket1ticket2 banticketrrrtestAddDuplicateWithTime;s&      z#AddFailure.testAddDuplicateWithTimecCs4||j|jtdd}||j|dS)Nr r )rrrrr _inBanListrticketrrr testInListOK[ zAddFailure.testInListOKcCs4||j|jtdd}||j|dS)Nz 111.111.1.111r )rrrrrr"r3r4rrr testInListNOK`r7zAddFailure.testInListNOKc Cst|j|j}d}dD]3}|j|j|d7}||||j||t |j |d||||fq|j|j|d7}|d||j||d||j||t |j |d||d|fdS)Nr)ir$rzFBanTicket: ip=%s time=%s bantime=%s bancount=%s #attempts=0 matches=[]r$r9) rrgetIPr*rrr&r"rstrr')rr5cirrrtestBanTimeIncres"   zAddFailure.testBanTimeIncrcCs|j}|j}||j|j||j|j||j|g||j||d|jg||j d||j|jt |j |d}| |j||t |j||dd|t |j||dddtdD]}t d||}||||d||j|q|t |j||ddd|t |j||ddd ||j ddS) NrriXz 193.168.0.%s r2)rr%rr*rrr3r unBanListrrr(r"lenranger&)rbtimestimer5r=rrr testUnbanxs&    $ $$zAddFailure.testUnbanc Cs|j}|jdz7||j|j||j|j||j|j |dg||j dW|j|dS|j|w)Nr$r) rr%r&rrrr3rrCr*r)rrFrrrtestUnbanPermanents  "zAddFailure.testUnbanPermanentcCsXtddtddg}|dd|D]}|j|q||jjddddd gdS) Nz 192.0.2.1r z 192.0.2.2rr$T)orderedwithTimez:192.0.2.1 2006-12-31 23:59:59 + 600 = 2007-01-01 00:09:59z9192.0.2.2 2006-12-31 23:59:59 + -1 = 9999-12-31 23:59:59)rr&rrassertSortedEqual getBanList)rticketstrrr testBanListszAddFailure.testBanList)__name__ __module__ __qualname__rrr!r#r2r6r8r>rHrIrP __classcell__rrrrr "s    r cs\eZdZfddZfddZdZddZdd Zd d Zd d Z ddZ ddZ Z S)StatusExtendedCymruInfocs`tt|tjtd|_d|_d|_ d|_ t |jd}t |_ ||j |dS)r z 93.184.216.3415133EUripenccr N)r rUrunittestF2BSkipIfNoNetworkr _StatusExtendedCymruInfo__ban_ip_StatusExtendedCymruInfo__asn!_StatusExtendedCymruInfo__country_StatusExtendedCymruInfo__rirrr$_StatusExtendedCymruInfo__banManagerrrr4rrrrs  zStatusExtendedCymruInfo.setUpcrr)r rUrrrrrrrrz StatusExtendedCymruInfo.tearDown)TNcCs^t}|jdr|jjtjjrdndd}n|jd}|dr-d|f|_td|d|S) Nrr)timeoutrerrorFz.Skip test because service is not available: %s) rU availabler`getBanListExtendedCymruInforYrZfastgetSkipTest)rtc cymru_inforrr_getBanListExtendedCymruInfos    z4StatusExtendedCymruInfo._getBanListExtendedCymruInfocCs,|}|||jg|jg|jgddS)Nasncountryrir)rkassertDictEqualr]r^r_)rrjrrr testCymruInfosz%StatusExtendedCymruInfo.testCymruInfocC ||j||jgdSN)rr`geBanListExtendedASNrkr]rrrrtestCymruInfoASNz(StatusExtendedCymruInfo.testCymruInfoASNcCrrrs)rr`geBanListExtendedCountryrkr^rrrrtestCymruInfoCountryrvz,StatusExtendedCymruInfo.testCymruInfoCountrycCrrrs)rr`geBanListExtendedRIRrkr_rrrrtestCymruInfoRIRrvz(StatusExtendedCymruInfo.testCymruInfoRIRcCst|_tdd}||j||}||dgdgdgdtdd}||j||}|j|ddgddgdd gdd td dS) Nz0.0.0.0r nxdomainrlz8.0.0.0g<fA3356USarinr$)levelkey) rr`rrrrkrprLr;)rr5rjrrrtestCymruInfoNxdomains(   z-StatusExtendedCymruInfo.testCymruInfoNxdomain) rQrRrSrrrdrkrqrurxrzrrTrrrrrUs   rU) __author__ __copyright__ __license__rYutilsrrserver.banmanagerr server.ticketrTestCaser rUrrrrs