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:
parent
499dc6677c
commit
de89909195
@ -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)
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user