mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-26 06:23:41 +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):
|
def test_handler_check(arg):
|
||||||
handlers_called.add(test_handler_check)
|
handlers_called.add(test_handler_check)
|
||||||
assert arg == 'test'
|
assert arg == 'test'
|
||||||
|
return "OK"
|
||||||
|
|
||||||
def log_received(message, level):
|
def log_received(message, level):
|
||||||
handlers_called.add(log_received)
|
handlers_called.add(log_received)
|
||||||
@ -27,11 +28,14 @@ class SignalUtilsTest(unittest.TestCase):
|
|||||||
dispatcher.connect(log_received, signal=log.logmessage_received)
|
dispatcher.connect(log_received, signal=log.logmessage_received)
|
||||||
dispatcher.connect(test_handler_error, signal=test_signal)
|
dispatcher.connect(test_handler_error, signal=test_signal)
|
||||||
dispatcher.connect(test_handler_check, 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_error in handlers_called
|
||||||
assert test_handler_check in handlers_called
|
assert test_handler_check in handlers_called
|
||||||
assert log_received 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(log_received, signal=log.logmessage_received)
|
||||||
dispatcher.disconnect(test_handler_error, signal=test_signal)
|
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
|
"""Same as dispatcher.robust.sendRobust but logs any exceptions raised by
|
||||||
the signal handlers
|
the signal handlers
|
||||||
"""
|
"""
|
||||||
for receiver, result in sendRobust(*args, **kwargs):
|
results = sendRobust(*args, **kwargs)
|
||||||
if isinstance(result, Exception):
|
for receiver, response in results:
|
||||||
|
if isinstance(response, Exception):
|
||||||
log.msg("Exception caught on signal dispatch: receiver=%r, " \
|
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