mirror of https://github.com/fail2ban/fail2ban
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.0 KiB
92 lines
3.0 KiB
#!/usr/bin/python
|
|
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: t -*-
|
|
# vi: set ft=python sts=4 ts=4 sw=4 noet :
|
|
|
|
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
# Author: Cyril Jaquier
|
|
#
|
|
# $Revision$
|
|
|
|
__author__ = "Cyril Jaquier"
|
|
__version__ = "$Revision$"
|
|
__date__ = "$Date$"
|
|
__copyright__ = "Copyright (c) 2004 Cyril Jaquier"
|
|
__license__ = "GPL"
|
|
|
|
|
|
import unittest, logging, sys, time, os
|
|
|
|
from common.version import version
|
|
from testcases import banmanagertestcase
|
|
from testcases import clientreadertestcase
|
|
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
|
|
# Sun Aug 14 12:00:00 CEST 2005
|
|
|
|
# yoh: we need to adjust TZ to match the one used by Cyril so all the timestamps match
|
|
old_TZ = os.environ.get('TZ', None)
|
|
os.environ['TZ'] = 'Europe/Zurich'
|
|
time.tzset()
|
|
MyTime.setTime(1124013600)
|
|
|
|
# Gets the instance of the logger.
|
|
logSys = logging.getLogger("fail2ban")
|
|
# Add the default logging handler
|
|
stdout = logging.StreamHandler(sys.stdout)
|
|
logSys.addHandler(stdout)
|
|
logSys.setLevel(logging.FATAL)
|
|
|
|
print "Fail2ban " + version + " test suite. Please wait..."
|
|
|
|
tests = unittest.TestSuite()
|
|
|
|
# Filter
|
|
tests.addTest(unittest.makeSuite(filtertestcase.IgnoreIP))
|
|
tests.addTest(unittest.makeSuite(filtertestcase.LogFile))
|
|
tests.addTest(unittest.makeSuite(filtertestcase.GetFailures))
|
|
tests.addTest(unittest.makeSuite(filtertestcase.DNSUtilsTests))
|
|
# 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
|
|
tests.addTest(unittest.makeSuite(banmanagertestcase.AddFailure))
|
|
# ClientReader
|
|
tests.addTest(unittest.makeSuite(clientreadertestcase.JailReaderTest))
|
|
# DateDetector
|
|
tests.addTest(unittest.makeSuite(datedetectortestcase.DateDetectorTest))
|
|
|
|
# Tests runner
|
|
testRunner = unittest.TextTestRunner()
|
|
testRunner.run(tests)
|
|
|
|
# Just for the sake of it reset the TZ
|
|
# yoh is planing to move all this into setup/teardown methods within tests
|
|
os.environ.pop('TZ')
|
|
if old_TZ:
|
|
os.environ['TZ'] = old_TZ
|
|
time.tzset()
|