diff --git a/facefusion/apis/endpoints/session.py b/facefusion/apis/endpoints/session.py index 69444d45..e12ab60b 100644 --- a/facefusion/apis/endpoints/session.py +++ b/facefusion/apis/endpoints/session.py @@ -81,6 +81,7 @@ async def refresh_session(request : Request) -> JSONResponse: async def destroy_session(request : Request) -> JSONResponse: session_id = session_context.get_session_id() temp_path = state_manager.get_temp_path() + jobs_path = state_manager.get_jobs_path() if is_directory(temp_path) and not remove_directory(temp_path): return JSONResponse( @@ -88,6 +89,12 @@ async def destroy_session(request : Request) -> JSONResponse: 'message': translator.get('directory_not_removed', 'facefusion.apis') }, status_code = HTTP_404_NOT_FOUND) + if is_directory(jobs_path) and not remove_directory(jobs_path): + return JSONResponse( + { + 'message': translator.get('directory_not_removed', 'facefusion.apis') + }, status_code = HTTP_404_NOT_FOUND) + destroy_stream() asset_store.delete_assets() diff --git a/tests/test_api_session.py b/tests/test_api_session.py index 0a6bd784..c7efb2e5 100644 --- a/tests/test_api_session.py +++ b/tests/test_api_session.py @@ -199,12 +199,15 @@ def test_destroy_session(test_client : TestClient) -> None: 'client_version': metadata.get('version') }) access_token = create_session_response.json().get('access_token') + session_id = session_manager.find_session_id(access_token) + jobs_path = os.path.join(get_test_jobs_directory(), session_id) delete_session_response = test_client.delete('/session', headers = { 'Authorization': 'Bearer INVALID' }) + assert os.path.isdir(jobs_path) is True assert delete_session_response.status_code == 401 delete_session_response = test_client.delete('/session', headers = @@ -212,6 +215,7 @@ def test_destroy_session(test_client : TestClient) -> None: 'Authorization': 'Bearer ' + access_token }) + assert os.path.isdir(jobs_path) is False assert session_manager.find_session_id(access_token) is None assert delete_session_response.status_code == 200