@@ -56,7 +56,7 @@ async def cache_lifespan(app: FastAPI) -> AsyncIterator[State]:
5656
5757
5858@pytest .fixture
59- def postgres_lifespan_mng () -> LifespanManager :
59+ def postgres_lifespan () -> LifespanManager :
6060 lifespan_manager = LifespanManager ()
6161
6262 @lifespan_manager .add
@@ -70,8 +70,8 @@ async def _setup_postgres_async_engine(_, state: State) -> AsyncIterator[State]:
7070 with log_context (logging .INFO , "postgres_async_engine" ):
7171 # pass state to children
7272
73- state ["postgres" ]. update ( aengine = "Some Async Engine" )
74- yield state
73+ current = state ["postgres" ]
74+ yield { "postgres" : { "aengine" : "Some Async Engine" , ** current }}
7575
7676 return lifespan_manager
7777
@@ -94,13 +94,13 @@ async def _setup_rabbitmq(app: FastAPI) -> AsyncIterator[State]:
9494
9595
9696async def test_app_lifespan_composition (
97- postgres_lifespan_mng : LifespanManager , rabbitmq_lifespan : LifespanManager
97+ postgres_lifespan : LifespanManager , rabbitmq_lifespan : LifespanManager
9898):
9999 # The app has its own database and rpc-server to initialize
100100 # this is how you connect the lifespans pre-defined in servicelib
101101
102- @postgres_lifespan_mng .add
103- async def setup_database (app : FastAPI , state : State ) -> AsyncIterator [State ]:
102+ @postgres_lifespan .add
103+ async def database_lifespan (app : FastAPI , state : State ) -> AsyncIterator [State ]:
104104
105105 with log_context (logging .INFO , "app database" ):
106106 assert state ["postgres" ] == {
@@ -119,7 +119,7 @@ async def setup_database(app: FastAPI, state: State) -> AsyncIterator[State]:
119119 assert app .state .database_engine
120120
121121 @rabbitmq_lifespan .add
122- async def setup_rpc_server (app : FastAPI , state : State ) -> AsyncIterator [State ]:
122+ async def rpc_service_lifespan (app : FastAPI , state : State ) -> AsyncIterator [State ]:
123123 with log_context (logging .INFO , "app rpc-server" ):
124124 assert "rabbitmq_rpc_server" in state
125125
@@ -129,7 +129,7 @@ async def setup_rpc_server(app: FastAPI, state: State) -> AsyncIterator[State]:
129129
130130 # Composes lifepans
131131 app_lifespan = LifespanManager ()
132- app_lifespan .include (postgres_lifespan_mng )
132+ app_lifespan .include (postgres_lifespan )
133133 app_lifespan .include (rabbitmq_lifespan )
134134
135135 app = FastAPI (lifespan = app_lifespan )
@@ -165,7 +165,7 @@ async def setup_rpc_server(app: FastAPI, state: State) -> AsyncIterator[State]:
165165
166166
167167@pytest .fixture
168- def failing_lifespan_manager (mocker : MockerFixture ):
168+ def failing_lifespan_manager (mocker : MockerFixture ) -> dict [ str , Any ] :
169169 startup_step = mocker .MagicMock ()
170170 shutdown_step = mocker .MagicMock ()
171171 handle_error = mocker .MagicMock ()
@@ -174,8 +174,8 @@ def raise_error():
174174 msg = "failing module"
175175 raise RuntimeError (msg )
176176
177- async def setup_failing_on_startup (app : FastAPI ) -> AsyncIterator [State ]:
178- _name = setup_failing_on_startup .__name__
177+ async def lifespan_failing_on_startup (app : FastAPI ) -> AsyncIterator [State ]:
178+ _name = lifespan_failing_on_startup .__name__
179179
180180 with log_context (logging .INFO , _name ):
181181 try :
@@ -187,8 +187,8 @@ async def setup_failing_on_startup(app: FastAPI) -> AsyncIterator[State]:
187187 yield {}
188188 shutdown_step (_name )
189189
190- async def setup_failing_on_shutdown (app : FastAPI ) -> AsyncIterator [State ]:
191- _name = setup_failing_on_shutdown .__name__
190+ async def lifespan_failing_on_shutdown (app : FastAPI ) -> AsyncIterator [State ]:
191+ _name = lifespan_failing_on_shutdown .__name__
192192
193193 with log_context (logging .INFO , _name ):
194194 startup_step (_name )
@@ -204,16 +204,16 @@ async def setup_failing_on_shutdown(app: FastAPI) -> AsyncIterator[State]:
204204 "startup_step" : startup_step ,
205205 "shutdown_step" : shutdown_step ,
206206 "handle_error" : handle_error ,
207- "setup_failing_on_startup " : setup_failing_on_startup ,
208- "setup_failing_on_shutdown " : setup_failing_on_shutdown ,
207+ "lifespan_failing_on_startup " : lifespan_failing_on_startup ,
208+ "lifespan_failing_on_shutdown " : lifespan_failing_on_shutdown ,
209209 }
210210
211211
212212async def test_app_lifespan_with_error_on_startup (
213213 failing_lifespan_manager : dict [str , Any ],
214214):
215215 app_lifespan = LifespanManager ()
216- app_lifespan .add (failing_lifespan_manager ["setup_failing_on_startup " ])
216+ app_lifespan .add (failing_lifespan_manager ["lifespan_failing_on_startup " ])
217217 app = FastAPI (lifespan = app_lifespan )
218218
219219 with pytest .raises (LifespanOnStartupError ) as err_info :
@@ -225,8 +225,8 @@ async def test_app_lifespan_with_error_on_startup(
225225 assert not failing_lifespan_manager ["startup_step" ].called
226226 assert not failing_lifespan_manager ["shutdown_step" ].called
227227 assert exception .error_context () == {
228- "module" : "setup_failing_on_startup " ,
229- "message" : "Failed during startup of setup_failing_on_startup " ,
228+ "module" : "lifespan_failing_on_startup " ,
229+ "message" : "Failed during startup of lifespan_failing_on_startup " ,
230230 "code" : "RuntimeError.LifespanError.LifespanOnStartupError" ,
231231 }
232232
@@ -235,7 +235,7 @@ async def test_app_lifespan_with_error_on_shutdown(
235235 failing_lifespan_manager : dict [str , Any ],
236236):
237237 app_lifespan = LifespanManager ()
238- app_lifespan .add (failing_lifespan_manager ["setup_failing_on_shutdown " ])
238+ app_lifespan .add (failing_lifespan_manager ["lifespan_failing_on_shutdown " ])
239239 app = FastAPI (lifespan = app_lifespan )
240240
241241 with pytest .raises (LifespanOnShutdownError ) as err_info :
@@ -247,7 +247,7 @@ async def test_app_lifespan_with_error_on_shutdown(
247247 assert failing_lifespan_manager ["startup_step" ].called
248248 assert not failing_lifespan_manager ["shutdown_step" ].called
249249 assert exception .error_context () == {
250- "module" : "setup_failing_on_shutdown " ,
251- "message" : "Failed during shutdown of setup_failing_on_shutdown " ,
250+ "module" : "lifespan_failing_on_shutdown " ,
251+ "message" : "Failed during shutdown of lifespan_failing_on_shutdown " ,
252252 "code" : "RuntimeError.LifespanError.LifespanOnShutdownError" ,
253253 }
0 commit comments