42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
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" |