Skip to content

Commit 2ea01ba

Browse files
committed
test: added testing for lifespan events
1 parent df637a8 commit 2ea01ba

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

tests/test_lifespan.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import pytest
2+
3+
from microapi.app import MicroAPI
4+
5+
6+
@pytest.mark.asyncio
7+
async def test_startup_and_shutdown_hooks_run():
8+
events = []
9+
10+
app = MicroAPI()
11+
12+
@app.on_startup
13+
async def startup():
14+
events.append("startup")
15+
16+
@app.on_shutdown
17+
async def shutdown():
18+
events.append("shutdown")
19+
20+
await app._run_startup()
21+
await app._run_shutdown()
22+
23+
assert events == ["startup", "shutdown"]
24+
25+
26+
@pytest.mark.asyncio
27+
async def test_multiple_hooks_preserve_order():
28+
events = []
29+
30+
app = MicroAPI()
31+
32+
@app.on_startup
33+
async def s1():
34+
events.append("s1")
35+
36+
@app.on_startup
37+
async def s2():
38+
events.append("s2")
39+
40+
@app.on_shutdown
41+
async def d1():
42+
events.append("d1")
43+
44+
@app.on_shutdown
45+
async def d2():
46+
events.append("d2")
47+
48+
await app._run_startup()
49+
await app._run_shutdown()
50+
51+
assert events == ["s1", "s2", "d1", "d2"]

0 commit comments

Comments
 (0)