From 3187de29336b4a01e4dcd20f98253e1db913ee7a Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sat, 12 Sep 2015 14:15:10 -0400 Subject: [PATCH] BF(TST): allow exception and False for executeCmd due to inconsistent behavior across bash/dash Temporary minimalistic fix to the test --- fail2ban/tests/actiontestcase.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/fail2ban/tests/actiontestcase.py b/fail2ban/tests/actiontestcase.py index febbc61..73dee12 100644 --- a/fail2ban/tests/actiontestcase.py +++ b/fail2ban/tests/actiontestcase.py @@ -222,17 +222,28 @@ def getnastypid(): return int(f.read()) # First test if can kill the bastard - self.assertRaises( - RuntimeError, CommandAction.executeCmd, 'bash %s' % tmpFilename, timeout=.1) + try: + self.assertFalse( + CommandAction.executeCmd('bash %s' % tmpFilename, timeout=.1)) + except RuntimeError: + # this one is expected behavior, see + # https://github.com/fail2ban/fail2ban/issues/1155#issuecomment-139799958 + pass # Verify that the proccess itself got killed self.assertFalse(pid_exists(getnastypid())) # process should have been killed self.assertTrue(self._is_logged('timed out')) - self.assertTrue(self._is_logged('killed with SIGTERM')) + self.assertTrue(self._is_logged('Terminated')) # A bit evolved case even though, previous test already tests killing children processes - self.assertRaises( - RuntimeError, CommandAction.executeCmd, 'out=`bash %s`; echo ALRIGHT' % tmpFilename, - timeout=.2) + try: + self.assertFalse( + CommandAction.executeCmd('out=`bash %s`; echo ALRIGHT' % tmpFilename, + timeout=.2)) + except RuntimeError: + # this one is expected behavior, see + # https://github.com/fail2ban/fail2ban/issues/1155#issuecomment-139799958 + pass + # Verify that the proccess itself got killed self.assertFalse(pid_exists(getnastypid())) self.assertTrue(self._is_logged('timed out'))