mirror of https://github.com/fail2ban/fail2ban
ENH: separate out log capture framework for other test cases - now utils.LogCaptureTestCase
parent
916649119e
commit
5688c064ad
|
@ -24,40 +24,23 @@ __author__ = "Cyril Jaquier"
|
||||||
__copyright__ = "Copyright (c) 2004 Cyril Jaquier"
|
__copyright__ = "Copyright (c) 2004 Cyril Jaquier"
|
||||||
__license__ = "GPL"
|
__license__ = "GPL"
|
||||||
|
|
||||||
import unittest, time
|
import time
|
||||||
import logging, sys
|
import logging, sys
|
||||||
from server.action import Action
|
from server.action import Action
|
||||||
from StringIO import StringIO
|
from utils import LogCaptureTestCase
|
||||||
|
|
||||||
class ExecuteAction(unittest.TestCase):
|
class ExecuteAction(LogCaptureTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
"""Call before every test case."""
|
"""Call before every test case."""
|
||||||
self.__action = Action("Test")
|
self.__action = Action("Test")
|
||||||
|
LogCaptureTestCase.setUp(self)
|
||||||
# For extended testing of what gets output into logging
|
|
||||||
# system, we will redirect it to a string
|
|
||||||
logSys = logging.getLogger("fail2ban")
|
|
||||||
|
|
||||||
# Keep old settings
|
|
||||||
self._old_level = logSys.level
|
|
||||||
self._old_handlers = logSys.handlers
|
|
||||||
# Let's log everything into a string
|
|
||||||
self._log = StringIO()
|
|
||||||
logSys.handlers = [logging.StreamHandler(self._log)]
|
|
||||||
logSys.setLevel(getattr(logging, 'DEBUG'))
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
"""Call after every test case."""
|
"""Call after every test case."""
|
||||||
# print "O: >>%s<<" % self._log.getvalue()
|
LogCaptureTestCase.tearDown(self)
|
||||||
logSys = logging.getLogger("fail2ban")
|
|
||||||
logSys.handlers = self._old_handlers
|
|
||||||
logSys.level = self._old_level
|
|
||||||
self.__action.execActionStop()
|
self.__action.execActionStop()
|
||||||
|
|
||||||
def _is_logged(self, s):
|
|
||||||
return s in self._log.getvalue()
|
|
||||||
|
|
||||||
def testNameChange(self):
|
def testNameChange(self):
|
||||||
self.assertEqual(self.__action.getName(), "Test")
|
self.assertEqual(self.__action.getName(), "Test")
|
||||||
self.__action.setName("Tricky Test")
|
self.__action.setName("Tricky Test")
|
||||||
|
|
|
@ -22,8 +22,9 @@ __author__ = "Yaroslav Halchenko"
|
||||||
__copyright__ = "Copyright (c) 2013 Yaroslav Halchenko"
|
__copyright__ = "Copyright (c) 2013 Yaroslav Halchenko"
|
||||||
__license__ = "GPL"
|
__license__ = "GPL"
|
||||||
|
|
||||||
import logging, os, re, tempfile, sys, time, traceback
|
import unittest, logging, os, re, tempfile, sys, time, traceback
|
||||||
from os.path import basename, dirname
|
from os.path import basename, dirname
|
||||||
|
from StringIO import StringIO
|
||||||
|
|
||||||
#
|
#
|
||||||
# Following "traceback" functions are adopted from PyMVPA distributed
|
# Following "traceback" functions are adopted from PyMVPA distributed
|
||||||
|
@ -105,3 +106,29 @@ def mtimesleep():
|
||||||
# no sleep now should be necessary since polling tracks now not only
|
# no sleep now should be necessary since polling tracks now not only
|
||||||
# mtime but also ino and size
|
# mtime but also ino and size
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class LogCaptureTestCase(unittest.TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
|
||||||
|
# For extended testing of what gets output into logging
|
||||||
|
# system, we will redirect it to a string
|
||||||
|
logSys = logging.getLogger("fail2ban")
|
||||||
|
|
||||||
|
# Keep old settings
|
||||||
|
self._old_level = logSys.level
|
||||||
|
self._old_handlers = logSys.handlers
|
||||||
|
# Let's log everything into a string
|
||||||
|
self._log = StringIO()
|
||||||
|
logSys.handlers = [logging.StreamHandler(self._log)]
|
||||||
|
logSys.setLevel(getattr(logging, 'DEBUG'))
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
"""Call after every test case."""
|
||||||
|
# print "O: >>%s<<" % self._log.getvalue()
|
||||||
|
logSys = logging.getLogger("fail2ban")
|
||||||
|
logSys.handlers = self._old_handlers
|
||||||
|
logSys.level = self._old_level
|
||||||
|
|
||||||
|
def _is_logged(self, s):
|
||||||
|
return s in self._log.getvalue()
|
||||||
|
|
Loading…
Reference in New Issue