
$Sc           @   sp   d  Z  d Z d Z d d l Z d d l Z d d l Z d d l m Z d d l m	 Z	 d e	 f d     YZ
 d S(	   s   Cyril Jaquiers    Copyright (c) 2004 Cyril Jaquiert   GPLiN(   t   Action(   t   LogCaptureTestCaset   ExecuteActionc           B   s}   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z RS(   c         C   s    t  d  |  _ t j |   d S(   s   Call before every test case.t   TestN(   R   t   _ExecuteAction__actionR   t   setUp(   t   self(    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyR   "   s    c         C   s   t  j |   |  j j   d S(   s   Call after every test case.N(   R   t   tearDownR   t   execActionStop(   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyR   '   s    c         C   sF   |  j  |  j j   d  |  j j d  |  j  |  j j   d  d  S(   NR   s   Tricky Test(   t   assertEqualR   t   getNamet   setName(   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testNameChange,   s    c         C   s  i d d 6d d 6d d 6} |  j  t j i d d 6  |  j  t j i d	 d 6d d
 6  |  j  t j i d	 d 6d d
 6d d 6  |  j t j i d d 6 i d d 6 |  j t j i d d 6d d 6 i d d 6d d 6 |  j t j i d d 6d d
 6 i d d 6d d
 6 |  j t j i d d 6d d 6d d 6 i d d 6d d 6d d 6 |  j t j |  i d d 6d d 6d d 6 d  S(   Ns	   192.0.2.0t   HOSTs
   123 <HOST>t   ABCs	   890 <ABC>t   xyzs   <A>t   As   <B>t   Bs   <C>t   Cs   <C> <D> <X>t   funt   Xs   <C> <D> funs   <C> <B>t   cools   <C> cools/   to=<honeypot> fromip=<IP> evilperson=<honeypot>t	   failregext   pokiet   honeypott    t   ignoreregexs%   to=pokie fromip=<IP> evilperson=pokies   123 192.0.2.0s   890 123 192.0.2.0(   t   assertFalseR   t   substituteRecursiveTagsR
   (   R   t   aInfo(    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testSubstituteRecursiveTags1   s$    
$+'55'

c         C   s   i d d 6d d 6d d 6} |  j  |  j j d |  d  |  j  |  j j d	 |  d
  |  j  |  j j d |  d  |  j  |  j j d i d d 6 d  d  S(   Ns	   192.0.2.0R   t   123R   t   890R   s   Text<br>texts	   Text
texts   Text <HOST> texts   Text 192.0.2.0 texts   Text <xyz> text <ABC> ABCs   Text 890 text 123 ABCs	   <matches>s#   some >char< should \< be[ escap}ed&t   matchess*   some \>char\< should \\\< be\[ escap\}ed\&(   R
   R   t
   replaceTag(   R   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testReplaceTagM   s"    
c         C   s,  |  j  j d  |  j |  j  j   d  |  j  j d  |  j |  j  j   d  |  j  j d  |  j |  j  j   d  |  j  j d  |  j |  j  j	   d  |  j  j
 d  |  j |  j  j   d  |  j |  j d   |  j |  j  j d    |  j |  j d   |  j |  j d   d  S(	   Ns   touch /tmp/fail2ban.tests   rm -f /tmp/fail2ban.tests   echo -ns   [ -e /tmp/fail2ban.test ]t   truet   returneds   Invariant check faileds   returned successfully(   R   t   setActionStartR
   t   getActionStartt   setActionStopt   getActionStopt   setActionBant   getActionBant   setActionCheckt   getActionCheckt   setActionUnbant   getActionUnbanR   t
   _is_loggedt
   assertTruet   execActionBant   None(   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteActionBana   s    c         C   sC   |  j  j d  |  j |  j  j d    |  j |  j d   d  S(   NR   s   Nothing to do(   R   R/   R2   t   execActionUnbanR4   R1   (   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteActionEmptyUnbant   s    c         C   s]   |  j  j d d  |  j  j d  |  j  j d  |  j  j d  |  j |  j  j    d  S(   NR   s	   192.0.2.0s   touch /tmp/fail2ban.test.<HOST>s   rm -f /tmp/fail2ban.test.<HOST>s#   [ -e /tmp/fail2ban.test.192.0.2.0 ](   R   t   setCInfoR'   R)   R-   R2   t   execActionStart(   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteActionStartCtagsy   s
    c         C   ss   |  j  j d  |  j  j d  |  j  j d  |  j  j d  |  j |  j  j d    |  j |  j	 d   d  S(   NR   s   rm -f /tmp/fail2ban.tests   rm /tmp/fail2ban.tests   [ -e /tmp/fail2ban.test ]s   Unable to restore environment(
   R   R'   R)   R+   R-   R   R3   R4   R2   R1   (   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt(   testExecuteActionCheckRestoreEnvironment   s    c         C   s\   |  j  j d d  |  j |  j  j d  d  |  j  j d  |  j t |  j  j d  d  S(   Nt   ROSTs	   192.0.2.0(   R   R8   R
   t   getCInfot   delCInfot   assertRaisest   KeyError(   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteActionChangeCtags   s    c         C   sc   i d d 6} |  j  j d  |  j  j d  |  j |  j  j d    |  j |  j  j |   d  S(   NR    R   s   touch /tmp/fail2ban.test.123s   rm /tmp/fail2ban.test.<ABC>(   R   R+   R/   R2   R3   R4   R6   (   R   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteActionUnbanAinfo   s    
c         C   s@   |  j  j d  |  j |  j  j    |  j |  j d   d  S(   NR   s   Nothing to do(   R   R'   R2   R9   R1   (   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteActionStartEmpty   s    c         C   s'   t  j d  |  j |  j d   d  S(   Ns+   /bin/ls >/dev/null
bogusXXX now 2>/dev/nulls!   HINT on 7f00: "Command not found"(   R   t
   executeCmdR2   R1   (   R   (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   testExecuteIncorrectCmd   s    (   t   __name__t
   __module__R   R   R   R   R$   R5   R7   R:   R;   RA   RB   RC   RE   (    (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyR       s   													(   t
   __author__t   __copyright__t   __license__t   timet   loggingt   syst   server.actionR   t   utilsR   R   (    (    (    s/   /usr/share/fail2ban/testcases/actiontestcase.pyt   <module>   s   