Repository navigation
docs: add shutdown-order tests to the integration checklist - #707
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: e362d76 | Previous: 796d1d7 | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
3328083.83577078 iter/sec (stddev: 1.3789961426468728e-8) |
7372798.399471296 iter/sec (stddev: 3.62650598554965e-9) |
2.22 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
3248547.3308437127 iter/sec (stddev: 1.301445291627227e-8) |
7090843.27498835 iter/sec (stddev: 6.978308539459101e-9) |
2.18 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
15948.505465557568 iter/sec (stddev: 0.00005160729011081122) |
32431.921827546612 iter/sec (stddev: 0.00003127773477475113) |
2.03 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
12591.34746103437 iter/sec (stddev: 0.00014339974868795468) |
26305.249044013835 iter/sec (stddev: 0.00016103870141411883) |
2.09 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
484.72590847290564 iter/sec (stddev: 0.00003206327372197167) |
938.6061456058358 iter/sec (stddev: 0.000010379118271496751) |
1.94 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
469.53747557828274 iter/sec (stddev: 0.00004589785101633221) |
920.9057533550372 iter/sec (stddev: 0.000014531904476522506) |
1.96 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
438.71966578454067 iter/sec (stddev: 0.0000500089590283497) |
869.8819503744008 iter/sec (stddev: 0.0000230703110485245) |
1.98 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
11867.700066376441 iter/sec (stddev: 0.000009818157960104652) |
26391.473970545856 iter/sec (stddev: 0.000005273216676922491) |
2.22 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
6515.725894480302 iter/sec (stddev: 0.0000292533404169582) |
11771.054173390345 iter/sec (stddev: 0.000013181380395728042) |
1.81 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3284.328236642249 iter/sec (stddev: 0.00004524209228957394) |
6432.94939527733 iter/sec (stddev: 0.00002073535941746037) |
1.96 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
9625.09995068395 iter/sec (stddev: 0.000012213904294854613) |
21101.000996227154 iter/sec (stddev: 0.000006392986313381337) |
2.19 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
4127.332897535239 iter/sec (stddev: 0.000037165909804482126) |
9165.31548273976 iter/sec (stddev: 0.000026871765293572373) |
2.22 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
1995.0949924592785 iter/sec (stddev: 0.00004659232279940512) |
4120.589745676914 iter/sec (stddev: 0.000020556532829378764) |
2.07 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
36374.063594933825 iter/sec (stddev: 0.000006826121143375996) |
63121.18478245755 iter/sec (stddev: 0.0000016607299090743504) |
1.74 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
12250.228058402288 iter/sec (stddev: 0.0000645403657699118) |
26371.852794083203 iter/sec (stddev: 0.000009274538878946582) |
2.15 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5803.503526717936 iter/sec (stddev: 0.00003146995985856886) |
11444.815436637611 iter/sec (stddev: 0.00001982202768039523) |
1.97 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1576525.0998341513 iter/sec (stddev: 4.606296827852123e-8) |
3281535.391025776 iter/sec (stddev: 1.977270264503631e-8) |
2.08 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
1665556.4345084627 iter/sec (stddev: 2.1200140887840936e-8) |
3733862.5959220864 iter/sec (stddev: 9.49832022790783e-9) |
2.24 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
3110.8680929644065 iter/sec (stddev: 0.000010642766616102202) |
6919.5674603993175 iter/sec (stddev: 0.000006269892860260953) |
2.22 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
57909.51326703042 iter/sec (stddev: 0.0000019897052554841927) |
118442.18752254656 iter/sec (stddev: 8.450119549815983e-7) |
2.05 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
293209.55120730086 iter/sec (stddev: 5.611484875542857e-7) |
866230.0434135109 iter/sec (stddev: 4.790068076057982e-8) |
2.95 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
57942.24252770016 iter/sec (stddev: 0.000004530956230937567) |
137808.16399709598 iter/sec (stddev: 6.050930273822687e-7) |
2.38 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
590.3722204818099 iter/sec (stddev: 0.0010619349116171499) |
1185.243332134372 iter/sec (stddev: 0.0012216001199847589) |
2.01 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2120965.2215749878 iter/sec (stddev: 4.838924176700378e-8) |
4297916.993026516 iter/sec (stddev: 1.9347939953554305e-8) |
2.03 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
3623935.514244975 iter/sec (stddev: 9.423188078140955e-9) |
7113664.695410467 iter/sec (stddev: 4.03947048292229e-9) |
1.96 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
801446.1454530373 iter/sec (stddev: 4.687023981718817e-8) |
1631601.7103587475 iter/sec (stddev: 3.0235523112569035e-8) |
2.04 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
475143.9715932098 iter/sec (stddev: 4.066685511596947e-7) |
949292.4970475482 iter/sec (stddev: 3.346421762541182e-7) |
2.00 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
2006002.360269828 iter/sec (stddev: 3.4109405612642465e-8) |
3925241.8071562117 iter/sec (stddev: 1.8753310542163203e-8) |
1.96 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1401909.4146429652 iter/sec (stddev: 1.53102660536963e-7) |
2909564.6920150965 iter/sec (stddev: 1.323754147608128e-7) |
2.08 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
828994.7547411663 iter/sec (stddev: 3.3807575296577596e-8) |
1675569.947206955 iter/sec (stddev: 1.4255572872427938e-8) |
2.02 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
3648747.3522012853 iter/sec (stddev: 8.523025322367646e-9) |
7619537.591612742 iter/sec (stddev: 3.7202838505350956e-9) |
2.09 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
31161.43336363541 iter/sec (stddev: 0.00021653693422841707) |
77795.22926448792 iter/sec (stddev: 0.000010870829964214464) |
2.50 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
21235.125652734627 iter/sec (stddev: 0.00002350175143019527) |
44766.03635445485 iter/sec (stddev: 0.000014002705513910401) |
2.11 |
This comment was automatically generated by workflow using github-action-benchmark.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds a checklist item to writing-integrations: test that shutdown hooks registered before and after
setup_dican resolve APP dependencies and that APP finalizers run after them, over two lifespan cycles, including sub-routers, mounted apps or middleware where the framework has them. Where the framework can't give that order, a test pins the actual behavior and the usage page says so.This is the bug that starlette, fastapi, litestar, faststream, taskiq, aiogram, celery and flask each had and fixed separately. The "Lifecycle rules" section already states the rule; this makes it a test requirement for new integrations.