From 01baf8d2ea1ff78dae2e6428138d9380ff11c828 Mon Sep 17 00:00:00 2001 From: harisreedhar Date: Mon, 9 Feb 2026 14:28:26 +0530 Subject: [PATCH] improve test --- tests/test_api_metrics.py | 68 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/tests/test_api_metrics.py b/tests/test_api_metrics.py index f5396338..4e7c1d7d 100644 --- a/tests/test_api_metrics.py +++ b/tests/test_api_metrics.py @@ -1,6 +1,7 @@ from typing import Iterator import pytest +from pytest_mock import MockerFixture from starlette.testclient import TestClient from facefusion import metadata, session_manager @@ -18,6 +19,65 @@ def before_each() -> None: session_manager.SESSIONS.clear() +@pytest.fixture(scope = 'function', autouse = True) +def mock_detect_execution_devices(mocker : MockerFixture) -> None: + mocker.patch('facefusion.system.detect_execution_devices', return_value = + [ + { + 'driver_version': '555.42', + 'framework': + { + 'name': 'CUDA', + 'version': '12.5' + }, + 'product': + { + 'vendor': 'NVIDIA', + 'name': 'RTX 4090' + }, + 'video_memory': + { + 'total': + { + 'value': 24, + 'unit': 'GB' + }, + 'free': + { + 'value': 20, + 'unit': 'GB' + } + }, + 'temperature': + { + 'gpu': + { + 'value': 45, + 'unit': 'C' + }, + 'memory': + { + 'value': 0, + 'unit': 'C' + } + }, + 'utilization': + { + 'gpu': + { + 'value': 30, + 'unit': '%' + }, + 'memory': + { + 'value': 15, + 'unit': '%' + } + } + } + ]) + + def test_get_metrics(test_client : TestClient) -> None: get_metrics_response = test_client.get('/metrics') @@ -35,8 +95,10 @@ def test_get_metrics(test_client : TestClient) -> None: }) get_metrics_body = get_metrics_response.json() - assert 'execution_devices' in get_metrics_body assert get_metrics_response.status_code == 200 + assert get_metrics_body.get('execution_devices')[0].get('driver_version') == '555.42' + assert get_metrics_body.get('execution_devices')[0].get('product').get('name') == 'RTX 4090' + assert get_metrics_body.get('execution_devices')[0].get('video_memory').get('total').get('value') == 24 def test_websocket_metrics(test_client : TestClient) -> None: @@ -52,4 +114,6 @@ def test_websocket_metrics(test_client : TestClient) -> None: ]) as websocket: metrics_set = websocket.receive_json() - assert 'execution_devices' in metrics_set + assert metrics_set.get('execution_devices')[0].get('driver_version') == '555.42' + assert metrics_set.get('execution_devices')[0].get('product').get('name') == 'RTX 4090' + assert metrics_set.get('execution_devices')[0].get('video_memory').get('total').get('value') == 24