feat: add workflow node registry phase 2
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import pytest
|
||||
|
||||
from app.core.process_steps import StepName
|
||||
from app.domains.rendering.workflow_node_registry import (
|
||||
get_node_definition,
|
||||
list_node_definitions,
|
||||
)
|
||||
|
||||
|
||||
def test_node_registry_covers_all_step_names():
|
||||
registered_steps = {definition.step for definition in list_node_definitions()}
|
||||
expected_steps = {step.value for step in StepName}
|
||||
|
||||
assert registered_steps == expected_steps
|
||||
|
||||
|
||||
def test_turntable_node_definition_exposes_expected_schema():
|
||||
definition = get_node_definition(StepName.BLENDER_TURNTABLE)
|
||||
|
||||
assert definition is not None
|
||||
assert definition.node_type == "renderFramesNode"
|
||||
assert definition.defaults["fps"] == 24
|
||||
assert definition.defaults["duration_s"] == 5
|
||||
assert {field.key for field in definition.fields} >= {
|
||||
"render_engine",
|
||||
"samples",
|
||||
"width",
|
||||
"height",
|
||||
"fps",
|
||||
"duration_s",
|
||||
"rotation_z",
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_node_definitions_endpoint_returns_registry(client, auth_headers):
|
||||
response = await client.get("/api/workflows/node-definitions", headers=auth_headers)
|
||||
|
||||
assert response.status_code == 200
|
||||
body = response.json()
|
||||
assert len(body["definitions"]) == len(StepName)
|
||||
|
||||
blender_still = next(
|
||||
definition for definition in body["definitions"] if definition["step"] == StepName.BLENDER_STILL.value
|
||||
)
|
||||
assert blender_still["node_type"] == "renderNode"
|
||||
assert blender_still["defaults"]["render_engine"] == "cycles"
|
||||
Reference in New Issue
Block a user