- AssistantService теперь принимает ForecastService в конструкторе (раньше создавал new ForecastService() внутри analyze/advice) - infrastructure/cli/main.py: _build_services() — composition root, собирает граф ForecastService, ScenarioService, AssistantService, CurrencyConverter - Все CLI-команды используют _build_services(model) вместо прямого new - test_ai.py: обновлён под новый контракт AssistantService Tests: 67/67 pass.
20 lines
851 B
Python
20 lines
851 B
Python
from application.forecast import ForecastService
|
|
from infrastructure.ai.assistant import AssistantService
|
|
|
|
|
|
class TestAssistantService:
|
|
def test_analyze_returns_prompt(self, sample_model):
|
|
forecast_service = ForecastService(sample_model)
|
|
assistant = AssistantService(sample_model, forecast_service=forecast_service)
|
|
result = assistant.analyze(months=6)
|
|
assert "prompt" in result
|
|
assert "summary" in result
|
|
assert result["ai_response"] is None
|
|
|
|
def test_advice_returns_prompt(self, sample_model):
|
|
forecast_service = ForecastService(sample_model)
|
|
assistant = AssistantService(sample_model, forecast_service=forecast_service)
|
|
result = assistant.advice("Как мне сэкономить?", months=6)
|
|
assert "prompt" in result
|
|
assert "ai_response" in result
|