mirror of https://github.com/fail2ban/fail2ban
TST+RF: Add ability to execute test from setup.py with setuptools
Note that the fail2ban version can no longer be imported from "fail2ban.version", as this breaks 2to3 conversion for testspull/181/head
parent
9e684abad7
commit
55810a3c30
|
@ -13,10 +13,8 @@ install:
|
|||
- pip install pyinotify
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then sudo apt-get install -qq python-gamin; fi
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install -q coveralls; fi
|
||||
before_script:
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 3* ]]; then ./fail2ban-2to3; fi
|
||||
script:
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then export PYTHONPATH="$PYTHONPATH:/usr/share/pyshared:/usr/lib/pyshared/python2.7"; fi
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then coverage run --rcfile=.travis_coveragerc bin/fail2ban-testcases; else python bin/fail2ban-testcases; fi
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then coverage run --rcfile=.travis_coveragerc setup.py test; else python setup.py test; fi
|
||||
after_success:
|
||||
- if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then coveralls; fi
|
||||
|
|
39
setup.py
39
setup.py
|
@ -22,7 +22,13 @@ __author__ = "Cyril Jaquier"
|
|||
__copyright__ = "Copyright (c) 2004 Cyril Jaquier"
|
||||
__license__ = "GPL"
|
||||
|
||||
from distutils.core import setup
|
||||
try:
|
||||
import setuptools
|
||||
from setuptools import setup
|
||||
except ImportError:
|
||||
setuptools = None
|
||||
from distutils.core import setup
|
||||
|
||||
try:
|
||||
# python 3.x
|
||||
from distutils.command.build_py import build_py_2to3 as build_py
|
||||
|
@ -36,7 +42,23 @@ from os.path import isfile, join, isdir
|
|||
import sys
|
||||
from glob import glob
|
||||
|
||||
from fail2ban.version import version
|
||||
if setuptools and "test" in sys.argv:
|
||||
import logging
|
||||
logSys = logging.getLogger("fail2ban")
|
||||
hdlr = logging.StreamHandler(sys.stdout)
|
||||
fmt = logging.Formatter("%(asctime)-15s %(message)s")
|
||||
hdlr.setFormatter(fmt)
|
||||
logSys.addHandler(hdlr)
|
||||
if set(["-q", "--quiet"]) & set(sys.argv):
|
||||
logSys.setLevel(logging.FATAL)
|
||||
logging.captureWarnings(True)
|
||||
elif set(["-v", "--verbose"]) & set(sys.argv):
|
||||
logSys.setLevel(logging.DEBUG)
|
||||
else:
|
||||
logSys.setLevel(logging.INFO)
|
||||
elif "test" in sys.argv:
|
||||
print("python distribute required to execute fail2ban tests")
|
||||
print("")
|
||||
|
||||
longdesc = '''
|
||||
Fail2Ban scans log files like /var/log/pwdfail or
|
||||
|
@ -45,9 +67,17 @@ too many password failures. It updates firewall rules
|
|||
to reject the IP address or executes user defined
|
||||
commands.'''
|
||||
|
||||
if setuptools:
|
||||
setup_extra = {
|
||||
'test_suite': "fail2ban.tests.utils.gatherTests",
|
||||
'use_2to3': True,
|
||||
}
|
||||
else:
|
||||
setup_extra = {}
|
||||
|
||||
setup(
|
||||
name = "fail2ban",
|
||||
version = version,
|
||||
version = "0.9.0a",
|
||||
description = "Ban IPs that make too many password failures",
|
||||
long_description = longdesc,
|
||||
author = "Cyril Jaquier",
|
||||
|
@ -88,7 +118,8 @@ setup(
|
|||
('/usr/share/doc/fail2ban',
|
||||
['README', 'DEVELOP', 'doc/run-rootless.txt']
|
||||
)
|
||||
]
|
||||
],
|
||||
**setup_extra
|
||||
)
|
||||
|
||||
# Do some checks after installation
|
||||
|
|
Loading…
Reference in New Issue