llm-quant/tests/test_llm_version.py
2025-10-05 17:24:10 +08:00

94 lines
2.4 KiB
Python

"""Test cases for template version management."""
import pytest
from app.llm.templates import PromptTemplate
from app.llm.version import TemplateVersion, TemplateVersionManager
def test_template_version_creation():
"""Test creating and managing template versions."""
template = PromptTemplate(
id="test",
name="Test Template",
description="A test template",
template="Test {var}",
variables=["var"]
)
version = TemplateVersion.create(
template=template,
version="1.0.0",
metadata={"author": "test"}
)
assert version.id == "test"
assert version.version == "1.0.0"
assert not version.is_active
assert version.metadata["author"] == "test"
def test_version_manager():
"""Test version manager operations."""
manager = TemplateVersionManager()
template = PromptTemplate(
id="test",
name="Test Template",
description="A test template",
template="Test {var}",
variables=["var"]
)
# Add version
v1 = manager.add_version(template, "1.0.0")
assert not v1.is_active
# Add and activate version
v2 = manager.add_version(template, "2.0.0", activate=True)
assert v2.is_active
assert not v1.is_active
# Get version
assert manager.get_version("test", "1.0.0") == v1
assert manager.get_version("test", "2.0.0") == v2
# List versions
versions = manager.list_versions("test")
assert len(versions) == 2
# Get active version
active = manager.get_active_version("test")
assert active == v2
# Export and import
exported = manager.export_versions("test")
new_manager = TemplateVersionManager()
new_manager.import_versions(exported)
imported = new_manager.get_version("test", "2.0.0")
assert imported.version == "2.0.0"
assert imported.is_active
def test_version_validation():
"""Test version validation checks."""
manager = TemplateVersionManager()
template = PromptTemplate(
id="test",
name="Test Template",
description="A test template",
template="Test {var}",
variables=["var"]
)
# Test duplicate version
manager.add_version(template, "1.0.0")
with pytest.raises(ValueError):
manager.add_version(template, "1.0.0")
# Test invalid version
with pytest.raises(ValueError):
manager.activate_version("test", "invalid")