mirror of https://github.com/fail2ban/fail2ban
simplify fail2ban-testcases: move some code pieces inclusive option parser from fail2ban-testcases to tests/utils.py (+ coverage)
parent
f7f618b15d
commit
af126eb308
|
@ -37,11 +37,9 @@ if os.path.exists("fail2ban/__init__.py"):
|
|||
sys.path.insert(0, ".")
|
||||
from fail2ban.version import version
|
||||
|
||||
from fail2ban.tests.utils import initProcess, gatherTests
|
||||
from fail2ban.tests.utils import getOptParser, initProcess, gatherTests
|
||||
from fail2ban.setup import updatePyExec
|
||||
|
||||
from optparse import OptionParser, Option
|
||||
|
||||
# Update fail2ban-python env to current python version (where f2b-modules located/installed)
|
||||
bindir = os.path.dirname(
|
||||
# __file__ seems to be overwritten sometimes on some python versions (e.g. bug of 2.6 by running under cProfile, etc.):
|
||||
|
@ -49,52 +47,7 @@ bindir = os.path.dirname(
|
|||
)
|
||||
updatePyExec(bindir)
|
||||
|
||||
def get_opt_parser():
|
||||
# use module docstring for help output
|
||||
p = OptionParser(
|
||||
usage="%s [OPTIONS] [regexps]\n" % sys.argv[0] + __doc__,
|
||||
version="%prog " + version)
|
||||
|
||||
p.add_options([
|
||||
Option('-l', "--log-level", type="choice",
|
||||
dest="log_level",
|
||||
choices=('heavydebug', 'debug', 'info', 'notice', 'warning', 'error', 'critical'),
|
||||
default=None,
|
||||
help="Log level for the logger to use during running tests"),
|
||||
Option('-v', "--verbosity", action="store",
|
||||
dest="verbosity", type=int,
|
||||
default=None,
|
||||
help="Set numerical level of verbosity (0..4)"),
|
||||
Option("--log-direct", action="store_false",
|
||||
dest="log_lazy",
|
||||
default=True,
|
||||
help="Prevent lazy logging inside tests"),
|
||||
Option('-n', "--no-network", action="store_true",
|
||||
dest="no_network",
|
||||
help="Do not run tests that require the network"),
|
||||
Option('-g', "--no-gamin", action="store_true",
|
||||
dest="no_gamin",
|
||||
help="Do not run tests that require the gamin"),
|
||||
Option('-m', "--memory-db", action="store_true",
|
||||
dest="memory_db",
|
||||
help="Run database tests using memory instead of file"),
|
||||
Option('-f', "--fast", action="store_true",
|
||||
dest="fast",
|
||||
help="Try to increase speed of the tests, decreasing of wait intervals, memory database"),
|
||||
Option('-i', "--ignore", action="store_true",
|
||||
dest="negate_re",
|
||||
help="negate [regexps] filter to ignore tests matched specified regexps"),
|
||||
Option("-t", "--log-traceback", action='store_true',
|
||||
help="Enrich log-messages with compressed tracebacks"),
|
||||
Option("--full-traceback", action='store_true',
|
||||
help="Either to make the tracebacks full, not compressed (as by default)"),
|
||||
|
||||
])
|
||||
|
||||
return p
|
||||
|
||||
parser = get_opt_parser()
|
||||
(opts, regexps) = parser.parse_args()
|
||||
(opts, regexps) = getOptParser(__doc__).parse_args()
|
||||
|
||||
#
|
||||
# Process initialization corresponding options (logging, default options, etc.)
|
||||
|
@ -103,13 +56,10 @@ opts = initProcess(opts)
|
|||
verbosity = opts.verbosity
|
||||
|
||||
#
|
||||
# Let know the version
|
||||
# Gather tests (and filter corresponding options)
|
||||
#
|
||||
if opts.verbosity != 0: # pragma: no cover
|
||||
print("Fail2ban %s test suite. Python %s. Please wait..." \
|
||||
% (version, str(sys.version).replace('\n', '')))
|
||||
|
||||
tests = gatherTests(regexps, opts)
|
||||
|
||||
#
|
||||
# Run the tests
|
||||
#
|
||||
|
|
|
@ -43,6 +43,7 @@ from ..server.mytime import MyTime
|
|||
from ..server.utils import Utils
|
||||
# for action_d.test_smtp :
|
||||
from ..server import asyncserver
|
||||
from ..version import version
|
||||
|
||||
|
||||
logSys = getLogger(__name__)
|
||||
|
@ -73,6 +74,49 @@ class DefaultTestOptions(optparse.Values):
|
|||
#
|
||||
# Initialization
|
||||
#
|
||||
def getOptParser(doc=""):
|
||||
Option = optparse.Option
|
||||
# use module docstring for help output
|
||||
p = optparse.OptionParser(
|
||||
usage="%s [OPTIONS] [regexps]\n" % sys.argv[0] + doc,
|
||||
version="%prog " + version)
|
||||
|
||||
p.add_options([
|
||||
Option('-l', "--log-level", type="choice",
|
||||
dest="log_level",
|
||||
choices=('heavydebug', 'debug', 'info', 'notice', 'warning', 'error', 'critical'),
|
||||
default=None,
|
||||
help="Log level for the logger to use during running tests"),
|
||||
Option('-v', "--verbosity", action="store",
|
||||
dest="verbosity", type=int,
|
||||
default=None,
|
||||
help="Set numerical level of verbosity (0..4)"),
|
||||
Option("--log-direct", action="store_false",
|
||||
dest="log_lazy",
|
||||
default=True,
|
||||
help="Prevent lazy logging inside tests"),
|
||||
Option('-n', "--no-network", action="store_true",
|
||||
dest="no_network",
|
||||
help="Do not run tests that require the network"),
|
||||
Option('-g', "--no-gamin", action="store_true",
|
||||
dest="no_gamin",
|
||||
help="Do not run tests that require the gamin"),
|
||||
Option('-m', "--memory-db", action="store_true",
|
||||
dest="memory_db",
|
||||
help="Run database tests using memory instead of file"),
|
||||
Option('-f', "--fast", action="store_true",
|
||||
dest="fast",
|
||||
help="Try to increase speed of the tests, decreasing of wait intervals, memory database"),
|
||||
Option('-i', "--ignore", action="store_true",
|
||||
dest="negate_re",
|
||||
help="negate [regexps] filter to ignore tests matched specified regexps"),
|
||||
Option("-t", "--log-traceback", action='store_true',
|
||||
help="Enrich log-messages with compressed tracebacks"),
|
||||
Option("--full-traceback", action='store_true',
|
||||
help="Either to make the tracebacks full, not compressed (as by default)"),
|
||||
])
|
||||
return p
|
||||
|
||||
def initProcess(opts):
|
||||
# Logger:
|
||||
logSys = getLogger("fail2ban")
|
||||
|
@ -123,7 +167,12 @@ def initProcess(opts):
|
|||
#
|
||||
stdout.setFormatter(Formatter(fmt))
|
||||
logSys.addHandler(stdout)
|
||||
#
|
||||
|
||||
# Let know the version
|
||||
if opts.verbosity != 0:
|
||||
print("Fail2ban %s test suite. Python %s. Please wait..." \
|
||||
% (version, str(sys.version).replace('\n', '')))
|
||||
|
||||
return opts;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue