Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from .archive import Archive
from .config import AutoResearchConfig
from .models import VariantArchiveEntry
from .scorers import PromptScorer, ScorerResult
from .scorers import PromptScorer

logger = logging.getLogger(__name__)

Expand Down
23 changes: 7 additions & 16 deletions autobot-backend/services/autoresearch/prompt_optimizer_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,17 @@
from services.autoresearch.models import VariantArchiveEntry
from services.autoresearch.prompt_optimizer import (
OptimizationSession,
OptimizationStatus,
PromptOptimizer,
PromptOptTarget,
PromptVariant,
)
from services.autoresearch.scorers import ScorerResult


# ---------------------------------------------------------------------------
# Helper factory
# ---------------------------------------------------------------------------


def _make_variant(vid: str, score: float, round_number: int = 1) -> PromptVariant:
return PromptVariant(
id=vid,
Expand Down Expand Up @@ -58,7 +57,6 @@ def _make_entry(
# PromptVariant
# ---------------------------------------------------------------------------


class TestPromptVariantModel:
def test_to_dict(self):
variant = PromptVariant(
Expand Down Expand Up @@ -86,7 +84,6 @@ def test_from_dict_round_trip(self):
# OptimizationSession
# ---------------------------------------------------------------------------


class TestOptimizationSession:
def test_to_dict(self):
target = PromptOptTarget(
Expand All @@ -107,7 +104,6 @@ def test_to_dict(self):
# Archive unit tests
# ---------------------------------------------------------------------------


class TestArchive:
def test_add_retains_all_entries(self):
archive = Archive()
Expand Down Expand Up @@ -187,7 +183,6 @@ def test_serialisation_round_trip(self):
# PromptOptimizer integration (archive-aware)
# ---------------------------------------------------------------------------


class TestPromptOptimizerLoop:
@pytest.fixture
def mock_llm(self):
Expand All @@ -202,15 +197,9 @@ def mock_scorer(self):
scorer = AsyncMock()
scorer.name = "test_scorer"
scorer.score.side_effect = [
ScorerResult(
score=0.3, raw_score=3, metadata={}, scorer_name="test_scorer"
),
ScorerResult(
score=0.8, raw_score=8, metadata={}, scorer_name="test_scorer"
),
ScorerResult(
score=0.5, raw_score=5, metadata={}, scorer_name="test_scorer"
),
ScorerResult(score=0.3, raw_score=3, metadata={}, scorer_name="test_scorer"),
ScorerResult(score=0.8, raw_score=8, metadata={}, scorer_name="test_scorer"),
ScorerResult(score=0.5, raw_score=5, metadata={}, scorer_name="test_scorer"),
]
return scorer

Expand Down Expand Up @@ -416,7 +405,9 @@ async def benchmark_fn(prompt: str) -> str:
assert session.rounds_completed == 0

@pytest.mark.asyncio
async def test_scorer_failure_marks_variant_invalid_in_archive(self, mock_llm):
async def test_scorer_failure_marks_variant_invalid_in_archive(
self, mock_llm
):
"""Variants whose scorer raises must have valid_parent=False in archive."""
failing_scorer = AsyncMock()
failing_scorer.score.side_effect = RuntimeError("scorer exploded")
Expand Down
Loading