Files
hunjing/backend/tests/schemas/test_admin_schemas.py
T
2026-08-21 16:00:13 +08:00

48 lines
1.3 KiB
Python

"""Goal schema 新字段(character_id / type / progress)的序列化与反序列化。"""
def test_goal_node_schema_has_new_fields():
from app.schemas.admin import GoalNode
node = GoalNode(
id="goal_test",
title="t",
description="d",
level="session",
status="active",
priority=50,
constraints=[],
success_criteria=[],
character_id="char_test",
type="mission",
progress=0.5,
)
assert node.character_id == "char_test"
assert node.type == "mission"
assert node.progress == 0.5
def test_create_goal_request_accepts_type():
from app.schemas.admin import CreateGoalRequest
req = CreateGoalRequest(title="t", level="task", type="exploration", character_id="char_xxx")
assert req.type == "exploration"
assert req.character_id == "char_xxx"
def test_update_goal_request_new_fields():
from app.schemas.admin import UpdateGoalRequest
req = UpdateGoalRequest(type="mission", progress=0.5)
assert req.type == "mission"
assert req.progress == 0.5
def test_update_goal_request_defaults():
from app.schemas.admin import UpdateGoalRequest
req = UpdateGoalRequest()
# 未设置的新字段应为 None(所有字段可选)
assert req.type is None
assert req.progress is None