Spaces:
Paused
Paused
| """Shared fixtures: hermetic settings, fake LLM provider, services.""" | |
| from __future__ import annotations | |
| import pytest | |
| from agentic_core.artifacts import ArtifactStore | |
| from agentic_core.config import Settings | |
| from agentic_core.llm import FakeLLMProvider, LLMService | |
| from agentic_core.orchestrator import EventBus, ExecutionTracker, Orchestrator | |
| from agentic_core.schemas import ProjectContext | |
| def settings(tmp_path): | |
| return Settings(llm_provider="cursor", cursor_api_key="test-key", data_dir=tmp_path) | |
| def provider(): | |
| return FakeLLMProvider() | |
| def llm_service(provider, settings): | |
| return LLMService(provider, settings) | |
| def event_bus(): | |
| return EventBus() | |
| def tracker(settings): | |
| return ExecutionTracker(settings.runs_dir) | |
| def artifact_store(settings): | |
| return ArtifactStore(settings.artifacts_dir) | |
| def make_orchestrator(provider, settings, event_bus, tracker): | |
| def _make(**overrides): | |
| current = settings.model_copy(update=overrides) | |
| service = LLMService(provider, current) | |
| return Orchestrator(service, event_bus, tracker, current) | |
| return _make | |
| def make_context(): | |
| def _make(idea: str, project_id: str = "test_proj") -> ProjectContext: | |
| return ProjectContext(project_id=project_id, business_idea=idea) | |
| return _make |