test_badips.py: amend to 2ff65f5d3ce1a4bd107cb4dbbd5343f7146a0677:

increase timeout in normal mode + catch timeout exceptions to skip the test (avoid sporadic CI errors if badips gets slowly).
pull/2116/head
sebres 2018-04-05 00:17:00 +02:00
parent c1923f9644
commit cb0f4cbb32
1 changed files with 14 additions and 7 deletions

View File

@ -20,6 +20,8 @@
import os import os
import unittest import unittest
import sys import sys
from socket import timeout
from ssl import SSLError
from ..actiontestcase import CallingMap from ..actiontestcase import CallingMap
from ..dummyjail import DummyJail from ..dummyjail import DummyJail
@ -51,7 +53,7 @@ if sys.version_info >= (2,7): # pragma: no cover - may be unavailable
BadIPsActionTest.pythonModule = self.jail.actions._load_python_module(pythonModuleName) BadIPsActionTest.pythonModule = self.jail.actions._load_python_module(pythonModuleName)
BadIPsActionTest.modAction = BadIPsActionTest.pythonModule.Action BadIPsActionTest.modAction = BadIPsActionTest.pythonModule.Action
self.jail.actions._load_python_module(pythonModuleName) self.jail.actions._load_python_module(pythonModuleName)
BadIPsActionTest.available = BadIPsActionTest.modAction.isAvailable(timeout=2 if unittest.F2B.fast else 60) BadIPsActionTest.available = BadIPsActionTest.modAction.isAvailable(timeout=2 if unittest.F2B.fast else 30)
if not BadIPsActionTest.available[0]: if not BadIPsActionTest.available[0]:
raise unittest.SkipTest('Skip test because service is not available: %s' % BadIPsActionTest.available[1]) raise unittest.SkipTest('Skip test because service is not available: %s' % BadIPsActionTest.available[1])
@ -62,7 +64,7 @@ if sys.version_info >= (2,7): # pragma: no cover - may be unavailable
'score': 5, 'score': 5,
'key': "fail2ban-test-suite", 'key': "fail2ban-test-suite",
#'bankey': "fail2ban-test-suite", #'bankey': "fail2ban-test-suite",
'timeout': (3 if unittest.F2B.fast else 30), 'timeout': (3 if unittest.F2B.fast else 60),
}) })
self.action = self.jail.actions["badips"] self.action = self.jail.actions["badips"]
@ -108,11 +110,16 @@ if sys.version_info >= (2,7): # pragma: no cover - may be unavailable
self.action.updateperiod = "900" self.action.updateperiod = "900"
def testStartStop(self): def testStartStop(self):
self.action.start() try:
self.assertTrue(len(self.action._bannedips) > 10, self.action.start()
"%s is fewer as 10: %r" % (len(self.action._bannedips), self.action._bannedips)) self.assertTrue(len(self.action._bannedips) > 10,
self.action.stop() "%s is fewer as 10: %r" % (len(self.action._bannedips), self.action._bannedips))
self.assertTrue(len(self.action._bannedips) == 0) self.action.stop()
self.assertTrue(len(self.action._bannedips) == 0)
except (SSLError, timeout) as e: # pragma: no cover - timeout only
if not isinstance(e, timeout) and 'timed out' not in str(e):
raise
raise unittest.SkipTest('Skip test because of %s' % e)
def testBanIP(self): def testBanIP(self):
aInfo = CallingMap({ aInfo = CallingMap({