49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
from app.module.evaluation.schema.prompt import EVALUATION_PROMPT_TEMPLATE
|
|
from app.module.evaluation.service.prompt_template_service import PromptTemplateService
|
|
|
|
|
|
def test_get_prompt_templates_size_matches_source() -> None:
|
|
response = PromptTemplateService.get_prompt_templates()
|
|
assert len(response.templates) == len(EVALUATION_PROMPT_TEMPLATE)
|
|
|
|
|
|
def test_get_prompt_templates_dimensions_are_mapped() -> None:
|
|
response = PromptTemplateService.get_prompt_templates()
|
|
assert response.templates
|
|
|
|
first = response.templates[0]
|
|
assert isinstance(first.evalType, str)
|
|
assert isinstance(first.prompt, str)
|
|
for dim in first.defaultDimensions:
|
|
assert isinstance(dim.dimension, str)
|
|
assert isinstance(dim.description, str)
|
|
|
|
|
|
def test_get_prompt_templates_all_items_have_eval_type_and_prompt() -> None:
|
|
response = PromptTemplateService.get_prompt_templates()
|
|
|
|
assert all(item.evalType for item in response.templates)
|
|
assert all(isinstance(item.prompt, str) for item in response.templates)
|
|
|
|
|
|
def test_get_prompt_templates_preserves_eval_type_order() -> None:
|
|
response = PromptTemplateService.get_prompt_templates()
|
|
expected = [item.get("evalType", "") for item in EVALUATION_PROMPT_TEMPLATE]
|
|
actual = [item.evalType for item in response.templates]
|
|
assert actual == expected
|
|
|
|
|
|
def test_get_prompt_templates_handles_empty_dimensions() -> None:
|
|
response = PromptTemplateService.get_prompt_templates()
|
|
for idx, raw in enumerate(EVALUATION_PROMPT_TEMPLATE):
|
|
if not raw.get("defaultDimensions"):
|
|
assert response.templates[idx].defaultDimensions == []
|
|
|
|
|
|
def test_prompt_template_dimension_fields_are_non_none() -> None:
|
|
response = PromptTemplateService.get_prompt_templates()
|
|
for item in response.templates:
|
|
for dim in item.defaultDimensions:
|
|
assert dim.dimension is not None
|
|
assert dim.description is not None
|