
    Gkc                     b    d Z dZdZddlmZ ddlZddlmZmZm	Z	  G d d	ej                        Zy)
zSerg G. Brester (sebres)z?Copyright (c) 2015 Serg G. Brester, 2015- Fail2Ban ContributorsGPL   )MyTime    N)Ticket
FailTicket	BanTicketc                   $    e Zd Zd Zd Zd Zd Zy)TicketTestsc                    t        j                         }ddg}ddg}g d}t        d||      }| j                  |j	                         d       | j                  |j                         d       | j                  |j                         |       | j                  |j                         |       |j                  d       | j                  |j                         d       |j                  d       | j                  |j                         d       | j                  |j                  d      d       | j                  |j                  |dz   d	z   d             | j                  |j                  |dz   d	z   d             |j!                  d       | j                  |j                  d      d       | j                  |j                         d       | j                  |j                  |             | j                  |j                  |dz   d	z                |j!                  d
       | j                  |j                  |dz   d	z                |j!                  d       t        j                         }ddg}t#        d||      }|j!                  d       | j                  |j	                         d       | j                  |j                         d       | j                  |j                         |       | j                  |j                         |       |j                  d       |j%                  d	       | j                  |j                         d       | j                  |j'                         d	       |j%                  d       | j                  |j'                         d       |j%                  d       | j                  |j'                         d       |j)                          | j                  |j                         d       | j                  |j'                         d       | j                  |j                         |       |j)                  dgd	d       | j                  |j                         d       | j                  |j'                         d       | j                  |j                         |       | j                  |j                         |       |j+                  |dz
  d       | j                  |j                         |       | j                  |j'                         d       |j+                  |dz   d       | j                  |j                         |dz          | j                  |j'                         d       |j+                  |dz   d       | j                  |j                         |dz          | j                  |j'                         d       |j+                  |dz   d       | j                  |j                         |dz          | j                  |j'                         d       | j                  |j                         d       |j-                  dd       | j                  |j/                         g dddd       t#        |      }| j                  ||       | j                  |j/                         |j/                                | j                  |j                         d       | j                  |j'                         d       | j                  |j                         |       | j                  |j                         |j                                | j                  |j                         |j                                | j                  |j                         |j                                y )Nfirstsecond)r   r   third193.168.0.128r   
   i  <            r      i      countryDE)matchesfailuresr   ticket)r   timer   assertEqualgetIDgetIPgetTime
getMatches
setAttempt
getAttemptsetBanCountgetBanCount
getBanTimeassertFalse
isTimedOut
assertTrue
setBanTimer   setRetrygetRetryinc
adjustTimesetDatagetData)selftmr   matches2matches3tftft2s           ?/usr/lib/python3/dist-packages/fail2ban/tests/tickettestcase.py
testTicketzTicketTests.testTicket!   s   	B!G"H+H 	G,AQWWY0QWWY0QYY["%Q\\^X.LLOQ\\^Q'MM"Q]]_b)Q\\%(%0Q\\"r'A+u56OOALLea78LLQ\\%("-Q\\^R(Q\\"%&OOALLb1-.LLQ\\"r'A+./LL 
B!G	OR	1BMM%RXXZ1RXXZ1RZZ\2&R]]_h/MM!KKNR]]_a(R[[]A&KKNR[[]A&KKNR[[]A&FFHR]]_a(R[[]A&R]]_h/FFG9aR]]_a(R[[]B'R]]_h/RZZ\2&MM"R%RZZ\2&R[[]B'MM"R%RZZ\2b5)R[[]B'MM"T'4 RZZ\2d7+R[[]B'MM"T'4 RZZ\2d7+R[[]A&R]]_a(JJy$RZZ\.A$OQ B
CRRZZ\3;;=1S^^%q)S\\^Q'S^^%x0S[[]BJJL1S[[]BJJL1S^^%r}}7    c                 l   t        j                         }t        d|ddi      }| j                  |j	                         d       | j                  |j                         d       t        d|ddi      }| j                  |j	                         d       | j                  |j                         d       y )Nz123-456-678ip	192.0.2.1)data)r?   5000)r   r   r   r   r    r!   )r3   r4   r7   s      r:   testDiffIDAndIPTicketz!TicketTests.testDiffIDAndIPTickety   s    	B}b['9:AQWWY.QWWY,$b[/ABAQWWY 56QWWY,r<   c                 n   d}t        dd      }g }dD ]i  }|D ]b  }t        |||       |r|j                  |       n|j                  |       |D ])  }| j	                  t        t        ||            ||v        + d k t        |      }|D ]&  }| j                  t        t        ||                   ( y )N)restoredbannedtestr   )TFTr   )	r   setattrappendremover   boolgetattrr   r+   )r3   flagsr   	trueflagsvff2s          r:   testTicketFlagszTicketTests.testTicketFlags   s    "EFAFI  G G!1


1



1
 	GB


4 34bIo
F	GGG v&F 1
ood762./01r<   c           	         t        dd ddg      }|j                  dddddd       | j                  |j                         ddgd	dddd
       |j                  d ddd       | j                  |j                         ddd       |j                  ddd d       | j                  |j                         ddd       | j                  |j                  d      d       | j                  |j                  d      d       |j                  dd       | j                  |j                         dddd       |j                  dddd       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                         dddd       | j                  |j                  d      ddd       | j                  |j                  d       ddi       |j                  dd        | j                  |j                         ddd       | j                  |j                  dd      d       |j                  dd        |j                  g d  | j                  |j                         dddd       |j                  i        | j                  |j                         i        | j                  |j                  dd      d       y )Nr   r   r   regionHamburgr   r   cityr   )r   r   rS   r   rU   FRParis)rS   r   rU   )rU   r   )rS   r   Bremen)rS   rU   BrandenburgBerlin)rU   rS   r   c                 (    | j                         dk(  S )NCOUNTRY)upper)ks    r:   <lambda>z,TicketTests.testTicketData.<locals>.<lambda>   s    !'')y0 r<   Unknown	continentEurope)r   RUrS   Moscowrc   rd   )ra   r   rS   anythingdefault)r   r1   r   r2   )r3   r7   s     r:   testTicketDatazTicketTests.testTicketData   s   /4'8)<=AIIh	9dFIFiikH%!yUYclmo II$@Biik4(* IItTBCiikt,. 	ii 	ii	
 IIXHI-QYY[dH=? IIhvx8ii 	ii 	iik-DAC 	ii#$4(* 	ii01$ IIfdiik402 	ii	" IIk8$AII45iikBD IIbMQYY["%QYYz95yAr<   N)__name__
__module____qualname__r;   rB   rQ   rg    r<   r:   r
   r
      s    V8p	-1$ABr<   r
   )
__author____copyright____license__server.mytimer   unittestserver.ticketr   r   r   TestCaser
   rk   r<   r:   <module>rs      s8   * (
Q "  9 9xB(## xBr<   