diff --git a/src/config.py b/src/config.py index 92ae02a..ed5be23 100644 --- a/src/config.py +++ b/src/config.py @@ -16,7 +16,7 @@ class Settings(BaseSettings): ) # Cohere - cohere_api_key: str + cohere_api_key: str = "" cohere_embed_model: str = "embed-english-v3.0" cohere_generate_model: str = "command-nightly" diff --git a/src/services/feedback_engine.py b/src/services/feedback_engine.py index 6b1c7e1..40fc9f4 100644 --- a/src/services/feedback_engine.py +++ b/src/services/feedback_engine.py @@ -1,6 +1,7 @@ """Intelligent feedback engine for quiz results.""" import logging +from typing import Any from src.models.quiz import QuizQuestion from src.prompts.feedback import build_feedback_prompt @@ -34,8 +35,11 @@ def to_dict(self) -> dict: class FeedbackEngine: """Generates personalized feedback on quiz performance.""" - def __init__(self) -> None: - self._client = get_cohere_client() + def __init__(self, client: Any = None) -> None: + if client is not None: + self._client = client + else: + self._client = get_cohere_client() def _compute_score(self, user_answers: list[int], correct_answers: list[int]) -> float: """Compute score as a percentage.""" diff --git a/tests/test_feedback_engine.py b/tests/test_feedback_engine.py index 3305232..51e7a10 100644 --- a/tests/test_feedback_engine.py +++ b/tests/test_feedback_engine.py @@ -1,5 +1,7 @@ """Tests for the feedback engine service.""" +from unittest.mock import MagicMock + import pytest from src.models.quiz import QuizQuestion @@ -11,7 +13,8 @@ class TestFeedbackScoreComputation: @pytest.fixture def engine(self): - return FeedbackEngine() + mock_client = MagicMock() + return FeedbackEngine(client=mock_client) def test_perfect_score(self, engine): user = [0, 1, 2] @@ -41,7 +44,8 @@ class TestQuickFeedback: @pytest.fixture def engine(self): - return FeedbackEngine() + mock_client = MagicMock() + return FeedbackEngine(client=mock_client) @pytest.fixture def sample_question(self):