From 3e8ff5e4544ca2a44bf2079cb0e4d5f49775d694 Mon Sep 17 00:00:00 2001 From: Nayane Fernandes <143632290+ansnfernand@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:00:06 +0100 Subject: [PATCH 1/6] New api: updatePartsListProperties() --- src/ansys/sherlock/core/errors.py | 17 ++++ src/ansys/sherlock/core/parts.py | 128 ++++++++++++++++++++++++++++ tests/test_parts.py | 137 ++++++++++++++++++++++++++++++ 3 files changed, 282 insertions(+) diff --git a/src/ansys/sherlock/core/errors.py b/src/ansys/sherlock/core/errors.py index 976459eab..9dc511ac9 100644 --- a/src/ansys/sherlock/core/errors.py +++ b/src/ansys/sherlock/core/errors.py @@ -984,3 +984,20 @@ def __init__(self, message): def __str__(self): """Format error message.""" return f"Import zipped project archive error: {self.message}" + + +class SherlockUpdatePartsListPropertiesError(Exception): + """Contains the errors raised when a parts list properties cannot be updated.""" + + def __init__(self, message=None, error_array=None): + """Initialize error message.""" + self.message = message + self.error_array = error_array + + def str_itr(self): + """Format error message.""" + if self.message is None: + return [f"Update parts list properties error: {error}" for error in self.error_array] + + assert self.error_array is None + return [f"Update parts list properties error: {self.message}"] diff --git a/src/ansys/sherlock/core/parts.py b/src/ansys/sherlock/core/parts.py index e9913b943..63917f16a 100644 --- a/src/ansys/sherlock/core/parts.py +++ b/src/ansys/sherlock/core/parts.py @@ -17,6 +17,7 @@ SherlockImportPartsListError, SherlockUpdatePartsFromAVLError, SherlockUpdatePartsListError, + SherlockUpdatePartsListPropertiesError, SherlockUpdatePartsLocationsByFileError, SherlockUpdatePartsLocationsError, ) @@ -804,3 +805,130 @@ def update_parts_from_AVL( except SherlockUpdatePartsFromAVLError as e: LOG.error(str(e)) raise e + + def update_part_lists_properties(self, project, cca_name, part_properties): + """ + Update one or more properties of one or more parts in a parts list. + + Parameters + ---------- + project : str + Name of the Sherlock project. + cca_name : str + Name of the CCA. + part_properties : list + List of part properties consisting of these properties: + + - ref_des : List of str, optional + List of the reference designator for each part to be updated. If not included, + update properties for all parts in the CCA. + - properties : list + List of properties consisting of these properties: + + - name : str + Name of property to be updated. + - value : str + Value to be applied to the chosen part property. + + Returns + ------- + int + Status code of the response. 0 for success. + + Examples + -------- + >>> from ansys.sherlock.core.launcher import launch_sherlock + >>> sherlock = launch_sherlock() + >>> sherlock.parts.update_part_lists_properties( + "Test", + "Card", + [ + { + "ref_des": ["C1"], + "properties": [ + {"name": "partType", "value": "RESISTOR"} + ] + }, + { + "ref_des": ["C2"], + "properties": [ + {"name": "locX", "value": "1"} + ] + } + ] + ) + """ + try: + if project == "": + raise SherlockUpdatePartsListPropertiesError(message="Project name is invalid.") + if cca_name == "": + raise SherlockUpdatePartsListPropertiesError(message="CCA name is invalid.") + if len(part_properties) == 0: + raise SherlockUpdatePartsListPropertiesError(message="Part properties are missing.") + + for i, part_property in enumerate(part_properties): + if len(part_property) < 1 or len(part_property) > 2: + raise SherlockUpdatePartsListPropertiesError( + f"Number of elements ({str(len(part_property))}) " + f"is wrong for part list property {i}." + ) + elif not isinstance(part_property["ref_des"], list): + raise SherlockUpdatePartsListPropertiesError( + f"ref_des is not a list " f"for parts list property {i}." + ) + + properties = part_property["properties"] + for j, property in enumerate(properties): + if len(property) < 1 or len(property) > 2: + raise SherlockUpdatePartsListPropertiesError( + f"Number of elements ({str(len(property))}) " + f"is wrong for property {j}." + ) + elif not isinstance(property["name"], str) or property["name"] == "": + raise SherlockUpdatePartsListPropertiesError( + f"Name is required " f"for property {j}." + ) + elif not isinstance(property["value"], str) or property["value"] == "": + raise SherlockUpdatePartsListPropertiesError( + f"Value is required " f"for property {j}." + ) + + if not self._is_connection_up(): + LOG.error("There is no connection to a gRPC service.") + return + + request = SherlockPartsService_pb2.UpdatePartsListPropertiesRequest( + project=project, ccaName=cca_name + ) + + # Add part properties to the request + for part_prop in part_properties: + prop = request.partProperties.add() + ref_des_props = part_prop["ref_des"] + if ref_des_props is not None: + for ref_des_prop in ref_des_props: + prop.refDes.append(ref_des_prop) + + props = part_prop["properties"] + if props is not None: + for prop_dict in props: + property_obj = prop.properties.add() + property_obj.name = prop_dict["name"] + property_obj.value = prop_dict["value"] + + response = self.stub.updatePartsListProperties(request) + + return_code = response.returnCode + + if return_code.value == -1: + if return_code.message == "": + raise SherlockUpdatePartsListPropertiesError(error_array=response.errors) + + raise SherlockUpdatePartsListPropertiesError(message=return_code.message) + + return return_code.value + + except SherlockUpdatePartsListPropertiesError as e: + for error in e.str_itr(): + LOG.error(error) + raise e diff --git a/tests/test_parts.py b/tests/test_parts.py index 020912a77..8b5abcd4e 100644 --- a/tests/test_parts.py +++ b/tests/test_parts.py @@ -14,6 +14,7 @@ SherlockImportPartsListError, SherlockUpdatePartsFromAVLError, SherlockUpdatePartsListError, + SherlockUpdatePartsListPropertiesError, SherlockUpdatePartsLocationsByFileError, SherlockUpdatePartsLocationsError, ) @@ -34,6 +35,8 @@ def test_all(): helper_test_update_parts_list(parts) time.sleep(1) + helper_test_update_part_lists_properties(parts) + time.sleep(1) helper_test_update_parts_from_AVL(parts) helper_test_update_parts_locations(parts) helper_test_update_parts_locations_by_file(parts) @@ -672,5 +675,139 @@ def helper_test_get_part_location(parts): assert str(e) == "Get part location error: Location unit is invalid." +def helper_test_update_part_lists_properties(parts): + """Test update_part_lists_properties API""" + try: + parts.update_part_lists_properties( + "", + "CCA_Name", + [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: Project name is invalid.']" + ) + + try: + parts.update_part_lists_properties( + "Test", + "", + [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == "['Update parts list properties error: CCA name is invalid.']" + + try: + parts.update_part_lists_properties("Test", "CCA_Name", []) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: Part properties are missing.']" + ) + + try: + parts.update_part_lists_properties( + "Test", + "CCA_name", + [ + { + "ref_des": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR"}], + "test": "test", + } + ], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: Number of elements (3) " + "is wrong for part list property 0.']" + ) + + try: + parts.update_part_lists_properties( + "Test", + "CCA_name", + [{"ref_des": "C1", "properties": [{"name": "partType", "value": "RESISTOR"}]}], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: ref_des is not a list " + "for parts list property 0.']" + ) + + try: + parts.update_part_lists_properties( + "Test", + "CCA_name", + [ + { + "ref_des": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR", "test": "test"}], + } + ], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: Number of elements (3) " + "is wrong for property 0.']" + ) + + try: + parts.update_part_lists_properties( + "Test", + "CCA_name", + [{"ref_des": ["C1"], "properties": [{"name": "", "value": "RESISTOR"}]}], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: Name is required for property 0.']" + ) + + try: + parts.update_part_lists_properties( + "Test", + "CCA_name", + [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": ""}]}], + ) + pytest.fail("No exception raised when using an invalid parameter") + except SherlockUpdatePartsListPropertiesError as e: + assert str(e.str_itr()) == ( + "['Update parts list properties error: Value is required for property 0.']" + ) + + if not parts._is_connection_up(): + return + + try: + parts.update_part_lists_properties( + "Test", + "CCA_name", + [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + ) + pytest.fail("No exception raised when using an invalid parameter") + except Exception as e: + assert type(e) == SherlockUpdatePartsListPropertiesError + + if parts._is_connection_up(): + try: + result = parts.update_part_lists_properties( + "Tutorial Project", + "Main Board", + [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + ) + + assert result == 0 + time.sleep(1) + + except Exception as e: + pytest.fail(e.message) + + if __name__ == "__main__": test_all() From 04a43977bae28b41fb8976b78ff1593a83dd97b1 Mon Sep 17 00:00:00 2001 From: Nayane Fernandes <143632290+ansnfernand@users.noreply.github.com> Date: Mon, 4 Mar 2024 11:07:29 +0100 Subject: [PATCH 2/6] Correction of typo --- src/ansys/sherlock/core/parts.py | 4 ++-- tests/test_parts.py | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/ansys/sherlock/core/parts.py b/src/ansys/sherlock/core/parts.py index 63917f16a..a058c4f95 100644 --- a/src/ansys/sherlock/core/parts.py +++ b/src/ansys/sherlock/core/parts.py @@ -806,7 +806,7 @@ def update_parts_from_AVL( LOG.error(str(e)) raise e - def update_part_lists_properties(self, project, cca_name, part_properties): + def update_parts_list_properties(self, project, cca_name, part_properties): """ Update one or more properties of one or more parts in a parts list. @@ -839,7 +839,7 @@ def update_part_lists_properties(self, project, cca_name, part_properties): -------- >>> from ansys.sherlock.core.launcher import launch_sherlock >>> sherlock = launch_sherlock() - >>> sherlock.parts.update_part_lists_properties( + >>> sherlock.parts.update_parts_list_properties( "Test", "Card", [ diff --git a/tests/test_parts.py b/tests/test_parts.py index 8b5abcd4e..d68489a3b 100644 --- a/tests/test_parts.py +++ b/tests/test_parts.py @@ -35,7 +35,7 @@ def test_all(): helper_test_update_parts_list(parts) time.sleep(1) - helper_test_update_part_lists_properties(parts) + helper_test_update_parts_list_properties(parts) time.sleep(1) helper_test_update_parts_from_AVL(parts) helper_test_update_parts_locations(parts) @@ -675,10 +675,10 @@ def helper_test_get_part_location(parts): assert str(e) == "Get part location error: Location unit is invalid." -def helper_test_update_part_lists_properties(parts): - """Test update_part_lists_properties API""" +def helper_test_update_parts_list_properties(parts): + """Test update_parts_list_properties API""" try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "", "CCA_Name", [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], @@ -690,7 +690,7 @@ def helper_test_update_part_lists_properties(parts): ) try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "", [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], @@ -700,7 +700,7 @@ def helper_test_update_part_lists_properties(parts): assert str(e.str_itr()) == "['Update parts list properties error: CCA name is invalid.']" try: - parts.update_part_lists_properties("Test", "CCA_Name", []) + parts.update_parts_list_properties("Test", "CCA_Name", []) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: assert str(e.str_itr()) == ( @@ -708,7 +708,7 @@ def helper_test_update_part_lists_properties(parts): ) try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "CCA_name", [ @@ -727,7 +727,7 @@ def helper_test_update_part_lists_properties(parts): ) try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "CCA_name", [{"ref_des": "C1", "properties": [{"name": "partType", "value": "RESISTOR"}]}], @@ -740,7 +740,7 @@ def helper_test_update_part_lists_properties(parts): ) try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "CCA_name", [ @@ -758,7 +758,7 @@ def helper_test_update_part_lists_properties(parts): ) try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "CCA_name", [{"ref_des": ["C1"], "properties": [{"name": "", "value": "RESISTOR"}]}], @@ -770,7 +770,7 @@ def helper_test_update_part_lists_properties(parts): ) try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "CCA_name", [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": ""}]}], @@ -785,7 +785,7 @@ def helper_test_update_part_lists_properties(parts): return try: - parts.update_part_lists_properties( + parts.update_parts_list_properties( "Test", "CCA_name", [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], @@ -796,7 +796,7 @@ def helper_test_update_part_lists_properties(parts): if parts._is_connection_up(): try: - result = parts.update_part_lists_properties( + result = parts.update_parts_list_properties( "Tutorial Project", "Main Board", [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], From 57a1ef62dfc15b5521cd0bd1d62d839bdbd3b0ab Mon Sep 17 00:00:00 2001 From: Nayane Fernandes <143632290+ansnfernand@users.noreply.github.com> Date: Mon, 4 Mar 2024 17:56:19 +0100 Subject: [PATCH 3/6] Update after feedback --- src/ansys/sherlock/core/parts.py | 25 ++++++++-------- tests/test_parts.py | 51 ++++++++++++++++++++++---------- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/src/ansys/sherlock/core/parts.py b/src/ansys/sherlock/core/parts.py index a058c4f95..f3a62cda3 100644 --- a/src/ansys/sherlock/core/parts.py +++ b/src/ansys/sherlock/core/parts.py @@ -819,7 +819,7 @@ def update_parts_list_properties(self, project, cca_name, part_properties): part_properties : list List of part properties consisting of these properties: - - ref_des : List of str, optional + - reference_designators : List of str, optional List of the reference designator for each part to be updated. If not included, update properties for all parts in the CCA. - properties : list @@ -844,13 +844,13 @@ def update_parts_list_properties(self, project, cca_name, part_properties): "Card", [ { - "ref_des": ["C1"], + "reference_designators": ["C1"], "properties": [ {"name": "partType", "value": "RESISTOR"} ] }, { - "ref_des": ["C2"], + "reference_designators": ["C2"], "properties": [ {"name": "locX", "value": "1"} ] @@ -869,26 +869,25 @@ def update_parts_list_properties(self, project, cca_name, part_properties): for i, part_property in enumerate(part_properties): if len(part_property) < 1 or len(part_property) > 2: raise SherlockUpdatePartsListPropertiesError( - f"Number of elements ({str(len(part_property))}) " + f"Number of elements ({len(part_property)}) " f"is wrong for part list property {i}." ) - elif not isinstance(part_property["ref_des"], list): + elif not isinstance(part_property["reference_designators"], list): raise SherlockUpdatePartsListPropertiesError( - f"ref_des is not a list " f"for parts list property {i}." + f"reference_designators is not a list " f"for parts list property {i}." ) properties = part_property["properties"] for j, property in enumerate(properties): if len(property) < 1 or len(property) > 2: raise SherlockUpdatePartsListPropertiesError( - f"Number of elements ({str(len(property))}) " - f"is wrong for property {j}." + f"Number of elements ({len(property)}) " f"is wrong for property {j}." ) elif not isinstance(property["name"], str) or property["name"] == "": raise SherlockUpdatePartsListPropertiesError( f"Name is required " f"for property {j}." ) - elif not isinstance(property["value"], str) or property["value"] == "": + elif not isinstance(property["value"], str): raise SherlockUpdatePartsListPropertiesError( f"Value is required " f"for property {j}." ) @@ -904,10 +903,10 @@ def update_parts_list_properties(self, project, cca_name, part_properties): # Add part properties to the request for part_prop in part_properties: prop = request.partProperties.add() - ref_des_props = part_prop["ref_des"] - if ref_des_props is not None: - for ref_des_prop in ref_des_props: - prop.refDes.append(ref_des_prop) + ref_des = part_prop["reference_designators"] + if ref_des is not None: + for reference_designators_prop in ref_des: + prop.refDes.append(reference_designators_prop) props = part_prop["properties"] if props is not None: diff --git a/tests/test_parts.py b/tests/test_parts.py index d68489a3b..d5c429e8b 100644 --- a/tests/test_parts.py +++ b/tests/test_parts.py @@ -36,7 +36,6 @@ def test_all(): helper_test_update_parts_list(parts) time.sleep(1) helper_test_update_parts_list_properties(parts) - time.sleep(1) helper_test_update_parts_from_AVL(parts) helper_test_update_parts_locations(parts) helper_test_update_parts_locations_by_file(parts) @@ -681,7 +680,12 @@ def helper_test_update_parts_list_properties(parts): parts.update_parts_list_properties( "", "CCA_Name", - [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + [ + { + "reference_designators": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR"}], + } + ], ) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: @@ -693,7 +697,12 @@ def helper_test_update_parts_list_properties(parts): parts.update_parts_list_properties( "Test", "", - [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + [ + { + "reference_designators": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR"}], + } + ], ) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: @@ -713,7 +722,7 @@ def helper_test_update_parts_list_properties(parts): "CCA_name", [ { - "ref_des": ["C1"], + "reference_designators": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}], "test": "test", } @@ -730,12 +739,17 @@ def helper_test_update_parts_list_properties(parts): parts.update_parts_list_properties( "Test", "CCA_name", - [{"ref_des": "C1", "properties": [{"name": "partType", "value": "RESISTOR"}]}], + [ + { + "reference_designators": "C1", + "properties": [{"name": "partType", "value": "RESISTOR"}], + } + ], ) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: assert str(e.str_itr()) == ( - "['Update parts list properties error: ref_des is not a list " + "['Update parts list properties error: reference_designators is not a list " "for parts list property 0.']" ) @@ -745,7 +759,7 @@ def helper_test_update_parts_list_properties(parts): "CCA_name", [ { - "ref_des": ["C1"], + "reference_designators": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR", "test": "test"}], } ], @@ -761,7 +775,7 @@ def helper_test_update_parts_list_properties(parts): parts.update_parts_list_properties( "Test", "CCA_name", - [{"ref_des": ["C1"], "properties": [{"name": "", "value": "RESISTOR"}]}], + [{"reference_designators": ["C1"], "properties": [{"name": "", "value": "RESISTOR"}]}], ) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: @@ -773,7 +787,7 @@ def helper_test_update_parts_list_properties(parts): parts.update_parts_list_properties( "Test", "CCA_name", - [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": ""}]}], + [{"reference_designators": ["C1"], "properties": [{"name": "partType", "value": 0}]}], ) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: @@ -781,14 +795,16 @@ def helper_test_update_parts_list_properties(parts): "['Update parts list properties error: Value is required for property 0.']" ) - if not parts._is_connection_up(): - return - try: parts.update_parts_list_properties( - "Test", + "Invalid project", "CCA_name", - [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + [ + { + "reference_designators": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR"}], + } + ], ) pytest.fail("No exception raised when using an invalid parameter") except Exception as e: @@ -799,7 +815,12 @@ def helper_test_update_parts_list_properties(parts): result = parts.update_parts_list_properties( "Tutorial Project", "Main Board", - [{"ref_des": ["C1"], "properties": [{"name": "partType", "value": "RESISTOR"}]}], + [ + { + "reference_designators": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR"}], + } + ], ) assert result == 0 From 4cf1d3fa7f729f383f3bd89c3dc24f1e94e41780 Mon Sep 17 00:00:00 2001 From: Nayane Fernandes <143632290+ansnfernand@users.noreply.github.com> Date: Tue, 5 Mar 2024 10:03:47 +0100 Subject: [PATCH 4/6] Update after feedback --- src/ansys/sherlock/core/parts.py | 12 ++++------ tests/test_parts.py | 39 ++++++++++++++++---------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/src/ansys/sherlock/core/parts.py b/src/ansys/sherlock/core/parts.py index f3a62cda3..520372475 100644 --- a/src/ansys/sherlock/core/parts.py +++ b/src/ansys/sherlock/core/parts.py @@ -888,9 +888,7 @@ def update_parts_list_properties(self, project, cca_name, part_properties): f"Name is required " f"for property {j}." ) elif not isinstance(property["value"], str): - raise SherlockUpdatePartsListPropertiesError( - f"Value is required " f"for property {j}." - ) + raise SherlockUpdatePartsListPropertiesError(message="Value is invalid.") if not self._is_connection_up(): LOG.error("There is no connection to a gRPC service.") @@ -903,10 +901,10 @@ def update_parts_list_properties(self, project, cca_name, part_properties): # Add part properties to the request for part_prop in part_properties: prop = request.partProperties.add() - ref_des = part_prop["reference_designators"] - if ref_des is not None: - for reference_designators_prop in ref_des: - prop.refDes.append(reference_designators_prop) + reference_designators = part_prop["reference_designators"] + if reference_designators is not None: + for ref_des in reference_designators: + prop.refDes.append(ref_des) props = part_prop["properties"] if props is not None: diff --git a/tests/test_parts.py b/tests/test_parts.py index d5c429e8b..597101684 100644 --- a/tests/test_parts.py +++ b/tests/test_parts.py @@ -36,6 +36,7 @@ def test_all(): helper_test_update_parts_list(parts) time.sleep(1) helper_test_update_parts_list_properties(parts) + time.sleep(1) helper_test_update_parts_from_AVL(parts) helper_test_update_parts_locations(parts) helper_test_update_parts_locations_by_file(parts) @@ -791,9 +792,10 @@ def helper_test_update_parts_list_properties(parts): ) pytest.fail("No exception raised when using an invalid parameter") except SherlockUpdatePartsListPropertiesError as e: - assert str(e.str_itr()) == ( - "['Update parts list properties error: Value is required for property 0.']" - ) + assert str(e.str_itr()) == ("['Update parts list properties error: Value is invalid.']") + + if not parts._is_connection_up(): + return try: parts.update_parts_list_properties( @@ -810,24 +812,23 @@ def helper_test_update_parts_list_properties(parts): except Exception as e: assert type(e) == SherlockUpdatePartsListPropertiesError - if parts._is_connection_up(): - try: - result = parts.update_parts_list_properties( - "Tutorial Project", - "Main Board", - [ - { - "reference_designators": ["C1"], - "properties": [{"name": "partType", "value": "RESISTOR"}], - } - ], - ) + try: + result = parts.update_parts_list_properties( + "Tutorial Project", + "Main Board", + [ + { + "reference_designators": ["C1"], + "properties": [{"name": "partType", "value": "RESISTOR"}], + } + ], + ) - assert result == 0 - time.sleep(1) + assert result == 0 + time.sleep(1) - except Exception as e: - pytest.fail(e.message) + except Exception as e: + pytest.fail(e.message) if __name__ == "__main__": From fe7ecf68c359b66e7109e3a747853060d38d796b Mon Sep 17 00:00:00 2001 From: Nayane Fernandes <143632290+ansnfernand@users.noreply.github.com> Date: Wed, 6 Mar 2024 09:25:32 +0100 Subject: [PATCH 5/6] Update after feedback --- tests/test_parts.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/test_parts.py b/tests/test_parts.py index 597101684..66be33226 100644 --- a/tests/test_parts.py +++ b/tests/test_parts.py @@ -824,9 +824,6 @@ def helper_test_update_parts_list_properties(parts): ], ) - assert result == 0 - time.sleep(1) - except Exception as e: pytest.fail(e.message) From d7282f0d76b69e267b618169b4f97d88c9b0c61c Mon Sep 17 00:00:00 2001 From: Nayane Fernandes <143632290+ansnfernand@users.noreply.github.com> Date: Wed, 6 Mar 2024 17:48:03 +0100 Subject: [PATCH 6/6] Update after feedback --- tests/test_parts.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_parts.py b/tests/test_parts.py index 66be33226..66046e8f3 100644 --- a/tests/test_parts.py +++ b/tests/test_parts.py @@ -824,6 +824,8 @@ def helper_test_update_parts_list_properties(parts): ], ) + assert result == 0 + except Exception as e: pytest.fail(e.message)