forked from HAL9000/cleveragents-core
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
"""Step definitions for Robot smoke alignment scenarios in session model tests.
|
|
|
|
These steps mirror the expectations enforced by the Robot Framework smoke
|
|
suite in ``robot/session_model.robot`` so that Behave and Robot stay in sync.
|
|
"""
|
|
|
|
from behave import then
|
|
from behave.runner import Context
|
|
|
|
|
|
@then("the export dict keys should be in expected serialization order")
|
|
def session_model_check_export_key_order(context: Context) -> None:
|
|
"""Verify export dict keys follow the canonical serialization order."""
|
|
expected_order = [
|
|
"schema_version",
|
|
"session_id",
|
|
"actor_name",
|
|
"namespace",
|
|
"messages",
|
|
"linked_plan_ids",
|
|
"token_usage",
|
|
"metadata",
|
|
"created_at",
|
|
"updated_at",
|
|
"checksum",
|
|
]
|
|
actual_keys = list(context.session_export_dict.keys())
|
|
assert actual_keys == expected_order, (
|
|
f"Expected export key order {expected_order}, got {actual_keys}"
|
|
)
|
|
|
|
|
|
@then("the export dict messages should be ordered by sequence")
|
|
def session_model_check_export_messages_sequence_order(context: Context) -> None:
|
|
"""Verify messages in the export dict are ordered by sequence."""
|
|
messages = context.session_export_dict["messages"]
|
|
sequences = [m["sequence"] for m in messages]
|
|
assert sequences == sorted(sequences), (
|
|
f"Export messages not ordered by sequence: {sequences}"
|
|
)
|