test: make tests work again after changing Program schema
ref: N25B-380
This commit is contained in:
@@ -1,49 +1,61 @@
|
||||
import uuid
|
||||
|
||||
import pytest
|
||||
from pydantic import ValidationError
|
||||
|
||||
from control_backend.schemas.program import (
|
||||
BasicNorm,
|
||||
Goal,
|
||||
KeywordTrigger,
|
||||
Norm,
|
||||
KeywordBelief,
|
||||
Phase,
|
||||
Plan,
|
||||
Program,
|
||||
TriggerKeyword,
|
||||
Trigger,
|
||||
)
|
||||
|
||||
|
||||
def base_norm() -> Norm:
|
||||
return Norm(
|
||||
id="norm1",
|
||||
label="testNorm",
|
||||
def base_norm() -> BasicNorm:
|
||||
return BasicNorm(
|
||||
id=uuid.uuid4(),
|
||||
name="testNormName",
|
||||
norm="testNormNorm",
|
||||
critical=False,
|
||||
)
|
||||
|
||||
|
||||
def base_goal() -> Goal:
|
||||
return Goal(
|
||||
id="goal1",
|
||||
label="testGoal",
|
||||
description="testGoalDescription",
|
||||
achieved=False,
|
||||
id=uuid.uuid4(),
|
||||
name="testGoalName",
|
||||
plan=Plan(
|
||||
id=uuid.uuid4(),
|
||||
name="testGoalPlanName",
|
||||
steps=[],
|
||||
),
|
||||
can_fail=False,
|
||||
)
|
||||
|
||||
|
||||
def base_trigger() -> KeywordTrigger:
|
||||
return KeywordTrigger(
|
||||
id="trigger1",
|
||||
label="testTrigger",
|
||||
type="keywords",
|
||||
keywords=[
|
||||
TriggerKeyword(id="keyword1", keyword="testKeyword1"),
|
||||
TriggerKeyword(id="keyword1", keyword="testKeyword2"),
|
||||
],
|
||||
def base_trigger() -> Trigger:
|
||||
return Trigger(
|
||||
id=uuid.uuid4(),
|
||||
name="testTriggerName",
|
||||
condition=KeywordBelief(
|
||||
id=uuid.uuid4(),
|
||||
name="testTriggerKeywordBeliefTriggerName",
|
||||
keyword="Keyword",
|
||||
),
|
||||
plan=Plan(
|
||||
id=uuid.uuid4(),
|
||||
name="testTriggerPlanName",
|
||||
steps=[],
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def base_phase() -> Phase:
|
||||
return Phase(
|
||||
id="phase1",
|
||||
label="basephase",
|
||||
id=uuid.uuid4(),
|
||||
norms=[base_norm()],
|
||||
goals=[base_goal()],
|
||||
triggers=[base_trigger()],
|
||||
@@ -58,7 +70,7 @@ def invalid_program() -> dict:
|
||||
# wrong types inside phases list (not Phase objects)
|
||||
return {
|
||||
"phases": [
|
||||
{"id": "phase1"}, # incomplete
|
||||
{"id": uuid.uuid4()}, # incomplete
|
||||
{"not_a_phase": True},
|
||||
]
|
||||
}
|
||||
@@ -77,8 +89,8 @@ def test_valid_deepprogram():
|
||||
# validate nested components directly
|
||||
phase = validated.phases[0]
|
||||
assert isinstance(phase.goals[0], Goal)
|
||||
assert isinstance(phase.triggers[0], KeywordTrigger)
|
||||
assert isinstance(phase.norms[0], Norm)
|
||||
assert isinstance(phase.triggers[0], Trigger)
|
||||
assert isinstance(phase.norms[0], BasicNorm)
|
||||
|
||||
|
||||
def test_invalid_program():
|
||||
|
||||
Reference in New Issue
Block a user