Fixed unit tests

This commit is contained in:
2025-07-14 15:22:56 +02:00
parent ed793995fb
commit 6f17f6ee1f
3 changed files with 15 additions and 7 deletions

View File

@@ -81,7 +81,7 @@ class WorkflowDesignerCommandManager(BaseCommandManager):
"hx_post": f"{ROUTE_ROOT}{Routes.PauseWorkflow}", "hx_post": f"{ROUTE_ROOT}{Routes.PauseWorkflow}",
"hx-target": f"#{self._owner.tabs_manager.get_id()}", "hx-target": f"#{self._owner.tabs_manager.get_id()}",
"hx-swap": "outerHTML", "hx-swap": "outerHTML",
"hx-vals": f'js:{{"_id": "{self._id}")}}', "hx-vals": f'js:{{"_id": "{self._id}"}}',
} }
def stop_workflow(self): def stop_workflow(self):
@@ -89,7 +89,7 @@ class WorkflowDesignerCommandManager(BaseCommandManager):
"hx_post": f"{ROUTE_ROOT}{Routes.StopWorkflow}", "hx_post": f"{ROUTE_ROOT}{Routes.StopWorkflow}",
"hx-target": f"#{self._owner.tabs_manager.get_id()}", "hx-target": f"#{self._owner.tabs_manager.get_id()}",
"hx-swap": "outerHTML", "hx-swap": "outerHTML",
"hx-vals": f'js:{{"_id": "{self._id}")}}', "hx-vals": f'js:{{"_id": "{self._id}"}}',
} }

View File

@@ -205,7 +205,7 @@ class WorkflowDesigner(BaseComponent):
def stop_workflow(self): def stop_workflow(self):
self._error_message = None self._error_message = None
self._player.run() self._player.stop()
return self.tabs_manager.refresh() return self.tabs_manager.refresh()
def on_processor_details_event(self, component_id: str, event_name: str, details: dict): def on_processor_details_event(self, component_id: str, event_name: str, details: dict):

View File

@@ -68,8 +68,6 @@ class WorkflowPlayer(BaseComponent):
self._init_state(ComponentState.NOT_RUN) self._init_state(ComponentState.NOT_RUN)
components_by_id = {c.id: c for c in self._designer.get_workflow_components()}
try: try:
sorted_components = self._get_sorted_components() sorted_components = self._get_sorted_components()
engine = self._get_engine(sorted_components) engine = self._get_engine(sorted_components)
@@ -81,7 +79,7 @@ class WorkflowPlayer(BaseComponent):
return return
except WorkflowsPlayerError as ex: except WorkflowsPlayerError as ex:
self.has_error = True self.has_error = True
self.global_error = f"Failed to init component '{ex.component_id}': {ex.error}" self.global_error = self._get_global_error_as_str(ex, "Failed to init ")
if ex.component_id in self.runtime_states: if ex.component_id in self.runtime_states:
self.runtime_states[ex.component_id].state = ComponentState.FAILURE self.runtime_states[ex.component_id].state = ComponentState.FAILURE
self.runtime_states[ex.component_id].error_message = str(ex.error) self.runtime_states[ex.component_id].error_message = str(ex.error)
@@ -105,7 +103,7 @@ class WorkflowPlayer(BaseComponent):
error = engine.errors[component.id] error = engine.errors[component.id]
runtime_state.state = ComponentState.FAILURE runtime_state.state = ComponentState.FAILURE
runtime_state.error_message = str(error) runtime_state.error_message = str(error)
self.global_error = f"Error in component '{error.component_id}': {error.error}" # update global error as well self.global_error = self._get_global_error_as_str(error, "Error in ") # update global error as well
self.has_error = True self.has_error = True
break # the remaining components will remain as NOT_RUN break # the remaining components will remain as NOT_RUN
@@ -196,6 +194,9 @@ class WorkflowPlayer(BaseComponent):
elif component.type == ProcessorTypes.Presenter and component.properties["processor_name"] == "Default": elif component.type == ProcessorTypes.Presenter and component.properties["processor_name"] == "Default":
engine.add_processor(DefaultDataPresenter(component.id, component.properties["columns"])) engine.add_processor(DefaultDataPresenter(component.id, component.properties["columns"]))
else:
raise ValueError(
f"Unsupported processor : type={component.type}, name={component.properties['processor_name']}")
except Exception as e: except Exception as e:
raise WorkflowsPlayerError(component.id, e) raise WorkflowsPlayerError(component.id, e)
@@ -214,3 +215,10 @@ class WorkflowPlayer(BaseComponent):
suffix = get_unique_id() suffix = get_unique_id()
return make_safe_id(f"{prefix}{suffix}") return make_safe_id(f"{prefix}{suffix}")
@staticmethod
def _get_global_error_as_str(error, prefix=""):
if hasattr(error, "component_id"):
return f"{prefix}component '{error.component_id}': {error.error}"
else:
return str(error)