diff --git a/ChangeLog.md b/ChangeLog.md index 862eebd..be3e5d9 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,8 +1,12 @@ # Python library to read Component License Information (CLI) files +## NEXT + +* do not add empty acknowledgments, files and filehashes. + ## V2.0.1 -* remove requests dependency (has never been used...) +* remove requests dependency (has never been used...). ## V2.0.0 diff --git a/cli_support/CLI.py b/cli_support/CLI.py index 5a074cc..4bfde83 100644 --- a/cli_support/CLI.py +++ b/cli_support/CLI.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# (c) 2019-2023 Siemens AG +# (c) 2019-2024 Siemens AG # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -197,8 +197,9 @@ def write_to_file(self, filename: str) -> None: tags.text = ",".join(str(x) for x in self.tags) comment = ET.SubElement(root, "Comment") - cdata = self.CDATA(self.comment) - comment.append(cdata) + if self.comment: + cdata = self.CDATA(self.comment) + comment.append(cdata) tree = ET.ElementTree(root) if not sys.version_info < (3, 9): diff --git a/cli_support/cli_assessment_summary.py b/cli_support/cli_assessment_summary.py index a7a4b68..855bcf7 100644 --- a/cli_support/cli_assessment_summary.py +++ b/cli_support/cli_assessment_summary.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# (c) 2023 Siemens AG +# (c) 2023-2024 Siemens AG # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -59,9 +59,11 @@ def _read_from_element(self, element: ET.Element) -> None: def _append_to_xml(self, parent: ET.Element) -> None: """Write assessment summary to XML element.""" gi = ET.SubElement(parent, "AssessmentSummary") + node = ET.SubElement(gi, "GeneralAssessment") - cdata = self.CDATA(self.general_assessment) - node.append(cdata) + if self.general_assessment: + cdata = self.CDATA(self.general_assessment) + node.append(cdata) node = ET.SubElement(gi, "CriticalFilesFound") node.text = self.critical_files_found @@ -76,5 +78,6 @@ def _append_to_xml(self, parent: ET.Element) -> None: node.text = self.usage_restrictions_found node = ET.SubElement(gi, "AdditionalNotes") - cdata = self.CDATA(self.additional_notes) - node.append(cdata) + if self.additional_notes: + cdata = self.CDATA(self.additional_notes) + node.append(cdata) diff --git a/cli_support/cli_file_item_base.py b/cli_support/cli_file_item_base.py index 80b889f..19fdbcf 100644 --- a/cli_support/cli_file_item_base.py +++ b/cli_support/cli_file_item_base.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# (c) 2019-2023 Siemens AG +# (c) 2019-2024 Siemens AG # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -40,10 +40,12 @@ def _read_files_from_element(self, element: ET.Element) -> None: def _append_to_xml(self, parent: ET.Element) -> None: """Write files and hashes to XML element.""" - file_data = ET.SubElement(parent, "Files") - cdata = self.CDATA("\n".join(str(x) for x in self.files)) - file_data.append(cdata) - - hash_data = ET.SubElement(parent, "FileHash") - cdata = self.CDATA("\n".join(str(x) for x in self.hashes)) - hash_data.append(cdata) + if len(self.files) > 0: + file_data = ET.SubElement(parent, "Files") + cdata = self.CDATA("\n".join(str(x) for x in self.files)) + file_data.append(cdata) + + if len(self.hashes) > 0: + hash_data = ET.SubElement(parent, "FileHash") + cdata = self.CDATA("\n".join(str(x) for x in self.hashes)) + hash_data.append(cdata) diff --git a/cli_support/cli_general_information.py b/cli_support/cli_general_information.py index 70f6e2c..83c99dd 100644 --- a/cli_support/cli_general_information.py +++ b/cli_support/cli_general_information.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# (c) 2023 Siemens AG +# (c) 2023-2024 Siemens AG # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -115,12 +115,14 @@ def _append_to_xml(self, parent: ET.Element) -> None: node.text = self.component_release_date hash_data = ET.SubElement(gi, "LinkComponentManagement") - cdata = self.CDATA(self.link_component_management) - hash_data.append(cdata) + if self.link_component_management: + cdata = self.CDATA(self.link_component_management) + hash_data.append(cdata) hash_data = ET.SubElement(gi, "LinkScanTool") - cdata = self.CDATA(self.link_scan_tool) - hash_data.append(cdata) + if self.link_scan_tool: + cdata = self.CDATA(self.link_scan_tool) + hash_data.append(cdata) ci = ET.SubElement(gi, "ComponentId") diff --git a/cli_support/cli_license.py b/cli_support/cli_license.py index efa1176..4fcd79e 100644 --- a/cli_support/cli_license.py +++ b/cli_support/cli_license.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# (c) 2019-2023 Siemens AG +# (c) 2019-2024 Siemens AG # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -77,9 +77,10 @@ def _append_to_xml(self, parent: ET.Element) -> None: CliFileItemBase._append_to_xml(self, lic) - ack = ET.SubElement(lic, "Acknowledgements") - cdata = self.CDATA("\n".join(str(x) for x in self.acknowledgements)) - ack.append(cdata) + if len(self.acknowledgements) > 0: + ack = ET.SubElement(lic, "Acknowledgements") + cdata = self.CDATA("\n".join(str(x) for x in self.acknowledgements)) + ack.append(cdata) tags = ET.SubElement(lic, "Tags") tags.text = ",".join(str(x) for x in self.tags) diff --git a/tests/test_cli_clifile.py b/tests/test_cli_clifile.py index 808791b..baf02ec 100644 --- a/tests/test_cli_clifile.py +++ b/tests/test_cli_clifile.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------- -# (c) 2022-2023 Siemens AG +# (c) 2022-2024 Siemens AG # All Rights Reserved. # Author: thomas.graf@siemens.com # @@ -179,35 +179,25 @@ def test_write_file_minimal(self) -> None: - - - - + + - - + None None None None - - + - - - - - - + - - + ''' self.delete_file(self.TESTFILE4)