code review

pull/839/head
sebres 2014-10-29 19:27:45 +01:00
parent 8dbc04aa06
commit 46a8899f20
2 changed files with 10 additions and 6 deletions

View File

@ -244,7 +244,7 @@ class Actions(JailThread, Mapping):
return True return True
def __getBansMerged(self, mi, idx): def __getBansMerged(self, mi, idx):
"""Helper for lamda to get bans merged once """Gets bans merged once, a helper for lambda(s), prevents stop of executing action by any exception inside.
This function never returns None for ainfo lambdas - always a ticket (merged or single one) This function never returns None for ainfo lambdas - always a ticket (merged or single one)
and prevents any errors through merging (to guarantee ban actions will be executed). and prevents any errors through merging (to guarantee ban actions will be executed).
@ -274,6 +274,8 @@ class Actions(JailThread, Mapping):
mi[idx] = jail.database.getBansMerged(ip=ip) mi[idx] = jail.database.getBansMerged(ip=ip)
elif idx == 'jail': elif idx == 'jail':
mi[idx] = jail.database.getBansMerged(ip=ip, jail=jail) mi[idx] = jail.database.getBansMerged(ip=ip, jail=jail)
else: # pragma: no cover
raise ValueError("Unknown value %r for idx" % (idx,))
except Exception as e: except Exception as e:
logSys.error( logSys.error(
"Failed to get %s bans merged, jail '%s': %s", "Failed to get %s bans merged, jail '%s': %s",

View File

@ -817,10 +817,12 @@ class LoggingTests(LogCaptureTestCase):
prev_exchook = sys.__excepthook__ prev_exchook = sys.__excepthook__
x = [] x = []
sys.__excepthook__ = lambda *args: x.append(args) sys.__excepthook__ = lambda *args: x.append(args)
badThread = _BadThread() try:
badThread.start() badThread = _BadThread()
badThread.join() badThread.start()
self.assertTrue(self._is_logged("Unhandled exception")) badThread.join()
sys.__excepthook__ = prev_exchook self.assertTrue(self._is_logged("Unhandled exception"))
finally:
sys.__excepthook__ = prev_exchook
self.assertEqual(len(x), 1) self.assertEqual(len(x), 1)
self.assertEqual(x[0][0], RuntimeError) self.assertEqual(x[0][0], RuntimeError)