From fba3497bb45141039b74ca56b0c6b3faa0e6ce7d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 3 Mar 2026 16:32:12 +0530 Subject: [PATCH 1/2] Make latency_ms assertion deterministic by mocking perf_counter --- tests/providers/test_openrouter.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tests/providers/test_openrouter.py b/tests/providers/test_openrouter.py index 53215fe..7b30d51 100644 --- a/tests/providers/test_openrouter.py +++ b/tests/providers/test_openrouter.py @@ -1,5 +1,5 @@ from typing import Any -from unittest.mock import AsyncMock +from unittest.mock import AsyncMock, patch import httpx import pytest @@ -45,13 +45,22 @@ async def test_generate_success_returns_content_and_metrics( successful_api_response: dict[str, Any], no_retry_config: RetryConfig, ): - async with OpenRouterClient(api_key="k", default_retry_config=no_retry_config) as client: - client._client.post = AsyncMock(return_value=_make_response(200, successful_api_response)) + async with OpenRouterClient( + api_key="k", default_retry_config=no_retry_config + ) as client: + client._client.post = AsyncMock( + return_value=_make_response(200, successful_api_response) + ) - content, metrics = await client.generate(prompt="hello", model="test-model") + with patch("promptum.providers.openrouter.time.perf_counter") as mock_perf: + mock_perf.side_effect = [10.0, 10.123] + + content, metrics = await client.generate( + prompt="hello", model="test-model" + ) assert content == "Hello, world!" - assert metrics.latency_ms > 0 + assert metrics.latency_ms == 123.0 assert metrics.prompt_tokens == 10 assert metrics.completion_tokens == 20 assert metrics.total_tokens == 30 From ec1f4b9cfcf33b4b6ee3fb705926114a5198bb75 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 3 Mar 2026 16:44:09 +0530 Subject: [PATCH 2/2] Make latency_ms assertion deterministic using mocked perf_counter --- tests/providers/test_openrouter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/providers/test_openrouter.py b/tests/providers/test_openrouter.py index 7b30d51..89ea22c 100644 --- a/tests/providers/test_openrouter.py +++ b/tests/providers/test_openrouter.py @@ -60,7 +60,7 @@ async def test_generate_success_returns_content_and_metrics( ) assert content == "Hello, world!" - assert metrics.latency_ms == 123.0 + assert metrics.latency_ms == pytest.approx(123.0, rel=1e-6) assert metrics.prompt_tokens == 10 assert metrics.completion_tokens == 20 assert metrics.total_tokens == 30