test orgs

This commit is contained in:
lda
2026-05-07 06:01:48 +07:00 Verified
parent fa1aa58b3c
commit 868709f99c
6 changed files with 360 additions and 324 deletions
+76
View File
@@ -0,0 +1,76 @@
from __future__ import annotations
from wf_authoring import WorkflowBuilder
from tests.authoring.helpers import (
AppendState,
DefaultedState,
TypedDictInput,
WorkflowInput,
WorkflowOutput,
WorkflowState,
)
def test_builder_accepts_basemodel_classes_for_workflow_schemas() -> None:
builder = WorkflowBuilder(
name="model_schema_demo",
input_schema=WorkflowInput,
state_schema=WorkflowState,
output_schema=WorkflowOutput,
start="start",
)
workflow = builder.compile()
assert workflow.input_schema.properties["text"]["type"] == "string"
assert workflow.output_schema.properties["text"]["type"] == "string"
assert set(workflow.state_schema.fields) == {"text", "count", "tags"}
assert workflow.state_schema.fields["text"].type == "string"
assert workflow.state_schema.fields["count"].type == "integer"
assert workflow.state_schema.fields["tags"].type == "array"
def test_builder_accepts_typeddict_for_json_schema_refs() -> None:
builder = WorkflowBuilder(
name="typed_dict_schema_demo",
input_schema=TypedDictInput,
state_schema=WorkflowState,
output_schema=WorkflowOutput,
start="start",
)
workflow = builder.compile()
assert workflow.input_schema.properties["text"]["type"] == "string"
def test_state_basemodel_can_declare_merge_strategy_with_annotated_metadata() -> None:
builder = WorkflowBuilder(
name="state_metadata_demo",
input_schema=WorkflowInput,
state_schema=AppendState,
output_schema=WorkflowOutput,
start="start",
)
workflow = builder.compile()
assert workflow.state_schema.fields["items"].type == "array"
assert workflow.state_schema.fields["items"].merge_strategy == "append"
def test_state_basemodel_seeds_safe_initial_defaults() -> None:
builder = WorkflowBuilder(
name="state_defaults_demo",
input_schema=WorkflowInput,
state_schema=DefaultedState,
output_schema=WorkflowOutput,
start="start",
)
workflow = builder.compile()
assert workflow.state_schema.fields["items"].default == []
assert workflow.state_schema.fields["metadata"].default == {}
assert workflow.state_schema.fields["explicit"].default == 3