ogf #dZdZdZddlZddlmZddlmZmZddl m Z dd l m Z Gd d ejZGd d ejZy)z Cyril Jaquierz Copyright (c) 2004 Cyril JaquierGPLN) failmanager) FailManagerFailManagerEmpty)IPAddr) FailTicketcjeZdZfdZfdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZxZS) AddFailurecVtt| d|_t |_y)Call before every test case.N)superr setUp_AddFailure__itemsr_AddFailure__failManagerself __class__s D/usr/lib/python3/dist-packages/fail2ban/tests/failmanagertestcase.pyrzAddFailure.setUp%s! D!$,"}$c*tt| y)zCall after every test case.N)rr tearDownrs rrzAddFailure.tearDown+s D"$rcddgddgddgddgddgddgddgddgddgddgddgddgdd gg |_|jD]-}|jjt|d |d /y) N 193.168.0.128g;fAz 87.142.124.10 100.100.10.10geAgeAgfAggAhAr)rr addFailurer )ris r _addDefItemszAddFailure._addDefItems/s"L1 < ( < ( < ( < ( < ( < ( < ( < ( < ( < ( < ( < ( *$, <<9a  AaD!A$!789rc|j|j|jjd|j|jj d|jj d|j|jj d|jj dy)N r)r assertEqualrsize getFailTotal setFailTotalrs rtestFailManagerAddzAddFailure.testFailManagerAdd@s4%%**,a04%%224b9!!!$4%%224a8!!"%rcd}||j_gd}d}|D]D}|dz}tdd|z |g}|jd|jj |F|jj }|j t|d|d}|j |jt||j t|j||j |j|t||z dtdd|}|jt||jj ||jj }|j t|d|d}|j |jdt|z|j t|j||j |j|t||z d|jj ||jj }|j t|d|d}|j |jdt|zdz|j t|j||j |j|t||z dd |j_|jj ||jj }|d}|j t|jd |jdy) Nr)zabc z123 zABC z1234 P z 127.0.0.1iњ;riњ;r) r maxMatchesr setAttemptr_FailManager__failListr$len getAttempt getMatches setMatches)rr-failuresrfticket manFailLists rtestFailManagerAdd_MaxMatchesz(AddFailure.testFailManagerAdd_MaxMatchesHs*",$ 2(! )a71 {JNQC 86 Q  ( ) ""99+3{#Q' { #&6$$&H 63v((*+Z86$$&X1K1L(MN k?H =&CM"'""99+3{#Q' { #&6$$&CM(9:3v((*+Z86$$&X1K1L(MN'""99+3{#Q' { #&6$$&CM(9A(=>3v((*+Z86$$&X1K1L(MN"#$'""99+ { #&3v((*+Q/Drc8|j|j|jjd|jj d|j|jjd|jj dy)NiXr#)r r$r getMaxTime setMaxTimer(s rtestFailManagerMaxTimez!AddFailure.testFailManagerMaxTimezst4%%002C8#4%%002B7$rc|j|jjd|jjd|j|jj dy)Nrz 111.111.1.111r)r r delFailurer$r%r(s rtestDelzAddFailure.testDelsU004%%**,a0rc|jd}|jj||j|jj dy)Ng5fArr rcleanupr$r%r timestamps r testCleanupOKzAddFailure.testCleanupOKF)Y'4%%**,a0rc|jd}|jj||j|jj dy)Ng9fArrArCs rtestCleanupNOKzAddFailure.testCleanupNOKrFrcd|j|jjd|jj}|j |j d|j t|j ttft|}t|}|j |d|j |d|j| |jd|j |jd|j t|dy)Nrz]FailTicket: ip=193.168.0.128 time=1167605999.0 bantime=None bancount=0 #attempts=5 matches=[]rz]FailTicket: ip=193.168.0.128 time=1000002000.0 bantime=None bancount=0 #attempts=5 matches=[])r r setMaxRetrytoBanr$getID assertTrue isinstancestrrrepr assertFalsesetTimegetTime)rr6 ticket_str ticket_reprs r testbanOKzAddFailure.testbanOKs  #    # # %&6<<>?3//*V\\^c6];<6{*V + bdbdv:..6>>#\2v;bdrc|j|jjd|jt|jj y)Nr,)r rrK assertRaisesrrLr(s r testbanNOKzAddFailure.testbanNOKs?  $$d&8&8&>&>?rc`|j|jj}|j|j d|jj}|j|j d|j t |jjy)Nr)r rrLassertNotEqualrMrYr)rr6s r testWindowzAddFailure.testWindows    # # %&fllno6    # # %&fllno6$d&8&8&>&>?rc|jj}t}|j}|jt |t |k(d}|j|j dd|j |j td|jD]!}|j |j #d|_ |j|j d|_ td|jD]!}|j |j #|j|j dd|j |j ddy)NTriF) r_FailManager__bgSvcrrNidservicerRrange_BgService__threshold_BgService__serviceTime)rbgSvcfailManager2ndbgSvc2rs r testBgServicezAddFailure.testBgServices"    0 0%=.  - -&//"U)r&z)* &//%--d+,5==?# E// 0%aEMMO$%#.%//%--/""-% E// 0%aEMMO$%//%--t,-5==-.r)__name__ __module__ __qualname__rrr r)r8r<r?rErHrWrZr]rh __classcell__rs@rr r #sH% %9"&0d%11 1 d6@ @/rr c>eZdZfdZfdZedZdZxZS)FailmanagerComplexctt| t|_t j |_dt _y)r r"N)rrorr _FailmanagerComplex__failManagerrlogLevel_FailmanagerComplex__saved_llrs rrzFailmanagerComplex.setUps0D')"}$(($/+rcTtt| |jt_yN)rrorrsrrrrs rrzFailmanagerComplex.tearDownsD*,+rc#KGddt}d}gd}||krFtdddD]}||dkr||xxdz cc<nd||< |||f|dz }||krEyyw) Nc$eZdZdZdZdZdZy))FailmanagerComplex._ip_range.._ipc@djtt|S)N.)joinmaprPr(s r__str__z1FailmanagerComplex._ip_range.._ip.__str__s 88CTN ##rct|SrurPr(s r__repr__z2FailmanagerComplex._ip_range.._ip.__repr__ t9rct|Srurr(s r__key__z1FailmanagerComplex._ip_range.._ip.__key__rrcTt|ddz|ddzz|ddzz|dzS)Nrrrr")intr(s r__hash__z2FailmanagerComplex._ip_range.._ip.__hash__s8 aBaB.aA=QG HHrN)rirjrkr}rrrrr_iprxs$Irrr)rrrr"r)listrb)maxipsrrcns r _ip_rangezFailmanagerComplex._ip_ranges ID I!! F !AbM qtczqTQYT AaD  SV61 F s AA$"A$c|jtjjsdndD]\}}|dk(r|j t |d'|dk(r|j t |dH|dk(r|j t |di|dk(r|j t |d |d k(s|j t |d y) Niiz 127.0.0.255rz 127.0.1.0z 127.0.3.233iz 127.0.255.255iz 127.1.0.0)runittestF2Bfastr$rP)rrips rtestCheckIPGeneratorz'FailmanagerComplex.testCheckIPGenerators~~8<<+<+rsL. 2   >!&n/""n/b1+**1+r