summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsebres <serg.brester@sebres.de>2016-08-18 14:40:53 +0200
committersebres <serg.brester@sebres.de>2016-08-18 15:05:03 +0200
commitaf126eb308712bfb95829d618800be52ea73a57d (patch)
tree7bfe6f17f9159acce4e428ece160d7b1e59def25
parentf7f618b15d92969014d73857ebbf587653c6cf18 (diff)
downloadfail2ban-af126eb308712bfb95829d618800be52ea73a57d.tar.gz
simplify fail2ban-testcases: move some code pieces inclusive option parser from fail2ban-testcases to tests/utils.py (+ coverage)
-rwxr-xr-xbin/fail2ban-testcases58
-rw-r--r--fail2ban/tests/utils.py51
2 files changed, 54 insertions, 55 deletions
diff --git a/bin/fail2ban-testcases b/bin/fail2ban-testcases
index d8c40727..5539d4c6 100755
--- a/bin/fail2ban-testcases
+++ b/bin/fail2ban-testcases
@@ -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
#
diff --git a/fail2ban/tests/utils.py b/fail2ban/tests/utils.py
index 764536bf..6d0828d4 100644
--- a/fail2ban/tests/utils.py
+++ b/fail2ban/tests/utils.py
@@ -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;