mirror of
https://github.com/facefusion/facefusion.git
synced 2026-09-15 20:15:28 +02:00
first piece for /jobs endpoint part3
This commit is contained in:
@@ -8,7 +8,7 @@ from starlette.routing import Route, WebSocketRoute
|
||||
|
||||
from facefusion.apis.endpoints.assets import delete_assets, get_asset, get_assets, upload_asset
|
||||
from facefusion.apis.endpoints.capabilities import get_capabilities
|
||||
from facefusion.apis.endpoints.jobs import create_job, get_job, get_jobs
|
||||
from facefusion.apis.endpoints.jobs import create_job, delete_job, delete_jobs, get_job, get_jobs
|
||||
from facefusion.apis.endpoints.metrics import get_metrics, websocket_metrics
|
||||
from facefusion.apis.endpoints.ping import websocket_ping
|
||||
from facefusion.apis.endpoints.session import create_session, destroy_session, get_session, refresh_session
|
||||
@@ -49,8 +49,10 @@ def create_api() -> Starlette:
|
||||
Route('/stream', post_stream, methods = [ 'POST' ], middleware = [ session_guard ]),
|
||||
Route('/stream', delete_stream, methods = [ 'DELETE' ], name = 'delete_stream', middleware = [ session_guard ]),
|
||||
Route('/jobs', get_jobs, methods = [ 'GET' ], middleware = [ session_guard ]),
|
||||
Route('/jobs/{job_id}', get_job, methods = [ 'GET' ], middleware = [ session_guard ]),
|
||||
Route('/jobs', create_job, methods = [ 'POST' ], middleware = [ session_guard ]),
|
||||
Route('/jobs', delete_jobs, methods = [ 'DELETE' ], middleware = [ session_guard ]),
|
||||
Route('/jobs/{job_id}', get_job, methods = [ 'GET' ], middleware = [ session_guard ]),
|
||||
Route('/jobs/{job_id}', delete_job, methods = [ 'DELETE' ], middleware = [ session_guard ]),
|
||||
WebSocketRoute('/metrics', websocket_metrics, middleware = [ session_guard ]),
|
||||
WebSocketRoute('/ping', websocket_ping, middleware = [ session_guard ]),
|
||||
WebSocketRoute('/stream', websocket_stream, middleware = [ session_guard ])
|
||||
|
||||
@@ -3,7 +3,7 @@ from starlette.responses import JSONResponse
|
||||
from starlette.status import HTTP_200_OK, HTTP_201_CREATED, HTTP_400_BAD_REQUEST, HTTP_404_NOT_FOUND
|
||||
|
||||
import facefusion.choices
|
||||
from facefusion import translator
|
||||
from facefusion import state_manager, translator
|
||||
from facefusion.jobs import job_helper, job_manager
|
||||
|
||||
|
||||
@@ -56,3 +56,31 @@ async def create_job(request : Request) -> JSONResponse:
|
||||
{
|
||||
'message': translator.get('job_not_created', 'facefusion.apis')
|
||||
}, status_code = HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
async def delete_jobs(request : Request) -> JSONResponse:
|
||||
if job_manager.delete_jobs(state_manager.get_item('halt_on_error')):
|
||||
return JSONResponse(
|
||||
{
|
||||
'message': translator.get('ok', 'facefusion.apis')
|
||||
}, status_code = HTTP_200_OK)
|
||||
|
||||
return JSONResponse(
|
||||
{
|
||||
'message': translator.get('job_not_found', 'facefusion.apis')
|
||||
}, status_code = HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
async def delete_job(request : Request) -> JSONResponse:
|
||||
job_id = request.path_params.get('job_id')
|
||||
|
||||
if job_manager.delete_job(job_id):
|
||||
return JSONResponse(
|
||||
{
|
||||
'message': translator.get('ok', 'facefusion.apis')
|
||||
}, status_code = HTTP_200_OK)
|
||||
|
||||
return JSONResponse(
|
||||
{
|
||||
'message': translator.get('job_not_found', 'facefusion.apis')
|
||||
}, status_code = HTTP_404_NOT_FOUND)
|
||||
|
||||
+65
-1
@@ -53,7 +53,6 @@ def test_get_jobs(test_client : TestClient) -> None:
|
||||
get_jobs_body = get_jobs_response.json()
|
||||
|
||||
assert 'job-test-get-jobs' in get_jobs_body
|
||||
assert get_jobs_body.get('job-test-get-jobs').get('step_total') == 0
|
||||
assert get_jobs_response.status_code == 200
|
||||
|
||||
|
||||
@@ -127,3 +126,68 @@ def test_create_job(test_client : TestClient) -> None:
|
||||
|
||||
assert create_job_body.get('message') == 'job not created'
|
||||
assert create_job_response.status_code == 400
|
||||
|
||||
|
||||
def test_delete_jobs(test_client : TestClient) -> None:
|
||||
delete_jobs_response = test_client.delete('/jobs')
|
||||
|
||||
assert delete_jobs_response.status_code == 401
|
||||
|
||||
create_session_response = test_client.post('/session', json =
|
||||
{
|
||||
'client_version': metadata.get('version')
|
||||
})
|
||||
create_session_body = create_session_response.json()
|
||||
access_token = create_session_body.get('access_token')
|
||||
|
||||
delete_jobs_response = test_client.delete('/jobs', headers =
|
||||
{
|
||||
'Authorization': 'Bearer ' + access_token
|
||||
})
|
||||
delete_jobs_body = delete_jobs_response.json()
|
||||
|
||||
assert delete_jobs_body.get('message') == 'job not found'
|
||||
assert delete_jobs_response.status_code == 404
|
||||
|
||||
create_job('job-test-delete-jobs-1')
|
||||
create_job('job-test-delete-jobs-2')
|
||||
|
||||
delete_jobs_response = test_client.delete('/jobs', headers =
|
||||
{
|
||||
'Authorization': 'Bearer ' + access_token
|
||||
})
|
||||
|
||||
assert find_job_ids('drafted') == []
|
||||
assert delete_jobs_response.status_code == 200
|
||||
|
||||
|
||||
def test_delete_job(test_client : TestClient) -> None:
|
||||
delete_job_response = test_client.delete('/jobs/job-test-delete-job')
|
||||
|
||||
assert delete_job_response.status_code == 401
|
||||
|
||||
create_session_response = test_client.post('/session', json =
|
||||
{
|
||||
'client_version': metadata.get('version')
|
||||
})
|
||||
create_session_body = create_session_response.json()
|
||||
access_token = create_session_body.get('access_token')
|
||||
|
||||
delete_job_response = test_client.delete('/jobs/job-test-unknown', headers =
|
||||
{
|
||||
'Authorization': 'Bearer ' + access_token
|
||||
})
|
||||
delete_job_body = delete_job_response.json()
|
||||
|
||||
assert delete_job_body.get('message') == 'job not found'
|
||||
assert delete_job_response.status_code == 404
|
||||
|
||||
create_job('job-test-delete-job')
|
||||
|
||||
delete_job_response = test_client.delete('/jobs/job-test-delete-job', headers =
|
||||
{
|
||||
'Authorization': 'Bearer ' + access_token
|
||||
})
|
||||
|
||||
assert find_job_ids('drafted') == []
|
||||
assert delete_job_response.status_code == 200
|
||||
|
||||
Reference in New Issue
Block a user