@@ -2290,43 +2290,48 @@ async def test_post_lock_acquire_unexpected_error(
22902290
22912291async def test_post_lock_release_success (
22922292 client_with_project_session : TestClient ,
2293+ session_id : str ,
22932294) -> None :
22942295 """Test lock release route returns success when lock is released."""
2295- with patch (
2296- "fmu_settings_api.services.session.SessionService.release_project_lock" ,
2297- AsyncMock (return_value = True ),
2298- ):
2299- response = client_with_project_session .post (f"{ ROUTE } /lock_release" )
2296+ from fmu_settings_api .session import session_manager # noqa: PLC0415
2297+
2298+ session = await session_manager .get_session (session_id )
2299+ assert isinstance (session , ProjectSession )
2300+ assert session .project_fmu_directory ._lock .is_acquired () is True
2301+
2302+ response = client_with_project_session .post (f"{ ROUTE } /lock_release" )
23002303
23012304 assert response .status_code == status .HTTP_200_OK
23022305 assert response .json () == {"message" : "Project lock released." }
2306+ updated_session = await session_manager .get_session (session_id )
2307+ assert isinstance (updated_session , ProjectSession )
2308+ assert updated_session .project_fmu_directory ._lock .is_acquired () is False
23032309
23042310
23052311async def test_post_lock_release_when_not_held (
23062312 client_with_project_session : TestClient ,
2313+ session_id : str ,
23072314) -> None :
23082315 """Test lock release route when lock is not currently held."""
2309- with (
2310- patch (
2311- "fmu_settings_api.services.session.SessionService.release_project_lock" ,
2312- AsyncMock (return_value = False ),
2313- ),
2314- patch (
2315- "fmu_settings_api.services.session.SessionService.get_lock_status" ,
2316- return_value = LockStatus (
2317- is_lock_acquired = False ,
2318- lock_file_exists = False ,
2319- last_lock_release_error = None ,
2320- ),
2321- ),
2322- ):
2323- response = client_with_project_session .post (f"{ ROUTE } /lock_release" )
2316+ from fmu_settings_api .session import session_manager # noqa: PLC0415
2317+
2318+ session = await session_manager .get_session (session_id )
2319+ assert isinstance (session , ProjectSession )
2320+ session .project_fmu_directory ._lock .release ()
2321+ session .lock_errors .release = None
2322+ assert session .project_fmu_directory ._lock .is_acquired () is False
2323+
2324+ response = client_with_project_session .post (f"{ ROUTE } /lock_release" )
23242325
23252326 assert response .status_code == status .HTTP_200_OK
23262327 assert response .json () == {
23272328 "message" : "Lock was not released because the lock is not currently held."
23282329 }
23292330
2331+ updated_session = await session_manager .get_session (session_id )
2332+ assert isinstance (updated_session , ProjectSession )
2333+ assert updated_session .project_fmu_directory ._lock .is_acquired () is False
2334+
23302335
23312336async def test_post_lock_release_records_release_error (
23322337 client_with_project_session : TestClient ,
0 commit comments