Send lifespan.shutdown.failed event on lifespan shutdown error #1205
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1138
We supported
lifespan.startup.failed
but notlifespan.shutdown.failed
for some reason. These were added in the Lifespan 2.0 ASGI spec.Previously, we used single-iteration for-loops to communicate with the lifespan generator. This changes to an explicit
try
/except StopAsyncIteration
, closer to what pytest/AnyIO do when calling test fixtures.Added additional tests for the incorrect number of yields. Previously we just had an
assert
on a boolean flag, but now we explicitly raise aRuntimeError
(again, similar to pytest which raises this error type in a similar situation).