From 2b208ee504e786f177716550c625ea3044db4218 Mon Sep 17 00:00:00 2001
From: ValueOn AG
Date: Sun, 7 Jun 2026 08:39:19 +0200
Subject: [PATCH] fix(test): update methodTrustee path in signature validator
parametrize
Co-authored-by: Cursor
---
.../interfaceFeatureGraphicalEditor.py | 58 +++++++++----------
.../test_action_signature_validator.py | 2 +-
2 files changed, 29 insertions(+), 31 deletions(-)
diff --git a/modules/features/graphicalEditor/interfaceFeatureGraphicalEditor.py b/modules/features/graphicalEditor/interfaceFeatureGraphicalEditor.py
index aacc9e45..092389c6 100644
--- a/modules/features/graphicalEditor/interfaceFeatureGraphicalEditor.py
+++ b/modules/features/graphicalEditor/interfaceFeatureGraphicalEditor.py
@@ -46,8 +46,6 @@ from modules.datamodels.datamodelWorkflowAutomation import (
AutoRun,
AutoStepLog,
AutoTask,
- Automation2Workflow,
- Automation2WorkflowRun,
)
from modules.features.graphicalEditor.entryPoints import invocations_synced_with_graph
from modules.connectors.connectorDbPostgre import DatabaseConnector
@@ -96,11 +94,11 @@ def getAllWorkflowsForScheduling() -> List[Dict[str, Any]]:
dbPort=dbPort,
userId=None,
)
- if not connector._ensureTableExists(Automation2Workflow):
- logger.warning("GraphicalEditor schedule: table Automation2Workflow does not exist yet")
+ if not connector._ensureTableExists(AutoWorkflow):
+ logger.warning("GraphicalEditor schedule: table AutoWorkflow does not exist yet")
return []
records = connector.getRecordset(
- Automation2Workflow,
+ AutoWorkflow,
recordFilter=None,
)
raw_count = len(records) if records else 0
@@ -191,7 +189,7 @@ class GraphicalEditorObjects:
def getWorkflows(self, active: Optional[bool] = None) -> List[Dict[str, Any]]:
"""Get all workflows for this mandate (cross-instance)."""
- if not self.db._ensureTableExists(Automation2Workflow):
+ if not self.db._ensureTableExists(AutoWorkflow):
return []
rf: Dict[str, Any] = {
"mandateId": self.mandateId,
@@ -199,7 +197,7 @@ class GraphicalEditorObjects:
if active is not None:
rf["active"] = active
records = self.db.getRecordset(
- Automation2Workflow,
+ AutoWorkflow,
recordFilter=rf,
)
rows = [dict(r) for r in records] if records else []
@@ -209,10 +207,10 @@ class GraphicalEditorObjects:
def getWorkflow(self, workflowId: str) -> Optional[Dict[str, Any]]:
"""Get a single workflow by ID (mandate-scoped, cross-instance)."""
- if not self.db._ensureTableExists(Automation2Workflow):
+ if not self.db._ensureTableExists(AutoWorkflow):
return None
records = self.db.getRecordset(
- Automation2Workflow,
+ AutoWorkflow,
recordFilter={
"id": workflowId,
"mandateId": self.mandateId,
@@ -235,7 +233,7 @@ class GraphicalEditorObjects:
if "active" not in data or data.get("active") is None:
data["active"] = True
data["invocations"] = invocations_synced_with_graph(data.get("graph") or {}, data.get("invocations"))
- created = self.db.recordCreate(Automation2Workflow, data)
+ created = self.db.recordCreate(AutoWorkflow, data)
out = dict(created)
out["invocations"] = invocations_synced_with_graph(out.get("graph") or {}, out.get("invocations"))
try:
@@ -258,7 +256,7 @@ class GraphicalEditorObjects:
g = {}
inv = data["invocations"] if "invocations" in data else existing.get("invocations")
data["invocations"] = invocations_synced_with_graph(g, inv)
- updated = self.db.recordModify(Automation2Workflow, workflowId, data)
+ updated = self.db.recordModify(AutoWorkflow, workflowId, data)
out = dict(updated)
out["invocations"] = invocations_synced_with_graph(out.get("graph") or {}, out.get("invocations"))
try:
@@ -273,7 +271,7 @@ class GraphicalEditorObjects:
existing = self.getWorkflow(workflowId)
if not existing:
return False
- self.db.recordDelete(Automation2Workflow, workflowId)
+ self.db.recordDelete(AutoWorkflow, workflowId)
try:
from modules.shared.callbackRegistry import callbackRegistry
callbackRegistry.trigger(_CALLBACK_WORKFLOW_CHANGED)
@@ -305,15 +303,15 @@ class GraphicalEditorObjects:
"mandateId": ctx.get("mandateId") or self.mandateId,
"ownerId": ctx.get("userId") or (self.currentUser.id if self.currentUser else None),
}
- created = self.db.recordCreate(Automation2WorkflowRun, data)
+ created = self.db.recordCreate(AutoRun, data)
return dict(created)
def getRun(self, runId: str) -> Optional[Dict[str, Any]]:
"""Get a run by ID."""
- if not self.db._ensureTableExists(Automation2WorkflowRun):
+ if not self.db._ensureTableExists(AutoRun):
return None
records = self.db.getRecordset(
- Automation2WorkflowRun,
+ AutoRun,
recordFilter={"id": runId},
)
if not records:
@@ -345,29 +343,29 @@ class GraphicalEditorObjects:
updates["context"] = context
if not updates:
return run
- updated = self.db.recordModify(Automation2WorkflowRun, runId, updates)
+ updated = self.db.recordModify(AutoRun, runId, updates)
return dict(updated)
def getRunsByWorkflow(self, workflowId: str) -> List[Dict[str, Any]]:
"""Get all runs for a workflow."""
- if not self.db._ensureTableExists(Automation2WorkflowRun):
+ if not self.db._ensureTableExists(AutoRun):
return []
records = self.db.getRecordset(
- Automation2WorkflowRun,
+ AutoRun,
recordFilter={"workflowId": workflowId},
)
return [dict(r) for r in records] if records else []
def getRecentCompletedRuns(self, limit: int = 20) -> List[Dict[str, Any]]:
"""Get recent runs (all statuses) for workflows in this instance."""
- if not self.db._ensureTableExists(Automation2WorkflowRun):
+ if not self.db._ensureTableExists(AutoRun):
return []
workflows = self.getWorkflows()
wf_ids = [w["id"] for w in workflows if w.get("id")]
if not wf_ids:
return []
records = self.db.getRecordset(
- Automation2WorkflowRun,
+ AutoRun,
recordFilter={},
)
if not records:
@@ -385,10 +383,10 @@ class GraphicalEditorObjects:
def getRunsWaitingForEmail(self) -> List[Dict[str, Any]]:
"""Get all paused runs waiting for a new email (for background poller)."""
- if not self.db._ensureTableExists(Automation2WorkflowRun):
+ if not self.db._ensureTableExists(AutoRun):
return []
records = self.db.getRecordset(
- Automation2WorkflowRun,
+ AutoRun,
recordFilter={"status": "paused"},
)
if not records:
@@ -426,15 +424,15 @@ class GraphicalEditorObjects:
"status": "pending",
"result": None,
}
- created = self.db.recordCreate(Automation2HumanTask, data)
+ created = self.db.recordCreate(AutoTask, data)
return dict(created)
def getTask(self, taskId: str) -> Optional[Dict[str, Any]]:
"""Get a task by ID."""
- if not self.db._ensureTableExists(Automation2HumanTask):
+ if not self.db._ensureTableExists(AutoTask):
return None
records = self.db.getRecordset(
- Automation2HumanTask,
+ AutoTask,
recordFilter={"id": taskId},
)
if not records:
@@ -453,7 +451,7 @@ class GraphicalEditorObjects:
updates["result"] = result
if not updates:
return task
- updated = self.db.recordModify(Automation2HumanTask, taskId, updates)
+ updated = self.db.recordModify(AutoTask, taskId, updates)
return dict(updated)
def getTasks(
@@ -464,7 +462,7 @@ class GraphicalEditorObjects:
assigneeId: str = None,
) -> List[Dict[str, Any]]:
"""Get tasks with optional filters."""
- if not self.db._ensureTableExists(Automation2HumanTask):
+ if not self.db._ensureTableExists(AutoTask):
return []
base_rf: Dict[str, Any] = {}
if workflowId:
@@ -476,8 +474,8 @@ class GraphicalEditorObjects:
if assigneeId:
rf_assigned = {**base_rf, "assigneeId": assigneeId}
rf_unassigned = {**base_rf, "assigneeId": None}
- records1 = self.db.getRecordset(Automation2HumanTask, recordFilter=rf_assigned)
- records2 = self.db.getRecordset(Automation2HumanTask, recordFilter=rf_unassigned)
+ records1 = self.db.getRecordset(AutoTask, recordFilter=rf_assigned)
+ records2 = self.db.getRecordset(AutoTask, recordFilter=rf_unassigned)
seen = set()
items = []
for r in (records1 or []) + (records2 or []):
@@ -488,7 +486,7 @@ class GraphicalEditorObjects:
items.append(rec)
else:
records = self.db.getRecordset(
- Automation2HumanTask,
+ AutoTask,
recordFilter=base_rf if base_rf else None,
)
items = [dict(r) for r in records] if records else []
diff --git a/tests/unit/methods/test_action_signature_validator.py b/tests/unit/methods/test_action_signature_validator.py
index 7afd4597..fa4aa71f 100644
--- a/tests/unit/methods/test_action_signature_validator.py
+++ b/tests/unit/methods/test_action_signature_validator.py
@@ -255,7 +255,7 @@ def _instantiateMethod(methodCls):
@pytest.mark.parametrize("modulePath,className", [
- ("modules.workflows.methods.methodTrustee.methodTrustee", "MethodTrustee"),
+ ("modules.features.trustee.workflows.methodTrustee.methodTrustee", "MethodTrustee"),
("modules.workflows.methods.methodRedmine.methodRedmine", "MethodRedmine"),
("modules.workflows.methods.methodSharepoint.methodSharepoint", "MethodSharepoint"),
("modules.workflows.methods.methodOutlook.methodOutlook", "MethodOutlook"),