From cb0f4cbb32657f2faf0aa666cc86e4144dc69bf3 Mon Sep 17 00:00:00 2001 From: sebres Date: Thu, 5 Apr 2018 00:17:00 +0200 Subject: [PATCH] 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). --- fail2ban/tests/action_d/test_badips.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/fail2ban/tests/action_d/test_badips.py b/fail2ban/tests/action_d/test_badips.py index c3c417b8..c3cf33a4 100644 --- a/fail2ban/tests/action_d/test_badips.py +++ b/fail2ban/tests/action_d/test_badips.py @@ -20,6 +20,8 @@ import os import unittest import sys +from socket import timeout +from ssl import SSLError from ..actiontestcase import CallingMap 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.modAction = BadIPsActionTest.pythonModule.Action 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]: 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, 'key': "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"] @@ -108,11 +110,16 @@ if sys.version_info >= (2,7): # pragma: no cover - may be unavailable self.action.updateperiod = "900" def testStartStop(self): - self.action.start() - self.assertTrue(len(self.action._bannedips) > 10, - "%s is fewer as 10: %r" % (len(self.action._bannedips), self.action._bannedips)) - self.action.stop() - self.assertTrue(len(self.action._bannedips) == 0) + try: + self.action.start() + self.assertTrue(len(self.action._bannedips) > 10, + "%s is fewer as 10: %r" % (len(self.action._bannedips), self.action._bannedips)) + 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): aInfo = CallingMap({