| 1234567891011121314151617181920212223242526272829303132333435363738 |
- from __future__ import annotations
- import json
- import unittest
- from pathlib import Path
- from app.automation import get_node_definitions
- from app.schemas import AutomationWorkflowSaveRequest
- class WorkflowNodeRegistryTest(unittest.TestCase):
- def test_registered_nodes_have_chinese_descriptions(self) -> None:
- for definition in get_node_definitions():
- self.assertTrue(definition.get("description"), definition["type"])
- self.assertTrue(definition.get("label"), definition["type"])
- def test_reliability_and_console_nodes_are_registered(self) -> None:
- definitions = {item["type"]: item for item in get_node_definitions()}
- for node_type in [
- "browser.ensure_foreground",
- "browser.control",
- "media.control",
- "vision.verify_page",
- "vision.click_target",
- "vision.close_popups",
- ]:
- self.assertIn(node_type, definitions)
- def test_all_checked_in_workflows_match_schema(self) -> None:
- workflow_dir = Path(__file__).resolve().parents[2] / "workflows"
- paths = sorted(workflow_dir.glob("*.workflow.json"))
- self.assertGreater(len(paths), 0)
- for path in paths:
- AutomationWorkflowSaveRequest.model_validate(json.loads(path.read_text(encoding="utf-8")))
- if __name__ == "__main__":
- unittest.main()
|