Files
kandrusyak_bot/tests/test_ollama.py
kandrusyak d1c1ef68d3
Some checks failed
quality / test (3.10) (push) Has been cancelled
quality / test (3.12) (push) Has been cancelled
Improve agent reliability and token efficiency
2026-07-27 19:20:48 +03:00

48 lines
1.5 KiB
Python

import unittest
from unittest.mock import patch
from assistant_bot.ollama import OllamaClient
class OllamaClientTests(unittest.TestCase):
def test_chat_logs_token_and_timing_metrics(self) -> None:
client = OllamaClient("http://localhost:11434")
response = {
"message": {"content": " готово "},
"prompt_eval_count": 2004,
"eval_count": 12,
"prompt_eval_duration": 91_400_000,
"eval_duration": 25_000_000,
"total_duration": 130_000_000,
"load_duration": 4_000_000,
}
with (
patch.object(
client,
"_request_json",
return_value=response,
) as request_json,
self.assertLogs(
"assistant_bot.ollama",
level="INFO",
) as captured,
):
answer = client._chat(
"qwen3.5:9b",
[{"role": "user", "content": "Привет"}],
json_mode=True,
)
self.assertEqual(answer, "готово")
payload = request_json.call_args.args[2]
self.assertEqual(payload["format"], "json")
self.assertIn("input_tokens=2004", captured.output[0])
self.assertIn("output_tokens=12", captured.output[0])
self.assertIn("total_tokens=2016", captured.output[0])
self.assertIn("prompt_eval_ms=91.4", captured.output[0])
if __name__ == "__main__":
unittest.main()