
    Gkc                     `    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dS )
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dS )TicketTestsc                 8   t          j                    }ddg}ddg}g d}t          d||          }|                     |                                d           |                     |                                d           |                     |                                |           |                     |                                |           |                    d           |                     |	                                d           |
                    d           |                     |                                d           |                     |                    d          d           |                     |                    |dz   d	z   d                     |                     |                    |dz   d	z   d                     |                    d           |                     |                    d          d           |                     |                                d           |                     |                    |                     |                     |                    |dz   d	z                        |                    d
           |                     |                    |dz   d	z                        |                    d           t          j                    }ddg}t#          d||          }|                    d           |                     |                                d           |                     |                                d           |                     |                                |           |                     |                                |           |                    d           |                    d	           |                     |	                                d           |                     |                                d	           |                    d           |                     |                                d           |                    d           |                     |                                d           |                                 |                     |	                                d           |                     |                                d           |                     |                                |           |                    dgd	d           |                     |	                                d           |                     |                                d           |                     |                                |           |                     |                                |           |                    |dz
  d           |                     |                                |           |                     |                                d           |                    |dz   d           |                     |                                |dz              |                     |                                d           |                    |dz   d           |                     |                                |dz              |                     |                                d           |                    |dz   d           |                     |                                |dz              |                     |                                d           |                     |	                                d           |                    dd           |                     |                                g dddd           t#          |          }|                     ||           |                     |                                |                                           |                     |	                                d           |                     |                                d           |                     |                                |           |                     |                                |                                           |                     |                                |                                           |                     |                                |                                           d S )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QWWYY000QWWYY000QYY[["%%%Q\\^^X...LLOOOQ\\^^Q'''MM"Q]]__b)))Q\\%((%000Q\\"r'A+u55666OOALLea77888LLQ\\%(("---Q\\^^R(((Q\\"%%&&&OOALLb1--...LLQ\\"r'A+..///LL 
B!G	OR	1	1BMM%RXXZZ111RXXZZ111RZZ\\2&&&R]]__h///MM!KKNNNR]]__a(((R[[]]A&&&KKNNNR[[]]A&&&KKNNNR[[]]A&&&FFHHH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OQ Q Q B


CRRZZ\\3;;==111S^^%%q)))S\\^^Q'''S^^%%x000S[[]]BJJLL111S[[]]BJJLL111S^^%%r}}77777    c                    t          j                    }t          d|ddi          }|                     |                                d           |                     |                                d           t          d|ddi          }|                     |                                d           |                     |                                d           d S )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QWWYY...QWWYY,,,$b[/ABBBAQWWYY 5666QWWYY,,,,,r<   c                    d}t          dd          }g }dD ]}}|D ]x}t          |||           |r|                    |           n|                    |           |D ]5}|                     t          t          ||                    ||v            6y~t          |          }|D ]2}|                     t          t          ||                               3d S )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 G G!1 	


1






1


 	G 	GB


4 3 344bIo
F
F
F
F	GG v&&&F 1 1
ood762..//00001 1r<   c           	         t          dd ddg          }|                    dddddd           |                     |                                ddgd	dddd
           |                    d ddd           |                     |                                ddd           |                    ddd d           |                     |                                ddd           |                     |                    d          d           |                     |                    d          d           |                    dd           |                     |                                dddd           |                    dddd           |                     |                    d          d           |                     |                    d          d           |                     |                                dddd           |                     |                    d          ddd           |                     |                    d           ddi           |                    dd            |                     |                                ddd           |                     |                    dd          d           |                    dd            |j        g d  |                     |                                dddd           |                    i            |                     |                                i            |                     |                    dd          d           d S )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                 2    |                                  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FFiikkH%!yUYclmmo o o II$@@BBBiikk4((* * * IItTBBCCCiikkt,,. . . 	ii   	ii	
   IIXHI---QYY[[dH==? ? ? IIhvx888ii   	ii   	iikk-DAAC C C 	ii#$$4((* * * 	ii0011$   IIfdiikk4002 2 2 	ii	""   IIk8$$$AI44455iikkBBD D D IIbMMMQYY[["%%%QYYz955yAAAAAr<   N)__name__
__module____qualname__r;   rB   rQ   rg    r<   r:   r
   r
      s^        V8 V8 V8p	- 	- 	-1 1 1$AB AB AB AB ABr<   r
   )
__author____copyright____license__server.mytimer   unittestserver.ticketr   r   r   TestCaser
   rk   r<   r:   <module>rs      s   * (
Q " " " " " "  9 9 9 9 9 9 9 9 9 9xB xB xB xB xB(# xB xB xB xB xBr<   