Fix stacktrace mangling in `patch_inline_callbacks` (#7554)
`Failure()` is more cunning than `Failure(e)`.
This commit is contained in:
parent
d84bdfe599
commit
a0f99f81b3
|
@ -0,0 +1 @@
|
||||||
|
Fix some test code to not mangle stacktraces, to make it easier to debug errors.
|
|
@ -186,10 +186,15 @@ def _check_yield_points(f: Callable, changes: List[str]):
|
||||||
)
|
)
|
||||||
raise Exception(err)
|
raise Exception(err)
|
||||||
|
|
||||||
|
# the wrapped function yielded a Deferred: yield it back up to the parent
|
||||||
|
# inlineCallbacks().
|
||||||
try:
|
try:
|
||||||
result = yield d
|
result = yield d
|
||||||
except Exception as e:
|
except Exception:
|
||||||
result = Failure(e)
|
# this will fish an earlier Failure out of the stack where possible, and
|
||||||
|
# thus is preferable to passing in an exeception to the Failure
|
||||||
|
# constructor, since it results in less stack-mangling.
|
||||||
|
result = Failure()
|
||||||
|
|
||||||
if current_context() != expected_context:
|
if current_context() != expected_context:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue