From d4513d75f993c543d6dd6707340a11b7ca79781a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Jedlicska?= Date: Fri, 28 Feb 2025 19:04:05 +0100 Subject: [PATCH] feat(automate): application ids in result metadata --- src/speckle_automate/automation_context.py | 29 ++++++++++--------- .../test_automation_context.py | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/speckle_automate/automation_context.py b/src/speckle_automate/automation_context.py index 19b0f6f..a4f86f9 100644 --- a/src/speckle_automate/automation_context.py +++ b/src/speckle_automate/automation_context.py @@ -332,7 +332,7 @@ def _mark_run( def attach_error_to_objects( self, category: str, - object_ids: Union[str, List[str]], + objects: Union[Base, List[Base]], message: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, visual_overrides: Optional[Dict[str, Any]] = None, @@ -351,7 +351,7 @@ def attach_error_to_objects( self.attach_result_to_objects( ObjectResultLevel.ERROR, category, - object_ids, + objects, message, metadata, visual_overrides, @@ -360,7 +360,7 @@ def attach_error_to_objects( def attach_warning_to_objects( self, category: str, - object_ids: Union[str, List[str]], + objects: Union[Base, List[Base]], message: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, visual_overrides: Optional[Dict[str, Any]] = None, @@ -369,7 +369,7 @@ def attach_warning_to_objects( self.attach_result_to_objects( ObjectResultLevel.WARNING, category, - object_ids, + objects, message, metadata, visual_overrides, @@ -378,7 +378,7 @@ def attach_warning_to_objects( def attach_success_to_objects( self, category: str, - object_ids: Union[str, List[str]], + objects: Union[Base, List[Base]], message: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, visual_overrides: Optional[Dict[str, Any]] = None, @@ -387,7 +387,7 @@ def attach_success_to_objects( self.attach_result_to_objects( ObjectResultLevel.SUCCESS, category, - object_ids, + objects, message, metadata, visual_overrides, @@ -396,7 +396,7 @@ def attach_success_to_objects( def attach_info_to_objects( self, category: str, - object_ids: Union[str, List[str]], + objects: Union[Base, List[Base]], message: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, visual_overrides: Optional[Dict[str, Any]] = None, @@ -405,7 +405,7 @@ def attach_info_to_objects( self.attach_result_to_objects( ObjectResultLevel.INFO, category, - object_ids, + objects, message, metadata, visual_overrides, @@ -415,19 +415,22 @@ def attach_result_to_objects( self, level: ObjectResultLevel, category: str, - object_ids: Union[str, List[str]], + objects: Union[Base, List[Base]], message: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, visual_overrides: Optional[Dict[str, Any]] = None, ) -> None: - if isinstance(object_ids, list): - if len(object_ids) < 1: + if isinstance(objects, list): + if len(objects) < 1: raise ValueError( f"Need atleast one object_id to report a(n) {level.value.upper()}" ) - id_list = object_ids + id_list = [o.id for o in objects] + application_ids = [o.applicationId for o in objects] else: - id_list = [object_ids] + id_list = [objects.id] + application_ids = [objects.applicationId] + metadata["applicationIds"] = application_ids print( f"Created new {level.value.upper()}" f" category: {category} caused by: {message}" diff --git a/tests/integration/speckle_automate/test_automation_context.py b/tests/integration/speckle_automate/test_automation_context.py index 597ee16..20a9f61 100644 --- a/tests/integration/speckle_automate/test_automation_context.py +++ b/tests/integration/speckle_automate/test_automation_context.py @@ -133,7 +133,7 @@ def automate_function( raise ValueError("Cannot operate on objects without their id's.") automation_context.attach_error_to_objects( "Forbidden speckle_type", - version_root_object.id, + version_root_object, "This project should not contain the type: " f"{function_inputs.forbidden_speckle_type}", )