MicroFish/backend/tests/interviews/test_models.py

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"