import pytest from genesis.inference.prompt_registry import PromptRegistry from genesis.inference.types import Prompt def test_register_and_render(): reg = PromptRegistry() reg.register("writer", "v1", "按规则撰写:{{ chapter }}") assert reg.get("writer", "v1") == "按规则撰写:{{ chapter }}" def test_get_with_variables_renders(): reg = PromptRegistry() reg.register("writer", "v1", "按规则撰写:{{ chapter }}") assert reg.get("writer", "v1", {"chapter": "帳票設計"}) == "按规则撰写:帳票設計" def test_get_latest_version(): reg = PromptRegistry() reg.register("writer", "v1", "t1") reg.register("writer", "v2", "t2") assert reg.get("writer") == "t2" assert reg.list_versions("writer") == ["v1", "v2"] def test_get_missing_raises_keyerror(): reg = PromptRegistry() with pytest.raises(KeyError): reg.get("dne") def test_get_missing_version_raises_keyerror(): reg = PromptRegistry() reg.register("writer", "v1", "t1") with pytest.raises(KeyError): reg.get("writer", "v9") def test_render_raw(): reg = PromptRegistry() assert reg.render("{{ a }} と {{ b }}", {"a": "x", "b": 1}) == "x と 1"