diff --git a/MANIFEST b/MANIFEST index b3d825c4..0f09a20c 100644 --- a/MANIFEST +++ b/MANIFEST @@ -45,6 +45,7 @@ testcases/clientreadertestcase.py testcases/filtertestcase.py testcases/__init__.py testcases/datedetectortestcase.py +testcases/actiontestcase.py testcases/servertestcase.py testcases/files/testcase01.log testcases/files/testcase02.log diff --git a/fail2ban-testcases b/fail2ban-testcases index b4825473..b2eaa47c 100755 --- a/fail2ban-testcases +++ b/fail2ban-testcases @@ -39,6 +39,7 @@ from testcases import failmanagertestcase from testcases import filtertestcase from testcases import servertestcase from testcases import datedetectortestcase +from testcases import actiontestcase from server.mytime import MyTime # Set the time to a fixed, known value @@ -63,6 +64,7 @@ tests.addTest(unittest.makeSuite(filtertestcase.GetFailures)) # Server #tests.addTest(unittest.makeSuite(servertestcase.StartStop)) #tests.addTest(unittest.makeSuite(servertestcase.Transmitter)) +tests.addTest(unittest.makeSuite(actiontestcase.ExecuteAction)) # FailManager tests.addTest(unittest.makeSuite(failmanagertestcase.AddFailure)) # BanManager diff --git a/testcases/actiontestcase.py b/testcases/actiontestcase.py new file mode 100644 index 00000000..8a66320e --- /dev/null +++ b/testcases/actiontestcase.py @@ -0,0 +1,47 @@ +# This file is part of Fail2Ban. +# +# Fail2Ban is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# Fail2Ban is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Fail2Ban; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Author: Cyril Jaquier +# +# $Revision: 382 $ + +__author__ = "Cyril Jaquier" +__version__ = "$Revision: 382 $" +__date__ = "$Date: 2006-09-25 19:03:48 +0200 (Mon, 25 Sep 2006) $" +__copyright__ = "Copyright (c) 2004 Cyril Jaquier" +__license__ = "GPL" + +import unittest, time +from server.action import Action + +class ExecuteAction(unittest.TestCase): + + def setUp(self): + """Call before every test case.""" + self.__action = Action("Test") + + def tearDown(self): + """Call after every test case.""" + self.__action.execActionStop() + + def testExecuteActionBan(self): + self.__action.setActionStart("touch /tmp/fail2ban.test") + self.__action.setActionStop("rm -f /tmp/fail2ban.test") + self.__action.setActionBan("echo -n") + self.__action.setActionCheck("[ -e /tmp/fail2ban.test ]") + + self.assertTrue(self.__action.execActionBan(None)) + \ No newline at end of file