deepdata: core product code (backend, frontend, runtime, deepflow module)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import pytest
|
||||
|
||||
from app.module.generation.schema.generation import SynthesisType
|
||||
from app.module.generation.service.prompt import (
|
||||
ANSWER_GENERATOR_PROMPT,
|
||||
COT_GENERATOR_PROMPT,
|
||||
QUESTION_GENERATOR_PROMPT,
|
||||
get_prompt,
|
||||
)
|
||||
|
||||
|
||||
def test_get_prompt_dispatches_by_synthesis_type() -> None:
|
||||
assert get_prompt(SynthesisType.QA) == ANSWER_GENERATOR_PROMPT
|
||||
assert get_prompt(SynthesisType.COT) == COT_GENERATOR_PROMPT
|
||||
assert get_prompt(SynthesisType.QUESTION) == QUESTION_GENERATOR_PROMPT
|
||||
|
||||
|
||||
def test_get_prompt_raises_for_unsupported_type() -> None:
|
||||
with pytest.raises(ValueError):
|
||||
get_prompt("UNKNOWN")
|
||||
|
||||
|
||||
def test_synthesis_type_values_are_stable() -> None:
|
||||
assert SynthesisType.QA.value == "QA"
|
||||
assert SynthesisType.COT.value == "COT"
|
||||
assert SynthesisType.QUESTION.value == "QUESTION"
|
||||
|
||||
|
||||
def test_get_prompt_error_contains_unsupported_type() -> None:
|
||||
with pytest.raises(ValueError) as exc:
|
||||
get_prompt("X")
|
||||
|
||||
assert "Unsupported synthesis type" in str(exc.value)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"synth_type,required_text",
|
||||
[
|
||||
(SynthesisType.QA, "output"),
|
||||
(SynthesisType.COT, "chain_of_thought"),
|
||||
(SynthesisType.QUESTION, "JSON"),
|
||||
],
|
||||
)
|
||||
def test_get_prompt_contains_expected_keywords(synth_type: SynthesisType, required_text: str) -> None:
|
||||
prompt = get_prompt(synth_type)
|
||||
assert required_text in prompt
|
||||
|
||||
|
||||
def test_synthesis_type_enum_values_are_unique() -> None:
|
||||
values = [t.value for t in SynthesisType]
|
||||
assert len(values) == len(set(values))
|
||||
Reference in New Issue
Block a user