ó
ì$Sc           @   s‹   d  Z  d Z d Z d d l Z d d l 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 j f d „  ƒ  YZ d S(	   s   Daniel Blacks   Copyright (c) 2013 Daniel Blackt   GPLiÿÿÿÿN(   t   Actions(   t	   DummyJailt   ExecuteActionsc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s:   t  ƒ  |  _ t |  j ƒ |  _ t j ƒ  \ |  _ |  _ d S(   s   Call before every test case.N(   R   t   _ExecuteActions__jailR   t   _ExecuteActions__actionst   tempfilet   mkstempt   _ExecuteActions__tmpfilet   _ExecuteActions__tmpfilename(   t   self(    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyt   setUp"   s    c         C   s   t  j |  j ƒ d  S(   N(   t   ost   removeR	   (   R
   (    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyt   tearDown(   s    c         C   sœ   |  j  j d ƒ |  j  j d ƒ |  _ |  j j d |  j ƒ |  j j d |  j ƒ |  j j d |  j ƒ |  j j d |  j ƒ |  j j	 d |  j ƒ d  S(   Nt   ips   echo ip start 64 >> "%s"s   echo ip ban <ip> >> "%s"s   echo ip unban <ip> >> "%s"s   echo ip check <ip> >> "%s"s   echo ip stop >> "%s"(
   R   t	   addActiont	   getActiont   _ExecuteActions__ipt   setActionStartR	   t   setActionBant   setActionUnbant   setActionCheckt   setActionStop(   R
   (    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyt   defaultActions+   s    c         C   s  |  j  j d ƒ |  j |  j  j d ƒ ƒ |  j |  j  j ƒ  ƒ |  j t |  j  j d g Œ |  j  j d ƒ |  j  j d ƒ |  j  j d ƒ |  j t |  j  j d g Œ |  j t |  j  j ƒ |  j  j	 d ƒ |  j
 |  j  j ƒ  d ƒ |  j t |  j  j d ƒ d  S(   Nt   tests   nonexistant actiont   test1i   s	   127.0.0.1(   R   R   t
   assertTrueR   t   getLastActiont   assertRaisest   KeyErrort	   delActiont
   IndexErrort
   setBanTimet   assertEqualt
   getBanTimet
   ValueErrort   removeBannedIP(   R
   (    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyt   testActionsManipulation4   s    c         C   s   |  j  ƒ  |  j j ƒ  t |  j ƒ } t j d ƒ |  j | j ƒ  d ƒ |  j j	 ƒ  |  j j
 ƒ  |  j |  j j ƒ  d d d g  f g ƒ d  S(	   Ni   s   ip start 64
s   Currently bannedi    s   Total banneds   IP list(   s   Currently bannedi    (   s   Total bannedi    (   R   R   t   startt   openR	   t   timet   sleepR"   t   readt   stopt   joint   status(   R
   t   f(    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyt   testActionsOutputD   s    
(   t   __name__t
   __module__R   R   R   R&   R0   (    (    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyR       s
   					(   t
   __author__t   __copyright__t   __license__t   unittestR)   t   sysR   R   t   server.actionsR   t	   dummyjailR   t   TestCaseR   (    (    (    s0   /usr/share/fail2ban/testcases/actionstestcase.pyt   <module>   s   $