31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
import pytest
|
|
from pydantic import ValidationError
|
|
from app.models.interview import (
|
|
LikertItem, LikertInstrument, LikertResponse,
|
|
InterviewPhase, SubagentKind,
|
|
)
|
|
|
|
def test_likert_item_requires_de_and_en():
|
|
item = LikertItem(item_id="x1", de="Frage", en="Question", scale=5)
|
|
assert item.scale == 5
|
|
|
|
def test_likert_item_rejects_bad_scale():
|
|
with pytest.raises(ValidationError):
|
|
LikertItem(item_id="x1", de="d", en="e", scale=2)
|
|
|
|
def test_likert_instrument_unique_item_ids():
|
|
with pytest.raises(ValidationError):
|
|
LikertInstrument(
|
|
name="t",
|
|
items=[LikertItem(item_id="a", de="d", en="e", scale=5),
|
|
LikertItem(item_id="a", de="d", en="e", scale=5)],
|
|
)
|
|
|
|
def test_likert_response_validates_scale_range():
|
|
with pytest.raises(ValidationError):
|
|
LikertResponse(agent_id=1, phase=InterviewPhase.T0,
|
|
responses={"a": 6}, confidence={"a": 0.5})
|
|
|
|
def test_subagent_kind_enum():
|
|
assert SubagentKind.LONGITUDINAL.value == "longitudinal"
|