import pytest from app.config import Config from app.services.simulation_manager import SimulationManager def test_simulation_manager_uses_injected_entity_reader_factory(): sentinel = object() calls = [] def factory(graph_id): calls.append(graph_id) return sentinel manager = SimulationManager(entity_reader_factory=factory) assert manager.create_entity_reader("graph-local") is sentinel assert calls == ["graph-local"] def test_local_backend_refuses_unscoped_zep_reader_fallback(monkeypatch, tmp_path): monkeypatch.setattr(Config, "MEMORY_BACKEND", "local") monkeypatch.setattr(SimulationManager, "SIMULATION_DATA_DIR", str(tmp_path)) manager = SimulationManager() with pytest.raises(ValueError, match="local_entity_reader_factory_required"): manager.create_entity_reader("graph-local")