1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-26 06:43:44 +00:00

send_catch_log: pass through results from sendRobust

This commit is contained in:
Pablo Hoffman 2009-08-22 16:38:25 -03:00
parent 499dc6677c
commit de89909195
2 changed files with 10 additions and 4 deletions

View File

@ -18,6 +18,7 @@ class SignalUtilsTest(unittest.TestCase):
def test_handler_check(arg):
handlers_called.add(test_handler_check)
assert arg == 'test'
return "OK"
def log_received(message, level):
handlers_called.add(log_received)
@ -27,11 +28,14 @@ class SignalUtilsTest(unittest.TestCase):
dispatcher.connect(log_received, signal=log.logmessage_received)
dispatcher.connect(test_handler_error, signal=test_signal)
dispatcher.connect(test_handler_check, signal=test_signal)
send_catch_log(test_signal, arg='test')
result = send_catch_log(test_signal, arg='test')
assert test_handler_error in handlers_called
assert test_handler_check in handlers_called
assert log_received in handlers_called
self.assertEqual(result[0][0], test_handler_error)
self.assert_(isinstance(result[0][1], Exception))
self.assertEqual(result[1], (test_handler_check, "OK"))
dispatcher.disconnect(log_received, signal=log.logmessage_received)
dispatcher.disconnect(test_handler_error, signal=test_signal)

View File

@ -8,7 +8,9 @@ def send_catch_log(*args, **kwargs):
"""Same as dispatcher.robust.sendRobust but logs any exceptions raised by
the signal handlers
"""
for receiver, result in sendRobust(*args, **kwargs):
if isinstance(result, Exception):
results = sendRobust(*args, **kwargs)
for receiver, response in results:
if isinstance(response, Exception):
log.msg("Exception caught on signal dispatch: receiver=%r, " \
" exception=%r" % (receiver, result), level=log.ERROR)
" exception=%r" % (receiver, response), level=log.ERROR)
return results