From 9ba4b8e5d255c8dba51df214786328bfa700291c Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Tue, 20 Aug 2024 09:37:23 +0200 Subject: [PATCH 01/20] feat!: 8.0.0 Signed-off-by: Jan Kowalleck From 1f5fd7a6be94d93d2260622d39ea01cd74614402 Mon Sep 17 00:00:00 2001 From: Joshua Kugler Date: Fri, 6 Sep 2024 10:27:52 -0800 Subject: [PATCH 02/20] feat!: Add component and services for tools (#635) CycloneDX spec 1.5 deprecated an array of tools in bom.metadata and instead prefers object with an array of components and an array of services. This PR implements that. This works de-serializing a Syft SBOM with a tool section like so: ``` "metadata": { "timestamp": "2024-06-10T13:06:52-08:00", "tools": { "components": [ { "type": "application", "author": "anchore", "name": "syft", "version": "1.4.1" } ] }, "component": { "bom-ref": "08329a07b4eb8eac", "type": "file", "name": "./" } }, ``` Next up: docs, XML (de)serialization code, and tests. fixes #561 --------- Signed-off-by: Joshua Kugler Signed-off-by: Jan Kowalleck Co-authored-by: Jan Kowalleck --- cyclonedx/model/__init__.py | 139 +------ cyclonedx/model/bom.py | 23 +- cyclonedx/model/tool.py | 365 ++++++++++++++++++ cyclonedx/model/vulnerability.py | 23 +- tests/_data/models.py | 136 ++++++- tests/_data/own/xml/1.5/invalid-tool.xml | 8 + .../snapshots/get_bom_with_tools-1.0.xml.bin | 4 + .../snapshots/get_bom_with_tools-1.1.xml.bin | 4 + .../snapshots/get_bom_with_tools-1.2.json.bin | 31 ++ .../snapshots/get_bom_with_tools-1.2.xml.bin | 24 ++ .../snapshots/get_bom_with_tools-1.3.json.bin | 31 ++ .../snapshots/get_bom_with_tools-1.3.xml.bin | 24 ++ .../snapshots/get_bom_with_tools-1.4.json.bin | 78 ++++ .../snapshots/get_bom_with_tools-1.4.xml.bin | 59 +++ ...on.bin => get_bom_with_tools-1.5.json.bin} | 98 ++--- .../snapshots/get_bom_with_tools-1.5.xml.bin | 63 +++ ...on.bin => get_bom_with_tools-1.6.json.bin} | 94 ++--- .../snapshots/get_bom_with_tools-1.6.xml.bin | 63 +++ ...and_tools_irreversible_migrate-1.0.xml.bin | 4 + ...and_tools_irreversible_migrate-1.1.xml.bin | 4 + ...nd_tools_irreversible_migrate-1.2.json.bin | 51 +++ ...and_tools_irreversible_migrate-1.2.xml.bin | 41 ++ ...nd_tools_irreversible_migrate-1.3.json.bin | 51 +++ ...and_tools_irreversible_migrate-1.3.xml.bin | 41 ++ ...nd_tools_irreversible_migrate-1.4.json.bin | 124 ++++++ ...and_tools_irreversible_migrate-1.4.xml.bin | 94 +++++ ...nd_tools_irreversible_migrate-1.5.json.bin | 134 +++++++ ...and_tools_irreversible_migrate-1.5.xml.bin | 98 +++++ ...nd_tools_irreversible_migrate-1.6.json.bin | 134 +++++++ ...and_tools_irreversible_migrate-1.6.xml.bin | 98 +++++ ..._component_and_service_migrate-1.0.xml.bin | 4 + ..._component_and_service_migrate-1.1.xml.bin | 4 + ...component_and_service_migrate-1.2.json.bin | 32 ++ ..._component_and_service_migrate-1.2.xml.bin | 25 ++ ...component_and_service_migrate-1.3.json.bin | 32 ++ ..._component_and_service_migrate-1.3.xml.bin | 25 ++ ...component_and_service_migrate-1.4.json.bin | 58 +++ ..._component_and_service_migrate-1.4.xml.bin | 43 +++ ...component_and_service_migrate-1.5.json.bin | 78 ++++ ..._component_and_service_migrate-1.5.xml.bin | 51 +++ ...component_and_service_migrate-1.6.json.bin | 78 ++++ ..._component_and_service_migrate-1.6.xml.bin | 51 +++ ...h_tools_with_component_migrate-1.0.xml.bin | 4 + ...h_tools_with_component_migrate-1.1.xml.bin | 4 + ..._tools_with_component_migrate-1.2.json.bin | 25 ++ ...h_tools_with_component_migrate-1.2.xml.bin | 18 + ..._tools_with_component_migrate-1.3.json.bin | 25 ++ ...h_tools_with_component_migrate-1.3.xml.bin | 18 + ..._tools_with_component_migrate-1.4.json.bin | 38 ++ ...h_tools_with_component_migrate-1.4.xml.bin | 27 ++ ..._tools_with_component_migrate-1.5.json.bin | 54 +++ ...h_tools_with_component_migrate-1.5.xml.bin | 33 ++ ..._tools_with_component_migrate-1.6.json.bin | 54 +++ ...h_tools_with_component_migrate-1.6.xml.bin | 33 ++ ...ith_tools_with_service_migrate-1.0.xml.bin | 4 + ...ith_tools_with_service_migrate-1.1.xml.bin | 4 + ...th_tools_with_service_migrate-1.2.json.bin | 19 + ...ith_tools_with_service_migrate-1.2.xml.bin | 15 + ...th_tools_with_service_migrate-1.3.json.bin | 19 + ...ith_tools_with_service_migrate-1.3.xml.bin | 15 + ...th_tools_with_service_migrate-1.4.json.bin | 32 ++ ...ith_tools_with_service_migrate-1.4.xml.bin | 24 ++ ...th_tools_with_service_migrate-1.5.json.bin | 46 +++ ...ith_tools_with_service_migrate-1.5.xml.bin | 30 ++ ...th_tools_with_service_migrate-1.6.json.bin | 46 +++ ...ith_tools_with_service_migrate-1.6.xml.bin | 30 ++ tests/test_deserialize_json.py | 9 +- tests/test_deserialize_xml.py | 21 +- tests/test_model.py | 20 - tests/test_model_bom.py | 10 +- tests/test_model_tool.py | 58 +++ tests/test_model_tool_repository.py | 81 ++++ tests/test_validation_json.py | 33 +- tests/test_validation_xml.py | 24 +- 74 files changed, 3167 insertions(+), 328 deletions(-) create mode 100644 cyclonedx/model/tool.py create mode 100644 tests/_data/own/xml/1.5/invalid-tool.xml create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.0.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.1.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.2.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.2.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.3.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.3.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.4.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.4.xml.bin rename tests/_data/snapshots/{get_bom_with_crypto-1.6.json.bin => get_bom_with_tools-1.5.json.bin} (50%) create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.5.xml.bin rename tests/_data/snapshots/{get_bom_v1_6_with_crypto-1.6.json.bin => get_bom_with_tools-1.6.json.bin} (53%) create mode 100644 tests/_data/snapshots/get_bom_with_tools-1.6.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.0.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.1.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.0.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.1.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.0.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.1.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.0.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.1.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.xml.bin create mode 100644 tests/test_model_tool.py create mode 100644 tests/test_model_tool_repository.py diff --git a/cyclonedx/model/__init__.py b/cyclonedx/model/__init__.py index 61ba9beb..c074a701 100644 --- a/cyclonedx/model/__init__.py +++ b/cyclonedx/model/__init__.py @@ -1127,139 +1127,6 @@ def __repr__(self) -> str: return f'' -@serializable.serializable_class -class Tool: - """ - This is our internal representation of the `toolType` complex type within the CycloneDX standard. - - Tool(s) are the things used in the creation of the CycloneDX document. - - Tool might be deprecated since CycloneDX 1.5, but it is not deprecated in this library. - In fact, this library will try to provide a compatibility layer if needed. - - .. note:: - See the CycloneDX Schema for toolType: https://cyclonedx.org/docs/1.3/#type_toolType - """ - - def __init__( - self, *, - vendor: Optional[str] = None, - name: Optional[str] = None, - version: Optional[str] = None, - hashes: Optional[Iterable[HashType]] = None, - external_references: Optional[Iterable[ExternalReference]] = None, - ) -> None: - self.vendor = vendor - self.name = name - self.version = version - self.hashes = hashes or [] # type:ignore[assignment] - self.external_references = external_references or [] # type:ignore[assignment] - - @property - @serializable.xml_sequence(1) - @serializable.xml_string(serializable.XmlStringSerializationType.NORMALIZED_STRING) - def vendor(self) -> Optional[str]: - """ - The name of the vendor who created the tool. - - Returns: - `str` if set else `None` - """ - return self._vendor - - @vendor.setter - def vendor(self, vendor: Optional[str]) -> None: - self._vendor = vendor - - @property - @serializable.xml_sequence(2) - @serializable.xml_string(serializable.XmlStringSerializationType.NORMALIZED_STRING) - def name(self) -> Optional[str]: - """ - The name of the tool. - - Returns: - `str` if set else `None` - """ - return self._name - - @name.setter - def name(self, name: Optional[str]) -> None: - self._name = name - - @property - @serializable.xml_sequence(3) - @serializable.xml_string(serializable.XmlStringSerializationType.NORMALIZED_STRING) - def version(self) -> Optional[str]: - """ - The version of the tool. - - Returns: - `str` if set else `None` - """ - return self._version - - @version.setter - def version(self, version: Optional[str]) -> None: - self._version = version - - @property - @serializable.type_mapping(_HashTypeRepositorySerializationHelper) - @serializable.xml_sequence(4) - def hashes(self) -> 'SortedSet[HashType]': - """ - The hashes of the tool (if applicable). - - Returns: - Set of `HashType` - """ - return self._hashes - - @hashes.setter - def hashes(self, hashes: Iterable[HashType]) -> None: - self._hashes = SortedSet(hashes) - - @property - @serializable.view(SchemaVersion1Dot4) - @serializable.view(SchemaVersion1Dot5) - @serializable.view(SchemaVersion1Dot6) - @serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'reference') - @serializable.xml_sequence(5) - def external_references(self) -> 'SortedSet[ExternalReference]': - """ - External References provides a way to document systems, sites, and information that may be relevant but which - are not included with the BOM. - - Returns: - Set of `ExternalReference` - """ - return self._external_references - - @external_references.setter - def external_references(self, external_references: Iterable[ExternalReference]) -> None: - self._external_references = SortedSet(external_references) - - def __eq__(self, other: object) -> bool: - if isinstance(other, Tool): - return hash(other) == hash(self) - return False - - def __lt__(self, other: Any) -> bool: - if isinstance(other, Tool): - return _ComparableTuple(( - self.vendor, self.name, self.version - )) < _ComparableTuple(( - other.vendor, other.name, other.version - )) - return NotImplemented - - def __hash__(self) -> int: - return hash((self.vendor, self.name, self.version, tuple(self.hashes), tuple(self.external_references))) - - def __repr__(self) -> str: - return f'' - - @serializable.serializable_class class IdentifiableAction: """ @@ -1397,6 +1264,9 @@ def __repr__(self) -> str: return f'' +# Importing here to avoid a circular import +from .tool import Tool # pylint: disable=wrong-import-position # noqa: E402 + ThisTool = Tool( vendor='CycloneDX', name='cyclonedx-python-lib', @@ -1434,4 +1304,5 @@ def __repr__(self) -> str: type=ExternalReferenceType.WEBSITE, url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') ) - ]) + ] +) diff --git a/cyclonedx/model/bom.py b/cyclonedx/model/bom.py index a36a5e10..a9c38888 100644 --- a/cyclonedx/model/bom.py +++ b/cyclonedx/model/bom.py @@ -37,13 +37,14 @@ SchemaVersion1Dot6, ) from ..serialization import LicenseRepositoryHelper, UrnUuidHelper -from . import ExternalReference, Property, ThisTool, Tool +from . import ExternalReference, Property, ThisTool from .bom_ref import BomRef from .component import Component from .contact import OrganizationalContact, OrganizationalEntity from .dependency import Dependable, Dependency from .license import License, LicenseExpression, LicenseRepository from .service import Service +from .tool import Tool, ToolsRepository, _ToolsRepositoryHelper from .vulnerability import Vulnerability if TYPE_CHECKING: # pragma: no cover @@ -61,7 +62,7 @@ class BomMetaData: def __init__( self, *, - tools: Optional[Iterable[Tool]] = None, + tools: Optional[Union[Iterable[Tool], ToolsRepository]] = None, authors: Optional[Iterable[OrganizationalContact]] = None, component: Optional[Component] = None, supplier: Optional[OrganizationalEntity] = None, @@ -89,7 +90,7 @@ def __init__( DeprecationWarning) if not tools: - self.tools.add(ThisTool) + self.tools.tools.add(ThisTool) @property @serializable.type_mapping(serializable.helpers.XsdDateTime) @@ -119,22 +120,22 @@ def timestamp(self, timestamp: datetime) -> None: # ... # TODO since CDX1.5 @property - @serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'tool') + @serializable.type_mapping(_ToolsRepositoryHelper) @serializable.xml_sequence(3) - def tools(self) -> 'SortedSet[Tool]': + def tools(self) -> ToolsRepository: """ Tools used to create this BOM. Returns: - `Set` of `Tool` objects. + `ToolsRepository` objects. """ - # TODO since CDX1.5 also supports `Component` and `Services`, not only `Tool` return self._tools @tools.setter - def tools(self, tools: Iterable[Tool]) -> None: - # TODO since CDX1.5 also supports `Component` and `Services`, not only `Tool` - self._tools = SortedSet(tools) + def tools(self, tools: Union[Iterable[Tool], ToolsRepository]) -> None: + self._tools = tools \ + if isinstance(tools, ToolsRepository) \ + else ToolsRepository(tools=tools) @property @serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'author') @@ -292,7 +293,7 @@ def __eq__(self, other: object) -> bool: def __hash__(self) -> int: return hash(( tuple(self.authors), self.component, tuple(self.licenses), self.manufacture, tuple(self.properties), - self.supplier, self.timestamp, tuple(self.tools), self.manufacturer, + self.supplier, self.timestamp, self.tools, self.manufacturer, )) def __repr__(self) -> str: diff --git a/cyclonedx/model/tool.py b/cyclonedx/model/tool.py new file mode 100644 index 00000000..e9749e8e --- /dev/null +++ b/cyclonedx/model/tool.py @@ -0,0 +1,365 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) OWASP Foundation. All Rights Reserved. + + +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Tuple, Type, Union +from warnings import warn +from xml.etree.ElementTree import Element # nosec B405 + +import serializable +from serializable.helpers import BaseHelper +from sortedcontainers import SortedSet + +from .._internal.compare import ComparableTuple as _ComparableTuple +from ..exception.serialization import CycloneDxDeserializationException +from ..schema import SchemaVersion +from ..schema.schema import SchemaVersion1Dot4, SchemaVersion1Dot5, SchemaVersion1Dot6 +from . import ExternalReference, HashType, _HashTypeRepositorySerializationHelper +from .component import Component +from .service import Service + +if TYPE_CHECKING: # pragma: no cover + from serializable import ObjectMetadataLibrary, ViewType + + +@serializable.serializable_class +class Tool: + """ + This is our internal representation of the `toolType` complex type within the CycloneDX standard. + + Tool(s) are the things used in the creation of the CycloneDX document. + + Tool might be deprecated since CycloneDX 1.5, but it is not deprecated in this library. + In fact, this library will try to provide a compatibility layer if needed. + + .. note:: + See the CycloneDX Schema for toolType: https://cyclonedx.org/docs/1.3/#type_toolType + """ + + def __init__( + self, *, + vendor: Optional[str] = None, + name: Optional[str] = None, + version: Optional[str] = None, + hashes: Optional[Iterable[HashType]] = None, + external_references: Optional[Iterable[ExternalReference]] = None, + ) -> None: + self.vendor = vendor + self.name = name + self.version = version + self.hashes = hashes or () # type:ignore[assignment] + self.external_references = external_references or () # type:ignore[assignment] + + @property + @serializable.xml_sequence(1) + @serializable.xml_string(serializable.XmlStringSerializationType.NORMALIZED_STRING) + def vendor(self) -> Optional[str]: + """ + The name of the vendor who created the tool. + + Returns: + `str` if set else `None` + """ + return self._vendor + + @vendor.setter + def vendor(self, vendor: Optional[str]) -> None: + self._vendor = vendor + + @property + @serializable.xml_sequence(2) + @serializable.xml_string(serializable.XmlStringSerializationType.NORMALIZED_STRING) + def name(self) -> Optional[str]: + """ + The name of the tool. + + Returns: + `str` if set else `None` + """ + return self._name + + @name.setter + def name(self, name: Optional[str]) -> None: + self._name = name + + @property + @serializable.xml_sequence(3) + @serializable.xml_string(serializable.XmlStringSerializationType.NORMALIZED_STRING) + def version(self) -> Optional[str]: + """ + The version of the tool. + + Returns: + `str` if set else `None` + """ + return self._version + + @version.setter + def version(self, version: Optional[str]) -> None: + self._version = version + + @property + @serializable.type_mapping(_HashTypeRepositorySerializationHelper) + @serializable.xml_sequence(4) + def hashes(self) -> 'SortedSet[HashType]': + """ + The hashes of the tool (if applicable). + + Returns: + Set of `HashType` + """ + return self._hashes + + @hashes.setter + def hashes(self, hashes: Iterable[HashType]) -> None: + self._hashes = SortedSet(hashes) + + @property + @serializable.view(SchemaVersion1Dot4) + @serializable.view(SchemaVersion1Dot5) + @serializable.view(SchemaVersion1Dot6) + @serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'reference') + @serializable.xml_sequence(5) + def external_references(self) -> 'SortedSet[ExternalReference]': + """ + External References provides a way to document systems, sites, and information that may be relevant but which + are not included with the BOM. + + Returns: + Set of `ExternalReference` + """ + return self._external_references + + @external_references.setter + def external_references(self, external_references: Iterable[ExternalReference]) -> None: + self._external_references = SortedSet(external_references) + + def __eq__(self, other: object) -> bool: + if isinstance(other, Tool): + return hash(other) == hash(self) + return False + + def __lt__(self, other: Any) -> bool: + if isinstance(other, Tool): + return _ComparableTuple(( + self.vendor, self.name, self.version + )) < _ComparableTuple(( + other.vendor, other.name, other.version + )) + return NotImplemented + + def __hash__(self) -> int: + return hash((self.vendor, self.name, self.version, tuple(self.hashes), tuple(self.external_references))) + + def __repr__(self) -> str: + return f'' + + @classmethod + def from_component(cls: Type['Tool'], component: 'Component') -> 'Tool': + return cls( + vendor=component.group, + name=component.name, + version=component.version, + hashes=component.hashes, + external_references=component.external_references, + ) + + @classmethod + def from_service(cls: Type['Tool'], service: 'Service') -> 'Tool': + return cls( + vendor=service.group, + name=service.name, + version=service.version, + external_references=service.external_references, + ) + + +class ToolsRepository: + """ + The repository of tool formats + """ + + def __init__( + self, *, + components: Optional[Iterable[Component]] = None, + services: Optional[Iterable[Service]] = None, + # Deprecated since v1.5 + tools: Optional[Iterable[Tool]] = None + ) -> None: + if tools: + warn('`@.tools` is deprecated from CycloneDX v1.5 onwards. ' + 'Please use `@.components` and `@.services` instead.', + DeprecationWarning) + self.components = components or () # type:ignore[assignment] + self.services = services or () # type:ignore[assignment] + self.tools = tools or () # type:ignore[assignment] + + @property + def components(self) -> 'SortedSet[Component]': + """ + Returns: + A SortedSet of Components + """ + return self._components + + @components.setter + def components(self, components: Iterable[Component]) -> None: + self._components = SortedSet(components) + + @property + def services(self) -> 'SortedSet[Service]': + """ + Returns: + A SortedSet of Services + """ + return self._services + + @services.setter + def services(self, services: Iterable[Service]) -> None: + self._services = SortedSet(services) + + @property + def tools(self) -> 'SortedSet[Tool]': + return self._tools + + @tools.setter + def tools(self, tools: Iterable[Tool]) -> None: + self._tools = SortedSet(tools) + + def __len__(self) -> int: + return len(self._tools) \ + + len(self._components) \ + + len(self._services) + + def __bool__(self) -> bool: + return len(self._tools) > 0 \ + or len(self._components) > 0 \ + or len(self._services) > 0 + + def __eq__(self, other: object) -> bool: + if not isinstance(other, ToolsRepository): + return False + + return self._tools == other._tools \ + and self._components == other._components \ + and self._services == other._services + + def __hash__(self) -> int: + return hash((tuple(self._tools), tuple(self._components), tuple(self._services))) + + +class _ToolsRepositoryHelper(BaseHelper): + + @staticmethod + def __all_as_tools(o: ToolsRepository) -> Tuple[Tool, ...]: + return ( + *o.tools, + *map(Tool.from_component, o.components), + *map(Tool.from_service, o.services), + ) + + @staticmethod + def __supports_components_and_services(view: Any) -> bool: + try: + return view is not None and view().schema_version_enum >= SchemaVersion.V1_5 + except Exception: # pragma: no cover + return False + + @classmethod + def json_normalize(cls, o: ToolsRepository, *, + view: Optional[Type['ViewType']], + **__: Any) -> Any: + if len(o.tools) > 0 or not cls.__supports_components_and_services(view): + return cls.__all_as_tools(o) or None + elem: Dict[str, Any] = {} + if o.components: + elem['components'] = tuple(o.components) + if o.services: + elem['services'] = tuple(o.services) + return elem or None + + @classmethod + def json_denormalize(cls, o: Union[List[Dict[str, Any]], Dict[str, Any]], + **__: Any) -> ToolsRepository: + tools = None + components = None + services = None + if isinstance(o, Dict): + components = map(lambda c: Component.from_json( # type:ignore[attr-defined] + c), o.get('components', ())) + services = map(lambda s: Service.from_json( # type:ignore[attr-defined] + s), o.get('services', ())) + elif isinstance(o, Iterable): + tools = map(lambda t: Tool.from_json(t), o) # type:ignore[attr-defined] + return ToolsRepository(components=components, services=services, tools=tools) + + @classmethod + def xml_normalize(cls, o: ToolsRepository, *, + element_name: str, + view: Optional[Type['ViewType']], + xmlns: Optional[str], + **__: Any) -> Optional[Element]: + elem = Element(element_name) + if len(o.tools) > 0 or not cls.__supports_components_and_services(view): + elem.extend( + ti.as_xml( # type:ignore[attr-defined] + view_=view, as_string=False, element_name='tool', xmlns=xmlns) + for ti in cls.__all_as_tools(o) + ) + else: + if o.components: + elem_c = Element(f'{{{xmlns}}}components' if xmlns else 'components') + elem_c.extend( + ci.as_xml( # type:ignore[attr-defined] + view_=view, as_string=False, element_name='component', xmlns=xmlns) + for ci in o.components) + elem.append(elem_c) + if o.services: + elem_s = Element(f'{{{xmlns}}}services' if xmlns else 'services') + elem_s.extend( + si.as_xml( # type:ignore[attr-defined] + view_=view, as_string=False, element_name='service', xmlns=xmlns) + for si in o.services) + elem.append(elem_s) + return elem \ + if len(elem) > 0 \ + else None + + @classmethod + def xml_denormalize(cls, o: Element, *, + default_ns: Optional[str], + prop_info: 'ObjectMetadataLibrary.SerializableProperty', + ctx: Type[Any], + **kwargs: Any) -> ToolsRepository: + tools = [] + components = None + services = None + for e in o: + tag = e.tag if default_ns is None else e.tag.replace(f'{{{default_ns}}}', '') + if tag == 'tool': + tools.append(Tool.from_xml( # type:ignore[attr-defined] + e, default_ns)) + elif tag == 'components': + components = map(lambda s: Component.from_xml( # type:ignore[attr-defined] + s, default_ns), e) + elif tag == 'services': + services = map(lambda s: Service.from_xml( # type:ignore[attr-defined] + s, default_ns), e) + else: + raise CycloneDxDeserializationException(f'unexpected: {e!r}') + return ToolsRepository( + tools=tools, + components=components, + services=services) diff --git a/cyclonedx/model/vulnerability.py b/cyclonedx/model/vulnerability.py index 8c9528f4..2bce491c 100644 --- a/cyclonedx/model/vulnerability.py +++ b/cyclonedx/model/vulnerability.py @@ -42,7 +42,7 @@ from ..exception.model import MutuallyExclusivePropertiesException, NoPropertiesProvidedException from ..schema.schema import SchemaVersion1Dot4, SchemaVersion1Dot5, SchemaVersion1Dot6 from ..serialization import BomRefHelper -from . import Property, Tool, XsUri +from . import Property, XsUri from .bom_ref import BomRef from .contact import OrganizationalContact, OrganizationalEntity from .impact_analysis import ( @@ -51,6 +51,7 @@ ImpactAnalysisResponse, ImpactAnalysisState, ) +from .tool import Tool, ToolsRepository, _ToolsRepositoryHelper @serializable.serializable_class @@ -953,13 +954,13 @@ def __init__( published: Optional[datetime] = None, updated: Optional[datetime] = None, credits: Optional[VulnerabilityCredits] = None, - tools: Optional[Iterable[Tool]] = None, + tools: Optional[Union[Iterable[Tool], ToolsRepository]] = None, analysis: Optional[VulnerabilityAnalysis] = None, affects: Optional[Iterable[BomTarget]] = None, properties: Optional[Iterable[Property]] = None, ) -> None: if isinstance(bom_ref, BomRef): - self._bom_ref = bom_ref + self._bom_ref: BomRef = bom_ref else: self._bom_ref = BomRef(value=str(bom_ref) if bom_ref else None) self.id = id @@ -1246,20 +1247,22 @@ def credits(self, credits: Optional[VulnerabilityCredits]) -> None: self._credits = credits @property - @serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'tool') + @serializable.type_mapping(_ToolsRepositoryHelper) @serializable.xml_sequence(17) - def tools(self) -> 'SortedSet[Tool]': + def tools(self) -> ToolsRepository: """ - The tool(s) used to identify, confirm, or score the vulnerability. + Tools used to create this BOM. Returns: - Set of `Tool` + `ToolsRepository` objects. """ return self._tools @tools.setter - def tools(self, tools: Iterable[Tool]) -> None: - self._tools = SortedSet(tools) + def tools(self, tools: Union[Iterable[Tool], ToolsRepository]) -> None: + self._tools = tools \ + if isinstance(tools, ToolsRepository) \ + else ToolsRepository(tools=tools) @property @serializable.xml_sequence(18) @@ -1327,7 +1330,7 @@ def __hash__(self) -> int: return hash(( self.id, self.source, tuple(self.references), tuple(self.ratings), tuple(self.cwes), self.description, self.detail, self.recommendation, self.workaround, tuple(self.advisories), self.created, self.published, - self.updated, self.credits, tuple(self.tools), self.analysis, tuple(self.affects), tuple(self.properties) + self.updated, self.credits, self.tools, self.analysis, tuple(self.affects), tuple(self.properties) )) def __repr__(self) -> str: diff --git a/tests/_data/models.py b/tests/_data/models.py index 150739a0..0939f1ee 100644 --- a/tests/_data/models.py +++ b/tests/_data/models.py @@ -38,7 +38,7 @@ Note, NoteText, Property, - Tool, + ThisTool, XsUri, ) from cyclonedx.model.bom import Bom, BomMetaData @@ -89,6 +89,7 @@ from cyclonedx.model.license import DisjunctiveLicense, License, LicenseAcknowledgement, LicenseExpression from cyclonedx.model.release_note import ReleaseNotes from cyclonedx.model.service import Service +from cyclonedx.model.tool import Tool, ToolsRepository from cyclonedx.model.vulnerability import ( BomTarget, BomTargetVersionRange, @@ -494,9 +495,9 @@ def get_bom_with_component_setuptools_with_vulnerability() -> Bom: ], individuals=[get_org_contact_2()] ), - tools=[ - Tool(vendor='CycloneDX', name='cyclonedx-python-lib') - ], + tools=ToolsRepository(tools=( + Tool(vendor='CycloneDX', name='cyclonedx-python-lib'), + )), analysis=VulnerabilityAnalysis( state=ImpactAnalysisState.EXPLOITABLE, justification=ImpactAnalysisJustification.REQUIRES_ENVIRONMENT, responses=[ImpactAnalysisResponse.CAN_NOT_FIX], detail='Some extra detail' @@ -1047,6 +1048,127 @@ def get_bom_with_multiple_licenses() -> Bom: ) +def get_bom_with_tools() -> Bom: + return _make_bom( + metadata=BomMetaData( + tools=( + ThisTool, + Tool(name='test-tool-b'), + Tool(vendor='example', + name='test-tool-a', + version='1.33.7', + hashes=[HashType.from_composite_str( + 'sha256:adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6')], + external_references=[get_external_reference_1()], + ), + ) + ) + ) + + +def get_bom_with_tools_with_component_migrate() -> Bom: + return _make_bom( + metadata=BomMetaData( + tools=ToolsRepository( + components=( + Component(name='test-component', bom_ref='test-component'), + Component(type=ComponentType.APPLICATION, + bom_ref='other-component', + group='acme', + name='other-component', + hashes=[HashType.from_composite_str( + 'sha256:49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca')], + external_references=[get_external_reference_1()], + ), + ) + ) + ) + ) + + +def get_bom_with_tools_with_service_migrate() -> Bom: + return _make_bom( + metadata=BomMetaData( + tools=ToolsRepository( + services=( + Service(name='test-service', bom_ref='test-service'), + Service(group='acme', + name='other-service', + bom_ref='other-service', + external_references=[get_external_reference_1()], + ), + ) + ) + ) + ) + + +def get_bom_with_tools_with_component_and_service_migrate() -> Bom: + return _make_bom( + metadata=BomMetaData( + tools=ToolsRepository( + components=( + Component(name='test-component', bom_ref='test-component'), + Component(type=ComponentType.APPLICATION, + bom_ref='other-component', + group='acme', + name='other-component', + hashes=[HashType.from_composite_str( + 'sha256:49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca')], + external_references=[get_external_reference_1()], + ), + ), + services=( + Service(name='test-service', bom_ref='test-service'), + Service(group='acme', + name='other-service', + bom_ref='other-service', + external_references=[get_external_reference_1()], + ), + ) + ) + ) + ) + + +def get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate() -> Bom: + tools = ToolsRepository() + tcomp = tools.components + tserv = tools.services + ttools = tools.tools + tcomp.update(( + Component(name='test-component', bom_ref='test-component'), + Component(type=ComponentType.APPLICATION, + bom_ref='other-component', + group='acme', + name='other-component', + hashes=[HashType.from_composite_str( + 'sha256:49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca')], + external_references=[get_external_reference_1()], + ), + )) + tserv.update(( + Service(name='test-service', bom_ref='test-service'), + Service(group='acme', + name='other-service', + bom_ref='other-service', + external_references=[get_external_reference_1()], + ), + )) + ttools.update(( + ThisTool, + Tool(name='test-tool-b'), + Tool(vendor='example', + name='test-tool-a', + version='1.33.7', + hashes=[HashType.from_composite_str( + 'sha256:adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6')], + external_references=[get_external_reference_1()], + ), + )) + return _make_bom(metadata=BomMetaData(tools=tools)) + + def get_bom_for_issue_497_urls() -> Bom: """regression test for issue #497 see https://github.com/CycloneDX/cyclonedx-python-lib/issues/497 @@ -1122,6 +1244,7 @@ def get_bom_for_issue_630_empty_property() -> Bom: ) }) + # --- @@ -1135,6 +1258,11 @@ def get_bom_for_issue_630_empty_property() -> Bom: if n.startswith('get_bom_') and not n.endswith('_invalid') and not n.endswith('_migrate') ) +all_get_bom_funct_valid_reversible_migrate = tuple( + (n, f) for n, f in getmembers(sys.modules[__name__], isfunction) + if n.startswith('get_bom_') and n.endswith('_migrate') and not n.endswith('_irreversible_migrate') +) + all_get_bom_funct_invalid = tuple( (n, f) for n, f in getmembers(sys.modules[__name__], isfunction) if n.startswith('get_bom_') and n.endswith('_invalid') diff --git a/tests/_data/own/xml/1.5/invalid-tool.xml b/tests/_data/own/xml/1.5/invalid-tool.xml new file mode 100644 index 00000000..f57259b9 --- /dev/null +++ b/tests/_data/own/xml/1.5/invalid-tool.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools-1.0.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.0.xml.bin new file mode 100644 index 00000000..acb06612 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.0.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools-1.1.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.1.xml.bin new file mode 100644 index 00000000..55ef5cda --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.1.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools-1.2.json.bin new file mode 100644 index 00000000..ca38e5f0 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.2.json.bin @@ -0,0 +1,31 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.2" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.2.xml.bin new file mode 100644 index 00000000..32920edd --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.2.xml.bin @@ -0,0 +1,24 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + test-tool-b + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools-1.3.json.bin new file mode 100644 index 00000000..1eb342c2 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.3.json.bin @@ -0,0 +1,31 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.3" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.3.xml.bin new file mode 100644 index 00000000..aee9da63 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.3.xml.bin @@ -0,0 +1,24 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + test-tool-b + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools-1.4.json.bin new file mode 100644 index 00000000..3a26a1c6 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.4.json.bin @@ -0,0 +1,78 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.4" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.4.xml.bin new file mode 100644 index 00000000..aae5b797 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.4.xml.bin @@ -0,0 +1,59 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-tool-b + + + + diff --git a/tests/_data/snapshots/get_bom_with_crypto-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools-1.5.json.bin similarity index 50% rename from tests/_data/snapshots/get_bom_with_crypto-1.6.json.bin rename to tests/_data/snapshots/get_bom_with_tools-1.5.json.bin index 46c4d952..173988c2 100644 --- a/tests/_data/snapshots/get_bom_with_crypto-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools-1.5.json.bin @@ -1,61 +1,4 @@ { - "components": [ - { - "bom-ref": "26b1ce0f-bec6-4bfe-9db1-03b75a4ed1ec", - "cryptoProperties": { - "assetType": "protocol", - "oid": "an-oid-here", - "protocolProperties": { - "cipherSuites": [ - { - "identifiers": [ - "TLS_AES_128_CCM_8_SHA256" - ], - "name": "TLS_AES_128_CCM_8_SHA256" - }, - { - "identifiers": [ - "TLS_AES_128_CCM_SHA256" - ], - "name": "TLS_AES_128_CCM_SHA256" - }, - { - "identifiers": [ - "TLS_AES_128_GCM_SHA256" - ], - "name": "TLS_AES_128_GCM_SHA256" - }, - { - "identifiers": [ - "TLS_AES_256_GCM_SHA384" - ], - "name": "TLS_AES_256_GCM_SHA384" - }, - { - "identifiers": [ - "TLS_CHACHA20_POLY1305_SHA256" - ], - "name": "TLS_CHACHA20_POLY1305_SHA256" - } - ], - "type": "tls", - "version": "1.3" - } - }, - "name": "TLS", - "tags": [ - "protocl", - "tls" - ], - "type": "cryptographic-asset", - "version": "v1.3" - } - ], - "dependencies": [ - { - "ref": "26b1ce0f-bec6-4bfe-9db1-03b75a4ed1ec" - } - ], "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ @@ -97,12 +40,49 @@ "name": "cyclonedx-python-lib", "vendor": "CycloneDX", "version": "TESTING" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" } ] }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, - "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", "bomFormat": "CycloneDX", - "specVersion": "1.6" + "specVersion": "1.5" } \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.5.xml.bin new file mode 100644 index 00000000..4800c7ba --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.5.xml.bin @@ -0,0 +1,63 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-tool-b + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools-1.6.json.bin similarity index 53% rename from tests/_data/snapshots/get_bom_v1_6_with_crypto-1.6.json.bin rename to tests/_data/snapshots/get_bom_with_tools-1.6.json.bin index 46c4d952..5eb714cb 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools-1.6.json.bin @@ -1,61 +1,4 @@ { - "components": [ - { - "bom-ref": "26b1ce0f-bec6-4bfe-9db1-03b75a4ed1ec", - "cryptoProperties": { - "assetType": "protocol", - "oid": "an-oid-here", - "protocolProperties": { - "cipherSuites": [ - { - "identifiers": [ - "TLS_AES_128_CCM_8_SHA256" - ], - "name": "TLS_AES_128_CCM_8_SHA256" - }, - { - "identifiers": [ - "TLS_AES_128_CCM_SHA256" - ], - "name": "TLS_AES_128_CCM_SHA256" - }, - { - "identifiers": [ - "TLS_AES_128_GCM_SHA256" - ], - "name": "TLS_AES_128_GCM_SHA256" - }, - { - "identifiers": [ - "TLS_AES_256_GCM_SHA384" - ], - "name": "TLS_AES_256_GCM_SHA384" - }, - { - "identifiers": [ - "TLS_CHACHA20_POLY1305_SHA256" - ], - "name": "TLS_CHACHA20_POLY1305_SHA256" - } - ], - "type": "tls", - "version": "1.3" - } - }, - "name": "TLS", - "tags": [ - "protocl", - "tls" - ], - "type": "cryptographic-asset", - "version": "v1.3" - } - ], - "dependencies": [ - { - "ref": "26b1ce0f-bec6-4bfe-9db1-03b75a4ed1ec" - } - ], "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ @@ -97,9 +40,46 @@ "name": "cyclonedx-python-lib", "vendor": "CycloneDX", "version": "TESTING" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" } ] }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", diff --git a/tests/_data/snapshots/get_bom_with_tools-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools-1.6.xml.bin new file mode 100644 index 00000000..fc5013d8 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools-1.6.xml.bin @@ -0,0 +1,63 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-tool-b + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.0.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.0.xml.bin new file mode 100644 index 00000000..acb06612 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.0.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.1.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.1.xml.bin new file mode 100644 index 00000000..55ef5cda --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.1.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin new file mode 100644 index 00000000..1fd2b7d6 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin @@ -0,0 +1,51 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + }, + { + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.2" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin new file mode 100644 index 00000000..d8b2a4c1 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin @@ -0,0 +1,41 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + test-tool-b + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + test-component + + + acme + other-service + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin new file mode 100644 index 00000000..01886ae2 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin @@ -0,0 +1,51 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + }, + { + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.3" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin new file mode 100644 index 00000000..b0d0956c --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin @@ -0,0 +1,41 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + test-tool-b + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + test-component + + + acme + other-service + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin new file mode 100644 index 00000000..5dd3c4d1 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin @@ -0,0 +1,124 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.4" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin new file mode 100644 index 00000000..4144e524 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin @@ -0,0 +1,94 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-tool-b + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin new file mode 100644 index 00000000..4c467bf6 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin @@ -0,0 +1,134 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin new file mode 100644 index 00000000..d16609a5 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin @@ -0,0 +1,98 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-tool-b + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin new file mode 100644 index 00000000..1d4d653e --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin @@ -0,0 +1,134 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-tool-b" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.6" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin new file mode 100644 index 00000000..f9b4eb19 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin @@ -0,0 +1,98 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-tool-b + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.0.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.0.xml.bin new file mode 100644 index 00000000..acb06612 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.0.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.1.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.1.xml.bin new file mode 100644 index 00000000..55ef5cda --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.1.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin new file mode 100644 index 00000000..ce417066 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin @@ -0,0 +1,32 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.2" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin new file mode 100644 index 00000000..2fa064f6 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin @@ -0,0 +1,25 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + test-component + + + acme + other-service + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin new file mode 100644 index 00000000..6990fc8a --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin @@ -0,0 +1,32 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.3" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin new file mode 100644 index 00000000..4e71b908 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin @@ -0,0 +1,25 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + test-component + + + acme + other-service + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin new file mode 100644 index 00000000..3851eb48 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin @@ -0,0 +1,58 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.4" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin new file mode 100644 index 00000000..426cdf54 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin @@ -0,0 +1,43 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin new file mode 100644 index 00000000..9b205056 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin @@ -0,0 +1,78 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": { + "components": [ + { + "bom-ref": "other-component", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "type": "application" + }, + { + "bom-ref": "test-component", + "name": "test-component", + "type": "library" + } + ], + "services": [ + { + "bom-ref": "other-service", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "name": "other-service" + }, + { + "bom-ref": "test-service", + "name": "test-service" + } + ] + } + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin new file mode 100644 index 00000000..66d11d3b --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin @@ -0,0 +1,51 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin new file mode 100644 index 00000000..7ddfb8fa --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin @@ -0,0 +1,78 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": { + "components": [ + { + "bom-ref": "other-component", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "type": "application" + }, + { + "bom-ref": "test-component", + "name": "test-component", + "type": "library" + } + ], + "services": [ + { + "bom-ref": "other-service", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "name": "other-service" + }, + { + "bom-ref": "test-service", + "name": "test-service" + } + ] + } + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.6" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin new file mode 100644 index 00000000..89519324 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin @@ -0,0 +1,51 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.0.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.0.xml.bin new file mode 100644 index 00000000..acb06612 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.0.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.1.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.1.xml.bin new file mode 100644 index 00000000..55ef5cda --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.1.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin new file mode 100644 index 00000000..254aa82a --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin @@ -0,0 +1,25 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.2" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin new file mode 100644 index 00000000..e8e74ab2 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin @@ -0,0 +1,18 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + test-component + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin new file mode 100644 index 00000000..7477a298 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin @@ -0,0 +1,25 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.3" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin new file mode 100644 index 00000000..fadc64c7 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin @@ -0,0 +1,18 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + test-component + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin new file mode 100644 index 00000000..84229368 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin @@ -0,0 +1,38 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, + { + "name": "test-component" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.4" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin new file mode 100644 index 00000000..15c7faa4 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin @@ -0,0 +1,27 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin new file mode 100644 index 00000000..3eb88d3e --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin @@ -0,0 +1,54 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": { + "components": [ + { + "bom-ref": "other-component", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "type": "application" + }, + { + "bom-ref": "test-component", + "name": "test-component", + "type": "library" + } + ] + } + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin new file mode 100644 index 00000000..5a6ba111 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin @@ -0,0 +1,33 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin new file mode 100644 index 00000000..1348f4f3 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin @@ -0,0 +1,54 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": { + "components": [ + { + "bom-ref": "other-component", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "type": "application" + }, + { + "bom-ref": "test-component", + "name": "test-component", + "type": "library" + } + ] + } + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.6" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin new file mode 100644 index 00000000..0963cb16 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin @@ -0,0 +1,33 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-component + + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.0.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.0.xml.bin new file mode 100644 index 00000000..acb06612 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.0.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.1.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.1.xml.bin new file mode 100644 index 00000000..55ef5cda --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.1.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.json.bin new file mode 100644 index 00000000..02094998 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.json.bin @@ -0,0 +1,19 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.2" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.xml.bin new file mode 100644 index 00000000..266aa5b6 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.2.xml.bin @@ -0,0 +1,15 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-service + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.json.bin new file mode 100644 index 00000000..62a2e4c3 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.json.bin @@ -0,0 +1,19 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.3" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.xml.bin new file mode 100644 index 00000000..97729c4e --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.3.xml.bin @@ -0,0 +1,15 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-service + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.json.bin new file mode 100644 index 00000000..bcf21a66 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.json.bin @@ -0,0 +1,32 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.4" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.xml.bin new file mode 100644 index 00000000..af666d2c --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.4.xml.bin @@ -0,0 +1,24 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.json.bin new file mode 100644 index 00000000..c5e9c6e8 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.json.bin @@ -0,0 +1,46 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": { + "services": [ + { + "bom-ref": "other-service", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "name": "other-service" + }, + { + "bom-ref": "test-service", + "name": "test-service" + } + ] + } + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.xml.bin new file mode 100644 index 00000000..3a8ba335 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.5.xml.bin @@ -0,0 +1,30 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.json.bin new file mode 100644 index 00000000..a9293a54 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.json.bin @@ -0,0 +1,46 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": { + "services": [ + { + "bom-ref": "other-service", + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "group": "acme", + "name": "other-service" + }, + { + "bom-ref": "test-service", + "name": "test-service" + } + ] + } + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.6" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.xml.bin new file mode 100644 index 00000000..e33e4dc1 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_service_migrate-1.6.xml.bin @@ -0,0 +1,30 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + + acme + other-service + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + + + test-service + + + + + + val1 + val2 + + diff --git a/tests/test_deserialize_json.py b/tests/test_deserialize_json.py index 9c5ad40e..03306571 100644 --- a/tests/test_deserialize_json.py +++ b/tests/test_deserialize_json.py @@ -28,13 +28,18 @@ from cyclonedx.model.license import DisjunctiveLicense, LicenseExpression, LicenseRepository from cyclonedx.schema import OutputFormat, SchemaVersion from tests import OWN_DATA_DIRECTORY, DeepCompareMixin, SnapshotMixin, mksname -from tests._data.models import all_get_bom_funct_valid_immut, all_get_bom_funct_with_incomplete_deps +from tests._data.models import ( + all_get_bom_funct_valid_immut, + all_get_bom_funct_valid_reversible_migrate, + all_get_bom_funct_with_incomplete_deps, +) @ddt class TestDeserializeJson(TestCase, SnapshotMixin, DeepCompareMixin): - @named_data(*all_get_bom_funct_valid_immut) + @named_data(*all_get_bom_funct_valid_immut, + *all_get_bom_funct_valid_reversible_migrate) @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: # only latest schema will have all data populated in serialized form diff --git a/tests/test_deserialize_xml.py b/tests/test_deserialize_xml.py index f2a3ad9c..3b02fe77 100644 --- a/tests/test_deserialize_xml.py +++ b/tests/test_deserialize_xml.py @@ -14,24 +14,29 @@ # # SPDX-License-Identifier: Apache-2.0 # Copyright (c) OWASP Foundation. All Rights Reserved. - - +from os.path import join from typing import Any, Callable from unittest import TestCase from unittest.mock import patch from ddt import ddt, named_data +from cyclonedx.exception.serialization import CycloneDxDeserializationException from cyclonedx.model.bom import Bom from cyclonedx.schema import OutputFormat, SchemaVersion -from tests import DeepCompareMixin, SnapshotMixin, mksname -from tests._data.models import all_get_bom_funct_valid_immut, all_get_bom_funct_with_incomplete_deps +from tests import OWN_DATA_DIRECTORY, DeepCompareMixin, SnapshotMixin, mksname +from tests._data.models import ( + all_get_bom_funct_valid_immut, + all_get_bom_funct_valid_reversible_migrate, + all_get_bom_funct_with_incomplete_deps, +) @ddt class TestDeserializeXml(TestCase, SnapshotMixin, DeepCompareMixin): - @named_data(*all_get_bom_funct_valid_immut) + @named_data(*all_get_bom_funct_valid_immut, + *all_get_bom_funct_valid_reversible_migrate) @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: # only latest schema will have all data populated in serialized form @@ -41,3 +46,9 @@ def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: bom = Bom.from_xml(s) self.assertBomDeepEqual(expected, bom, fuzzy_deps=get_bom in all_get_bom_funct_with_incomplete_deps) + + def test_unexpected_toolsrepository_item(self) -> None: + with open(join(OWN_DATA_DIRECTORY, 'xml', '1.5', 'invalid-tool.xml')) as input_xml: + with self.assertRaisesRegex(CycloneDxDeserializationException, + r"^unexpected: $"): + Bom.from_xml(input_xml) diff --git a/tests/test_model.py b/tests/test_model.py index 76959f33..5c6bb9ac 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -40,7 +40,6 @@ Note, NoteText, Property, - Tool, XsUri, ) from cyclonedx.model.contact import OrganizationalContact @@ -563,22 +562,3 @@ def test_sort(self) -> None: sorted_props = sorted(props) expected_props = reorder(props, expected_order) self.assertListEqual(sorted_props, expected_props) - - -class TestModelTool(TestCase): - - def test_sort(self) -> None: - # expected sort order: (vendor, name, version) - expected_order = [0, 1, 2, 3, 4, 5, 6] - tools = [ - Tool(vendor='a', name='a', version='1.0.0'), - Tool(vendor='a', name='a', version='2.0.0'), - Tool(vendor='a', name='b', version='1.0.0'), - Tool(vendor='a', name='b'), - Tool(vendor='b', name='a'), - Tool(vendor='b', name='b', version='1.0.0'), - Tool(name='b'), - ] - sorted_tools = sorted(tools) - expected_tools = reorder(tools, expected_order) - self.assertListEqual(sorted_tools, expected_tools) diff --git a/tests/test_model_bom.py b/tests/test_model_bom.py index 925846c7..7c993036 100644 --- a/tests/test_model_bom.py +++ b/tests/test_model_bom.py @@ -55,7 +55,7 @@ def test_empty_bom_metadata(self) -> None: self.assertIsNotNone(metadata.licenses) self.assertIsNotNone(metadata.properties) self.assertIsNotNone(metadata.tools) - self.assertTrue(ThisTool in metadata.tools) + self.assertTrue(ThisTool in metadata.tools.tools) def test_basic_bom_metadata(self) -> None: tools = [ @@ -94,9 +94,9 @@ def test_basic_bom_metadata(self) -> None: self.assertTrue(properties[0] in metadata.properties) self.assertTrue(properties[1] in metadata.properties) self.assertIsNotNone(metadata.tools) - self.assertTrue(ThisTool not in metadata.tools) - self.assertTrue(tools[0] in metadata.tools) - self.assertTrue(tools[1] in metadata.tools) + self.assertTrue(ThisTool not in metadata.tools.tools) + self.assertTrue(tools[0] in metadata.tools.tools) + self.assertTrue(tools[1] in metadata.tools.tools) @ddt @@ -110,7 +110,7 @@ def test_bom_metadata_tool_this_tool(self) -> None: def test_bom_metadata_tool_multiple_tools(self) -> None: bom = Bom() self.assertEqual(len(bom.metadata.tools), 1) - bom.metadata.tools.add( + bom.metadata.tools.tools.add( Tool(vendor='TestVendor', name='TestTool', version='0.0.0') ) self.assertEqual(bom.version, 1) diff --git a/tests/test_model_tool.py b/tests/test_model_tool.py new file mode 100644 index 00000000..b0b87c0b --- /dev/null +++ b/tests/test_model_tool.py @@ -0,0 +1,58 @@ +# This file is part of CycloneDX Python Lib +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) OWASP Foundation. All Rights Reserved. + + +from unittest import TestCase + +from cyclonedx.model.tool import Tool +from tests import reorder + + +class TestModelTool(TestCase): + + def test_sort(self) -> None: + # expected sort order: (vendor, name, version) + expected_order = [0, 1, 2, 3, 4, 5, 6] + tools = [ + Tool(vendor='a', name='a', version='1.0.0'), + Tool(vendor='a', name='a', version='2.0.0'), + Tool(vendor='a', name='b', version='1.0.0'), + Tool(vendor='a', name='b'), + Tool(vendor='b', name='a'), + Tool(vendor='b', name='b', version='1.0.0'), + Tool(name='b'), + ] + sorted_tools = sorted(tools) + expected_tools = reorder(tools, expected_order) + self.assertListEqual(sorted_tools, expected_tools) + + def test_non_equal_tool_and_invalid(self) -> None: + t = Tool(vendor='VendorA') + self.assertFalse(t == 'INVALID') + + def test_invalid_tool_compare(self) -> None: + t = Tool(vendor='VendorA') + with self.assertRaises(TypeError): + r = t < 'INVALID' # pylint: disable=unused-variable # noqa: disable=E841 + + def test_tool_repr(self) -> None: + t = Tool(name='test-tool', version='1.2.3', vendor='test-vendor') + self.assertEqual(repr(t), '') + + def test_tool_equals(self) -> None: + t = Tool() + self.assertEqual(t, t) diff --git a/tests/test_model_tool_repository.py b/tests/test_model_tool_repository.py new file mode 100644 index 00000000..4588fbe4 --- /dev/null +++ b/tests/test_model_tool_repository.py @@ -0,0 +1,81 @@ +# This file is part of CycloneDX Python Lib +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) OWASP Foundation. All Rights Reserved. + + +from unittest import TestCase + +from cyclonedx.model.component import Component +from cyclonedx.model.service import Service +from cyclonedx.model.tool import Tool, ToolsRepository + + +class TestModelToolRepository(TestCase): + + def test_init(self) -> ToolsRepository: + c = Component(name='test-component') + s = Service(name='test-service') + t = Tool(name='test-tool') + tr = ToolsRepository( + components=(c,), + services=(s,), + tools=(t,) + ) + self.assertIs(c, tuple(tr.components)[0]) + self.assertIs(s, tuple(tr.services)[0]) + self.assertIs(t, tuple(tr.tools)[0]) + return tr + + def test_filled(self) -> None: + tr = self.test_init() + self.assertEqual(3, len(tr)) + self.assertTrue(tr) + + def test_empty(self) -> None: + tr = ToolsRepository() + self.assertEqual(0, len(tr)) + self.assertFalse(tr) + + def test_unequal_different_type(self) -> None: + tr = ToolsRepository() + self.assertFalse(tr == 'other') + + def test_equal_self(self) -> None: + tr = ToolsRepository() + tr.tools.add(Tool(name='my-tool')) + self.assertTrue(tr == tr) + + def test_unequal(self) -> None: + tr1 = ToolsRepository() + tr1.components.add(Component(name='my-component')) + tr1.services.add(Service(name='my-service')) + tr1.tools.add(Tool(name='my-tool')) + tr2 = ToolsRepository() + self.assertFalse(tr1 == tr2) + + def test_equal(self) -> None: + c = Component(name='my-component') + s = Service(name='my-service') + t = Tool(name='my-tool') + tr1 = ToolsRepository() + tr1.components.add(c) + tr1.services.add(s) + tr1.tools.add(t) + tr2 = ToolsRepository() + tr2.components.add(c) + tr2.services.add(s) + tr2.tools.add(t) + self.assertTrue(tr1 == tr2) diff --git a/tests/test_validation_json.py b/tests/test_validation_json.py index 7a297189..08b53f18 100644 --- a/tests/test_validation_json.py +++ b/tests/test_validation_json.py @@ -31,17 +31,20 @@ UNSUPPORTED_SCHEMA_VERSIONS = {SchemaVersion.V1_0, SchemaVersion.V1_1, } -def _dp_sv_tf(prefix: str) -> Generator: +def _dp_sv_tf(valid: bool) -> Generator: + prefix = 'valid-' if valid else 'invalid-' return ( - DpTuple((sv, tf)) for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS - for tf in iglob(join(SCHEMA_TESTDATA_DIRECTORY, sv.to_version(), f'{prefix}-*.json')) + DpTuple((sv, tf)) + for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS + for tf in iglob(join(SCHEMA_TESTDATA_DIRECTORY, sv.to_version(), f'{prefix}*.json')) ) -def _dp_sv_own() -> Generator: +def _dp_sv_own(valid: bool) -> Generator: return ( - DpTuple((sv, tf)) for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS - for tf in iglob(join(OWN_DATA_DIRECTORY, 'json', sv.to_version(), '*.json')) + DpTuple((sv, tf)) + for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS + for tf in iglob(join(OWN_DATA_DIRECTORY, 'json', sv.to_version(), '*.json')) if ('invalid-' in tf) != valid ) @@ -60,8 +63,8 @@ def test_throws_with_unsupported_schema_version(self, schema_version: SchemaVers JsonValidator(schema_version) @idata(chain( - _dp_sv_tf('valid'), - _dp_sv_own() + _dp_sv_tf(True), + _dp_sv_own(True) )) @unpack def test_validate_no_none(self, schema_version: SchemaVersion, test_data_file: str) -> None: @@ -74,7 +77,10 @@ def test_validate_no_none(self, schema_version: SchemaVersion, test_data_file: s self.skipTest('MissingOptionalDependencyException') self.assertIsNone(validation_error) - @idata(_dp_sv_tf('invalid')) + @idata(chain( + _dp_sv_tf(False), + _dp_sv_own(False) + )) @unpack def test_validate_expected_error(self, schema_version: SchemaVersion, test_data_file: str) -> None: validator = JsonValidator(schema_version) @@ -97,8 +103,8 @@ def test_throws_with_unsupported_schema_version(self, schema_version: SchemaVers JsonStrictValidator(schema_version) @idata(chain( - _dp_sv_tf('valid'), - _dp_sv_own() + _dp_sv_tf(True), + _dp_sv_own(True) )) @unpack def test_validate_no_none(self, schema_version: SchemaVersion, test_data_file: str) -> None: @@ -111,7 +117,10 @@ def test_validate_no_none(self, schema_version: SchemaVersion, test_data_file: s self.skipTest('MissingOptionalDependencyException') self.assertIsNone(validation_error) - @idata(_dp_sv_tf('invalid')) + @idata(chain( + _dp_sv_tf(False), + _dp_sv_own(False) + )) @unpack def test_validate_expected_error(self, schema_version: SchemaVersion, test_data_file: str) -> None: validator = JsonStrictValidator(schema_version) diff --git a/tests/test_validation_xml.py b/tests/test_validation_xml.py index e5d91479..b4228b33 100644 --- a/tests/test_validation_xml.py +++ b/tests/test_validation_xml.py @@ -31,17 +31,20 @@ UNSUPPORTED_SCHEMA_VERSIONS = set() -def _dp_sv_tf(prefix: str) -> Generator: +def _dp_sv_tf(valid: bool) -> Generator: + prefix = 'valid-' if valid else 'invalid-' return ( - DpTuple((sv, tf)) for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS - for tf in iglob(join(SCHEMA_TESTDATA_DIRECTORY, sv.to_version(), f'{prefix}-*.xml')) + DpTuple((sv, tf)) + for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS + for tf in iglob(join(SCHEMA_TESTDATA_DIRECTORY, sv.to_version(), f'{prefix}*.xml')) ) -def _dp_sv_own() -> Generator: +def _dp_sv_own(valid: bool) -> Generator: return ( - DpTuple((sv, tf)) for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS - for tf in iglob(join(OWN_DATA_DIRECTORY, 'xml', sv.to_version(), '*.xml')) + DpTuple((sv, tf)) + for sv in SchemaVersion if sv not in UNSUPPORTED_SCHEMA_VERSIONS + for tf in iglob(join(OWN_DATA_DIRECTORY, 'xml', sv.to_version(), '*.xml')) if ('invalid-' in tf) != valid ) @@ -60,8 +63,8 @@ def test_throws_with_unsupported_schema_version(self, schema_version: SchemaVers XmlValidator(schema_version) @idata(chain( - _dp_sv_tf('valid'), - _dp_sv_own() + _dp_sv_tf(True), + _dp_sv_own(True) )) @unpack def test_validate_no_none(self, schema_version: SchemaVersion, test_data_file: str) -> None: @@ -74,7 +77,10 @@ def test_validate_no_none(self, schema_version: SchemaVersion, test_data_file: s self.skipTest('MissingOptionalDependencyException') self.assertIsNone(validation_error) - @idata(_dp_sv_tf('invalid')) + @idata(chain( + _dp_sv_tf(False), + _dp_sv_own(False) + )) @unpack def test_validate_expected_error(self, schema_version: SchemaVersion, test_data_file: str) -> None: validator = XmlValidator(schema_version) From e0a153fbd553dcf29343d72e361c1cc9122c63b4 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 16 Sep 2024 18:40:24 +0200 Subject: [PATCH 03/20] feat: don't add self to `metafata.tools` (#674) fixes #673 Signed-off-by: Jan Kowalleck --- cyclonedx/model/bom.py | 5 +-- .../enum_ComponentScope-1.2.json.bin | 9 +--- .../snapshots/enum_ComponentScope-1.2.xml.bin | 7 --- .../enum_ComponentScope-1.3.json.bin | 9 +--- .../snapshots/enum_ComponentScope-1.3.xml.bin | 7 --- .../enum_ComponentScope-1.4.json.bin | 43 +------------------ .../snapshots/enum_ComponentScope-1.4.xml.bin | 33 -------------- .../enum_ComponentScope-1.5.json.bin | 43 +------------------ .../snapshots/enum_ComponentScope-1.5.xml.bin | 33 -------------- .../enum_ComponentScope-1.6.json.bin | 43 +------------------ .../snapshots/enum_ComponentScope-1.6.xml.bin | 33 -------------- .../snapshots/enum_ComponentType-1.2.json.bin | 9 +--- .../snapshots/enum_ComponentType-1.2.xml.bin | 7 --- .../snapshots/enum_ComponentType-1.3.json.bin | 9 +--- .../snapshots/enum_ComponentType-1.3.xml.bin | 7 --- .../snapshots/enum_ComponentType-1.4.json.bin | 43 +------------------ .../snapshots/enum_ComponentType-1.4.xml.bin | 33 -------------- .../snapshots/enum_ComponentType-1.5.json.bin | 43 +------------------ .../snapshots/enum_ComponentType-1.5.xml.bin | 33 -------------- .../snapshots/enum_ComponentType-1.6.json.bin | 43 +------------------ .../snapshots/enum_ComponentType-1.6.xml.bin | 33 -------------- .../snapshots/enum_DataFlow-1.2.json.bin | 9 +--- .../_data/snapshots/enum_DataFlow-1.2.xml.bin | 7 --- .../snapshots/enum_DataFlow-1.3.json.bin | 9 +--- .../_data/snapshots/enum_DataFlow-1.3.xml.bin | 7 --- .../snapshots/enum_DataFlow-1.4.json.bin | 43 +------------------ .../_data/snapshots/enum_DataFlow-1.4.xml.bin | 33 -------------- .../snapshots/enum_DataFlow-1.5.json.bin | 43 +------------------ .../_data/snapshots/enum_DataFlow-1.5.xml.bin | 33 -------------- .../snapshots/enum_DataFlow-1.6.json.bin | 43 +------------------ .../_data/snapshots/enum_DataFlow-1.6.xml.bin | 33 -------------- .../snapshots/enum_Encoding-1.2.json.bin | 9 +--- .../_data/snapshots/enum_Encoding-1.2.xml.bin | 7 --- .../snapshots/enum_Encoding-1.3.json.bin | 9 +--- .../_data/snapshots/enum_Encoding-1.3.xml.bin | 7 --- .../snapshots/enum_Encoding-1.4.json.bin | 43 +------------------ .../_data/snapshots/enum_Encoding-1.4.xml.bin | 33 -------------- .../snapshots/enum_Encoding-1.5.json.bin | 43 +------------------ .../_data/snapshots/enum_Encoding-1.5.xml.bin | 33 -------------- .../snapshots/enum_Encoding-1.6.json.bin | 43 +------------------ .../_data/snapshots/enum_Encoding-1.6.xml.bin | 33 -------------- .../enum_ExternalReferenceType-1.2.json.bin | 9 +--- .../enum_ExternalReferenceType-1.2.xml.bin | 7 --- .../enum_ExternalReferenceType-1.3.json.bin | 9 +--- .../enum_ExternalReferenceType-1.3.xml.bin | 7 --- .../enum_ExternalReferenceType-1.4.json.bin | 43 +------------------ .../enum_ExternalReferenceType-1.4.xml.bin | 33 -------------- .../enum_ExternalReferenceType-1.5.json.bin | 43 +------------------ .../enum_ExternalReferenceType-1.5.xml.bin | 33 -------------- .../enum_ExternalReferenceType-1.6.json.bin | 43 +------------------ .../enum_ExternalReferenceType-1.6.xml.bin | 33 -------------- .../snapshots/enum_HashAlgorithm-1.2.json.bin | 9 +--- .../snapshots/enum_HashAlgorithm-1.2.xml.bin | 7 --- .../snapshots/enum_HashAlgorithm-1.3.json.bin | 9 +--- .../snapshots/enum_HashAlgorithm-1.3.xml.bin | 7 --- .../snapshots/enum_HashAlgorithm-1.4.json.bin | 43 +------------------ .../snapshots/enum_HashAlgorithm-1.4.xml.bin | 33 -------------- .../snapshots/enum_HashAlgorithm-1.5.json.bin | 43 +------------------ .../snapshots/enum_HashAlgorithm-1.5.xml.bin | 33 -------------- .../snapshots/enum_HashAlgorithm-1.6.json.bin | 43 +------------------ .../snapshots/enum_HashAlgorithm-1.6.xml.bin | 33 -------------- ..._ImpactAnalysisAffectedStatus-1.2.json.bin | 9 +--- ...m_ImpactAnalysisAffectedStatus-1.2.xml.bin | 7 --- ..._ImpactAnalysisAffectedStatus-1.3.json.bin | 9 +--- ...m_ImpactAnalysisAffectedStatus-1.3.xml.bin | 7 --- ..._ImpactAnalysisAffectedStatus-1.4.json.bin | 43 +------------------ ...m_ImpactAnalysisAffectedStatus-1.4.xml.bin | 33 -------------- ..._ImpactAnalysisAffectedStatus-1.5.json.bin | 43 +------------------ ...m_ImpactAnalysisAffectedStatus-1.5.xml.bin | 33 -------------- ..._ImpactAnalysisAffectedStatus-1.6.json.bin | 43 +------------------ ...m_ImpactAnalysisAffectedStatus-1.6.xml.bin | 33 -------------- ...m_ImpactAnalysisJustification-1.2.json.bin | 9 +--- ...um_ImpactAnalysisJustification-1.2.xml.bin | 7 --- ...m_ImpactAnalysisJustification-1.3.json.bin | 9 +--- ...um_ImpactAnalysisJustification-1.3.xml.bin | 7 --- ...m_ImpactAnalysisJustification-1.4.json.bin | 43 +------------------ ...um_ImpactAnalysisJustification-1.4.xml.bin | 33 -------------- ...m_ImpactAnalysisJustification-1.5.json.bin | 43 +------------------ ...um_ImpactAnalysisJustification-1.5.xml.bin | 33 -------------- ...m_ImpactAnalysisJustification-1.6.json.bin | 43 +------------------ ...um_ImpactAnalysisJustification-1.6.xml.bin | 33 -------------- .../enum_ImpactAnalysisResponse-1.2.json.bin | 9 +--- .../enum_ImpactAnalysisResponse-1.2.xml.bin | 7 --- .../enum_ImpactAnalysisResponse-1.3.json.bin | 9 +--- .../enum_ImpactAnalysisResponse-1.3.xml.bin | 7 --- .../enum_ImpactAnalysisResponse-1.4.json.bin | 43 +------------------ .../enum_ImpactAnalysisResponse-1.4.xml.bin | 33 -------------- .../enum_ImpactAnalysisResponse-1.5.json.bin | 43 +------------------ .../enum_ImpactAnalysisResponse-1.5.xml.bin | 33 -------------- .../enum_ImpactAnalysisResponse-1.6.json.bin | 43 +------------------ .../enum_ImpactAnalysisResponse-1.6.xml.bin | 33 -------------- .../enum_ImpactAnalysisState-1.2.json.bin | 9 +--- .../enum_ImpactAnalysisState-1.2.xml.bin | 7 --- .../enum_ImpactAnalysisState-1.3.json.bin | 9 +--- .../enum_ImpactAnalysisState-1.3.xml.bin | 7 --- .../enum_ImpactAnalysisState-1.4.json.bin | 43 +------------------ .../enum_ImpactAnalysisState-1.4.xml.bin | 33 -------------- .../enum_ImpactAnalysisState-1.5.json.bin | 43 +------------------ .../enum_ImpactAnalysisState-1.5.xml.bin | 33 -------------- .../enum_ImpactAnalysisState-1.6.json.bin | 43 +------------------ .../enum_ImpactAnalysisState-1.6.xml.bin | 33 -------------- .../enum_IssueClassification-1.2.json.bin | 9 +--- .../enum_IssueClassification-1.2.xml.bin | 7 --- .../enum_IssueClassification-1.3.json.bin | 9 +--- .../enum_IssueClassification-1.3.xml.bin | 7 --- .../enum_IssueClassification-1.4.json.bin | 43 +------------------ .../enum_IssueClassification-1.4.xml.bin | 33 -------------- .../enum_IssueClassification-1.5.json.bin | 43 +------------------ .../enum_IssueClassification-1.5.xml.bin | 33 -------------- .../enum_IssueClassification-1.6.json.bin | 43 +------------------ .../enum_IssueClassification-1.6.xml.bin | 33 -------------- .../enum_PatchClassification-1.2.json.bin | 9 +--- .../enum_PatchClassification-1.2.xml.bin | 7 --- .../enum_PatchClassification-1.3.json.bin | 9 +--- .../enum_PatchClassification-1.3.xml.bin | 7 --- .../enum_PatchClassification-1.4.json.bin | 43 +------------------ .../enum_PatchClassification-1.4.xml.bin | 33 -------------- .../enum_PatchClassification-1.5.json.bin | 43 +------------------ .../enum_PatchClassification-1.5.xml.bin | 33 -------------- .../enum_PatchClassification-1.6.json.bin | 43 +------------------ .../enum_PatchClassification-1.6.xml.bin | 33 -------------- ...enum_VulnerabilityScoreSource-1.2.json.bin | 9 +--- .../enum_VulnerabilityScoreSource-1.2.xml.bin | 7 --- ...enum_VulnerabilityScoreSource-1.3.json.bin | 9 +--- .../enum_VulnerabilityScoreSource-1.3.xml.bin | 7 --- ...enum_VulnerabilityScoreSource-1.4.json.bin | 43 +------------------ .../enum_VulnerabilityScoreSource-1.4.xml.bin | 33 -------------- ...enum_VulnerabilityScoreSource-1.5.json.bin | 43 +------------------ .../enum_VulnerabilityScoreSource-1.5.xml.bin | 33 -------------- ...enum_VulnerabilityScoreSource-1.6.json.bin | 43 +------------------ .../enum_VulnerabilityScoreSource-1.6.xml.bin | 33 -------------- .../enum_VulnerabilitySeverity-1.2.json.bin | 9 +--- .../enum_VulnerabilitySeverity-1.2.xml.bin | 7 --- .../enum_VulnerabilitySeverity-1.3.json.bin | 9 +--- .../enum_VulnerabilitySeverity-1.3.xml.bin | 7 --- .../enum_VulnerabilitySeverity-1.4.json.bin | 43 +------------------ .../enum_VulnerabilitySeverity-1.4.xml.bin | 33 -------------- .../enum_VulnerabilitySeverity-1.5.json.bin | 43 +------------------ .../enum_VulnerabilitySeverity-1.5.xml.bin | 33 -------------- .../enum_VulnerabilitySeverity-1.6.json.bin | 43 +------------------ .../enum_VulnerabilitySeverity-1.6.xml.bin | 33 -------------- ..._bom_for_issue_275_components-1.2.json.bin | 9 +--- ...t_bom_for_issue_275_components-1.2.xml.bin | 7 --- ..._bom_for_issue_275_components-1.3.json.bin | 9 +--- ...t_bom_for_issue_275_components-1.3.xml.bin | 7 --- ..._bom_for_issue_275_components-1.4.json.bin | 43 +------------------ ...t_bom_for_issue_275_components-1.4.xml.bin | 33 -------------- ..._bom_for_issue_275_components-1.5.json.bin | 43 +------------------ ...t_bom_for_issue_275_components-1.5.xml.bin | 33 -------------- ..._bom_for_issue_275_components-1.6.json.bin | 43 +------------------ ...t_bom_for_issue_275_components-1.6.xml.bin | 33 -------------- ..._bom_for_issue_328_components-1.2.json.bin | 9 +--- ...t_bom_for_issue_328_components-1.2.xml.bin | 7 --- ..._bom_for_issue_328_components-1.3.json.bin | 9 +--- ...t_bom_for_issue_328_components-1.3.xml.bin | 7 --- ..._bom_for_issue_328_components-1.4.json.bin | 43 +------------------ ...t_bom_for_issue_328_components-1.4.xml.bin | 33 -------------- ..._bom_for_issue_328_components-1.5.json.bin | 43 +------------------ ...t_bom_for_issue_328_components-1.5.xml.bin | 33 -------------- ..._bom_for_issue_328_components-1.6.json.bin | 43 +------------------ ...t_bom_for_issue_328_components-1.6.xml.bin | 33 -------------- .../get_bom_for_issue_497_urls-1.2.json.bin | 9 +--- .../get_bom_for_issue_497_urls-1.2.xml.bin | 7 --- .../get_bom_for_issue_497_urls-1.3.json.bin | 9 +--- .../get_bom_for_issue_497_urls-1.3.xml.bin | 7 --- .../get_bom_for_issue_497_urls-1.4.json.bin | 43 +------------------ .../get_bom_for_issue_497_urls-1.4.xml.bin | 33 -------------- .../get_bom_for_issue_497_urls-1.5.json.bin | 43 +------------------ .../get_bom_for_issue_497_urls-1.5.xml.bin | 33 -------------- .../get_bom_for_issue_497_urls-1.6.json.bin | 43 +------------------ .../get_bom_for_issue_497_urls-1.6.xml.bin | 33 -------------- ...mponents_with_purl_qualifiers-1.2.json.bin | 9 +--- ...omponents_with_purl_qualifiers-1.2.xml.bin | 7 --- ...mponents_with_purl_qualifiers-1.3.json.bin | 9 +--- ...omponents_with_purl_qualifiers-1.3.xml.bin | 7 --- ...mponents_with_purl_qualifiers-1.4.json.bin | 43 +------------------ ...omponents_with_purl_qualifiers-1.4.xml.bin | 33 -------------- ...mponents_with_purl_qualifiers-1.5.json.bin | 43 +------------------ ...omponents_with_purl_qualifiers-1.5.xml.bin | 33 -------------- ...mponents_with_purl_qualifiers-1.6.json.bin | 43 +------------------ ...omponents_with_purl_qualifiers-1.6.xml.bin | 33 -------------- ..._for_issue_630_empty_property-1.2.json.bin | 9 +--- ...m_for_issue_630_empty_property-1.2.xml.bin | 7 --- ..._for_issue_630_empty_property-1.3.json.bin | 9 +--- ...m_for_issue_630_empty_property-1.3.xml.bin | 7 --- ..._for_issue_630_empty_property-1.4.json.bin | 43 +------------------ ...m_for_issue_630_empty_property-1.4.xml.bin | 33 -------------- ..._for_issue_630_empty_property-1.5.json.bin | 43 +------------------ ...m_for_issue_630_empty_property-1.5.xml.bin | 33 -------------- ..._for_issue_630_empty_property-1.6.json.bin | 43 +------------------ ...m_for_issue_630_empty_property-1.6.xml.bin | 33 -------------- ...et_bom_just_complete_metadata-1.2.json.bin | 9 +--- ...get_bom_just_complete_metadata-1.2.xml.bin | 7 --- ...et_bom_just_complete_metadata-1.3.json.bin | 9 +--- ...get_bom_just_complete_metadata-1.3.xml.bin | 7 --- ...et_bom_just_complete_metadata-1.4.json.bin | 43 +------------------ ...get_bom_just_complete_metadata-1.4.xml.bin | 33 -------------- ...et_bom_just_complete_metadata-1.5.json.bin | 43 +------------------ ...get_bom_just_complete_metadata-1.5.xml.bin | 33 -------------- ...et_bom_just_complete_metadata-1.6.json.bin | 43 +------------------ ...get_bom_just_complete_metadata-1.6.xml.bin | 33 -------------- ...om_v1_6_with_crypto_algorithm-1.6.json.bin | 43 +------------------ ...bom_v1_6_with_crypto_algorithm-1.6.xml.bin | 33 -------------- ..._v1_6_with_crypto_certificate-1.6.json.bin | 43 +------------------ ...m_v1_6_with_crypto_certificate-1.6.xml.bin | 33 -------------- ...bom_v1_6_with_crypto_protocol-1.6.json.bin | 43 +------------------ ..._bom_v1_6_with_crypto_protocol-1.6.xml.bin | 33 -------------- ..._with_crypto_related_material-1.6.json.bin | 43 +------------------ ...6_with_crypto_related_material-1.6.xml.bin | 33 -------------- ...th_component_setuptools_basic-1.2.json.bin | 9 +--- ...ith_component_setuptools_basic-1.2.xml.bin | 7 --- ...th_component_setuptools_basic-1.3.json.bin | 9 +--- ...ith_component_setuptools_basic-1.3.xml.bin | 7 --- ...th_component_setuptools_basic-1.4.json.bin | 43 +------------------ ...ith_component_setuptools_basic-1.4.xml.bin | 33 -------------- ...th_component_setuptools_basic-1.5.json.bin | 43 +------------------ ...ith_component_setuptools_basic-1.5.xml.bin | 33 -------------- ...th_component_setuptools_basic-1.6.json.bin | 43 +------------------ ...ith_component_setuptools_basic-1.6.xml.bin | 33 -------------- ...component_setuptools_complete-1.2.json.bin | 9 +--- ..._component_setuptools_complete-1.2.xml.bin | 7 --- ...component_setuptools_complete-1.3.json.bin | 9 +--- ..._component_setuptools_complete-1.3.xml.bin | 7 --- ...component_setuptools_complete-1.4.json.bin | 43 +------------------ ..._component_setuptools_complete-1.4.xml.bin | 33 -------------- ...component_setuptools_complete-1.5.json.bin | 43 +------------------ ..._component_setuptools_complete-1.5.xml.bin | 33 -------------- ...component_setuptools_complete-1.6.json.bin | 43 +------------------ ..._component_setuptools_complete-1.6.xml.bin | 33 -------------- ...tuptools_no_component_version-1.2.json.bin | 9 +--- ...etuptools_no_component_version-1.2.xml.bin | 7 --- ...tuptools_no_component_version-1.3.json.bin | 9 +--- ...etuptools_no_component_version-1.3.xml.bin | 7 --- ...tuptools_no_component_version-1.4.json.bin | 43 +------------------ ...etuptools_no_component_version-1.4.xml.bin | 33 -------------- ...tuptools_no_component_version-1.5.json.bin | 43 +------------------ ...etuptools_no_component_version-1.5.xml.bin | 33 -------------- ...tuptools_no_component_version-1.6.json.bin | 43 +------------------ ...etuptools_no_component_version-1.6.xml.bin | 33 -------------- ...component_setuptools_with_cpe-1.2.json.bin | 9 +--- ..._component_setuptools_with_cpe-1.2.xml.bin | 7 --- ...component_setuptools_with_cpe-1.3.json.bin | 9 +--- ..._component_setuptools_with_cpe-1.3.xml.bin | 7 --- ...component_setuptools_with_cpe-1.4.json.bin | 43 +------------------ ..._component_setuptools_with_cpe-1.4.xml.bin | 33 -------------- ...component_setuptools_with_cpe-1.5.json.bin | 43 +------------------ ..._component_setuptools_with_cpe-1.5.xml.bin | 33 -------------- ...component_setuptools_with_cpe-1.6.json.bin | 43 +------------------ ..._component_setuptools_with_cpe-1.6.xml.bin | 33 -------------- ...setuptools_with_release_notes-1.2.json.bin | 9 +--- ..._setuptools_with_release_notes-1.2.xml.bin | 7 --- ...setuptools_with_release_notes-1.3.json.bin | 9 +--- ..._setuptools_with_release_notes-1.3.xml.bin | 7 --- ...setuptools_with_release_notes-1.4.json.bin | 43 +------------------ ..._setuptools_with_release_notes-1.4.xml.bin | 33 -------------- ...setuptools_with_release_notes-1.5.json.bin | 43 +------------------ ..._setuptools_with_release_notes-1.5.xml.bin | 33 -------------- ...setuptools_with_release_notes-1.6.json.bin | 43 +------------------ ..._setuptools_with_release_notes-1.6.xml.bin | 33 -------------- ...nt_setuptools_with_v16_fields-1.2.json.bin | 9 +--- ...ent_setuptools_with_v16_fields-1.2.xml.bin | 7 --- ...nt_setuptools_with_v16_fields-1.3.json.bin | 9 +--- ...ent_setuptools_with_v16_fields-1.3.xml.bin | 7 --- ...nt_setuptools_with_v16_fields-1.4.json.bin | 43 +------------------ ...ent_setuptools_with_v16_fields-1.4.xml.bin | 33 -------------- ...nt_setuptools_with_v16_fields-1.5.json.bin | 43 +------------------ ...ent_setuptools_with_v16_fields-1.5.xml.bin | 33 -------------- ...nt_setuptools_with_v16_fields-1.6.json.bin | 43 +------------------ ...ent_setuptools_with_v16_fields-1.6.xml.bin | 33 -------------- ...setuptools_with_vulnerability-1.2.json.bin | 9 +--- ..._setuptools_with_vulnerability-1.2.xml.bin | 7 --- ...setuptools_with_vulnerability-1.3.json.bin | 9 +--- ..._setuptools_with_vulnerability-1.3.xml.bin | 7 --- ...setuptools_with_vulnerability-1.4.json.bin | 43 +------------------ ..._setuptools_with_vulnerability-1.4.xml.bin | 33 -------------- ...setuptools_with_vulnerability-1.5.json.bin | 43 +------------------ ..._setuptools_with_vulnerability-1.5.xml.bin | 33 -------------- ...setuptools_with_vulnerability-1.6.json.bin | 43 +------------------ ..._setuptools_with_vulnerability-1.6.xml.bin | 33 -------------- ...get_bom_with_component_toml_1-1.2.json.bin | 9 +--- .../get_bom_with_component_toml_1-1.2.xml.bin | 7 --- ...get_bom_with_component_toml_1-1.3.json.bin | 9 +--- .../get_bom_with_component_toml_1-1.3.xml.bin | 7 --- ...get_bom_with_component_toml_1-1.4.json.bin | 43 +------------------ .../get_bom_with_component_toml_1-1.4.xml.bin | 33 -------------- ...get_bom_with_component_toml_1-1.5.json.bin | 43 +------------------ .../get_bom_with_component_toml_1-1.5.xml.bin | 33 -------------- ...get_bom_with_component_toml_1-1.6.json.bin | 43 +------------------ .../get_bom_with_component_toml_1-1.6.xml.bin | 33 -------------- ...bom_with_dependencies_hanging-1.2.json.bin | 9 +--- ..._bom_with_dependencies_hanging-1.2.xml.bin | 7 --- ...bom_with_dependencies_hanging-1.3.json.bin | 9 +--- ..._bom_with_dependencies_hanging-1.3.xml.bin | 7 --- ...bom_with_dependencies_hanging-1.4.json.bin | 43 +------------------ ..._bom_with_dependencies_hanging-1.4.xml.bin | 33 -------------- ...bom_with_dependencies_hanging-1.5.json.bin | 43 +------------------ ..._bom_with_dependencies_hanging-1.5.xml.bin | 33 -------------- ...bom_with_dependencies_hanging-1.6.json.bin | 43 +------------------ ..._bom_with_dependencies_hanging-1.6.xml.bin | 33 -------------- ...t_bom_with_dependencies_valid-1.2.json.bin | 9 +--- ...et_bom_with_dependencies_valid-1.2.xml.bin | 7 --- ...t_bom_with_dependencies_valid-1.3.json.bin | 9 +--- ...et_bom_with_dependencies_valid-1.3.xml.bin | 7 --- ...t_bom_with_dependencies_valid-1.4.json.bin | 43 +------------------ ...et_bom_with_dependencies_valid-1.4.xml.bin | 33 -------------- ...t_bom_with_dependencies_valid-1.5.json.bin | 43 +------------------ ...et_bom_with_dependencies_valid-1.5.xml.bin | 33 -------------- ...t_bom_with_dependencies_valid-1.6.json.bin | 43 +------------------ ...et_bom_with_dependencies_valid-1.6.xml.bin | 33 -------------- ..._bom_with_external_references-1.2.json.bin | 9 +--- ...t_bom_with_external_references-1.2.xml.bin | 7 --- ..._bom_with_external_references-1.3.json.bin | 9 +--- ...t_bom_with_external_references-1.3.xml.bin | 7 --- ..._bom_with_external_references-1.4.json.bin | 43 +------------------ ...t_bom_with_external_references-1.4.xml.bin | 33 -------------- ..._bom_with_external_references-1.5.json.bin | 43 +------------------ ...t_bom_with_external_references-1.5.xml.bin | 33 -------------- ..._bom_with_external_references-1.6.json.bin | 43 +------------------ ...t_bom_with_external_references-1.6.xml.bin | 33 -------------- .../get_bom_with_licenses-1.2.json.bin | 9 +--- .../get_bom_with_licenses-1.2.xml.bin | 7 --- .../get_bom_with_licenses-1.3.json.bin | 9 +--- .../get_bom_with_licenses-1.3.xml.bin | 7 --- .../get_bom_with_licenses-1.4.json.bin | 43 +------------------ .../get_bom_with_licenses-1.4.xml.bin | 33 -------------- .../get_bom_with_licenses-1.5.json.bin | 43 +------------------ .../get_bom_with_licenses-1.5.xml.bin | 33 -------------- .../get_bom_with_licenses-1.6.json.bin | 43 +------------------ .../get_bom_with_licenses-1.6.xml.bin | 33 -------------- ...ta_component_and_dependencies-1.2.json.bin | 9 +--- ...ata_component_and_dependencies-1.2.xml.bin | 7 --- ...ta_component_and_dependencies-1.3.json.bin | 9 +--- ...ata_component_and_dependencies-1.3.xml.bin | 7 --- ...ta_component_and_dependencies-1.4.json.bin | 43 +------------------ ...ata_component_and_dependencies-1.4.xml.bin | 33 -------------- ...ta_component_and_dependencies-1.5.json.bin | 43 +------------------ ...ata_component_and_dependencies-1.5.xml.bin | 33 -------------- ...ta_component_and_dependencies-1.6.json.bin | 43 +------------------ ...ata_component_and_dependencies-1.6.xml.bin | 33 -------------- ...et_bom_with_multiple_licenses-1.2.json.bin | 9 +--- ...get_bom_with_multiple_licenses-1.2.xml.bin | 7 --- ...et_bom_with_multiple_licenses-1.3.json.bin | 9 +--- ...get_bom_with_multiple_licenses-1.3.xml.bin | 7 --- ...et_bom_with_multiple_licenses-1.4.json.bin | 43 +------------------ ...get_bom_with_multiple_licenses-1.4.xml.bin | 33 -------------- ...et_bom_with_multiple_licenses-1.5.json.bin | 43 +------------------ ...get_bom_with_multiple_licenses-1.5.xml.bin | 33 -------------- ...et_bom_with_multiple_licenses-1.6.json.bin | 43 +------------------ ...get_bom_with_multiple_licenses-1.6.xml.bin | 33 -------------- .../get_bom_with_nested_services-1.2.json.bin | 9 +--- .../get_bom_with_nested_services-1.2.xml.bin | 7 --- .../get_bom_with_nested_services-1.3.json.bin | 9 +--- .../get_bom_with_nested_services-1.3.xml.bin | 7 --- .../get_bom_with_nested_services-1.4.json.bin | 43 +------------------ .../get_bom_with_nested_services-1.4.xml.bin | 33 -------------- .../get_bom_with_nested_services-1.5.json.bin | 43 +------------------ .../get_bom_with_nested_services-1.5.xml.bin | 33 -------------- .../get_bom_with_nested_services-1.6.json.bin | 43 +------------------ .../get_bom_with_nested_services-1.6.xml.bin | 33 -------------- ...get_bom_with_services_complex-1.2.json.bin | 9 +--- .../get_bom_with_services_complex-1.2.xml.bin | 7 --- ...get_bom_with_services_complex-1.3.json.bin | 9 +--- .../get_bom_with_services_complex-1.3.xml.bin | 7 --- ...get_bom_with_services_complex-1.4.json.bin | 43 +------------------ .../get_bom_with_services_complex-1.4.xml.bin | 33 -------------- ...get_bom_with_services_complex-1.5.json.bin | 43 +------------------ .../get_bom_with_services_complex-1.5.xml.bin | 33 -------------- ...get_bom_with_services_complex-1.6.json.bin | 43 +------------------ .../get_bom_with_services_complex-1.6.xml.bin | 33 -------------- .../get_bom_with_services_simple-1.2.json.bin | 9 +--- .../get_bom_with_services_simple-1.2.xml.bin | 7 --- .../get_bom_with_services_simple-1.3.json.bin | 9 +--- .../get_bom_with_services_simple-1.3.xml.bin | 7 --- .../get_bom_with_services_simple-1.4.json.bin | 43 +------------------ .../get_bom_with_services_simple-1.4.xml.bin | 33 -------------- .../get_bom_with_services_simple-1.5.json.bin | 43 +------------------ .../get_bom_with_services_simple-1.5.xml.bin | 33 -------------- .../get_bom_with_services_simple-1.6.json.bin | 43 +------------------ .../get_bom_with_services_simple-1.6.xml.bin | 33 -------------- tests/test_model_bom.py | 15 ++++--- 380 files changed, 198 insertions(+), 9746 deletions(-) diff --git a/cyclonedx/model/bom.py b/cyclonedx/model/bom.py index a9c38888..5df2a8c0 100644 --- a/cyclonedx/model/bom.py +++ b/cyclonedx/model/bom.py @@ -37,7 +37,7 @@ SchemaVersion1Dot6, ) from ..serialization import LicenseRepositoryHelper, UrnUuidHelper -from . import ExternalReference, Property, ThisTool +from . import ExternalReference, Property from .bom_ref import BomRef from .component import Component from .contact import OrganizationalContact, OrganizationalEntity @@ -89,9 +89,6 @@ def __init__( 'Please use `bom.metadata.component.manufacturer` instead.', DeprecationWarning) - if not tools: - self.tools.tools.add(ThisTool) - @property @serializable.type_mapping(serializable.helpers.XsdDateTime) @serializable.xml_sequence(1) diff --git a/tests/_data/snapshots/enum_ComponentScope-1.2.json.bin b/tests/_data/snapshots/enum_ComponentScope-1.2.json.bin index e81616a8..08129f20 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.2.json.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.2.json.bin @@ -34,14 +34,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ComponentScope-1.2.xml.bin b/tests/_data/snapshots/enum_ComponentScope-1.2.xml.bin index 746d6865..2bc68215 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ComponentScope-1.3.json.bin b/tests/_data/snapshots/enum_ComponentScope-1.3.json.bin index 0a89875c..9c30c6cb 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.3.json.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.3.json.bin @@ -34,14 +34,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ComponentScope-1.3.xml.bin b/tests/_data/snapshots/enum_ComponentScope-1.3.xml.bin index d5b28fe8..f10fbd5a 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ComponentScope-1.4.json.bin b/tests/_data/snapshots/enum_ComponentScope-1.4.json.bin index c2bfdb04..a46930ff 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.4.json.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.4.json.bin @@ -31,48 +31,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ComponentScope-1.4.xml.bin b/tests/_data/snapshots/enum_ComponentScope-1.4.xml.bin index b9621f48..2d6382e7 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ComponentScope-1.5.json.bin b/tests/_data/snapshots/enum_ComponentScope-1.5.json.bin index 056c088a..08c95fbe 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.5.json.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.5.json.bin @@ -31,48 +31,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ComponentScope-1.5.xml.bin b/tests/_data/snapshots/enum_ComponentScope-1.5.xml.bin index 7932de76..49a4b47a 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ComponentScope-1.6.json.bin b/tests/_data/snapshots/enum_ComponentScope-1.6.json.bin index 348cec53..9c5999f4 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.6.json.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.6.json.bin @@ -31,48 +31,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ComponentScope-1.6.xml.bin b/tests/_data/snapshots/enum_ComponentScope-1.6.xml.bin index 173aab7a..16002be6 100644 --- a/tests/_data/snapshots/enum_ComponentScope-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ComponentScope-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ComponentType-1.2.json.bin b/tests/_data/snapshots/enum_ComponentType-1.2.json.bin index 502ff22d..4af3254a 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.2.json.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.2.json.bin @@ -76,14 +76,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ComponentType-1.2.xml.bin b/tests/_data/snapshots/enum_ComponentType-1.2.xml.bin index 9fdafcd1..231b3969 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ComponentType-1.3.json.bin b/tests/_data/snapshots/enum_ComponentType-1.3.json.bin index db9f274d..aaf85dfb 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.3.json.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.3.json.bin @@ -76,14 +76,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ComponentType-1.3.xml.bin b/tests/_data/snapshots/enum_ComponentType-1.3.xml.bin index 2fff94ea..849052aa 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ComponentType-1.4.json.bin b/tests/_data/snapshots/enum_ComponentType-1.4.json.bin index e3049751..43746889 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.4.json.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.4.json.bin @@ -68,48 +68,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ComponentType-1.4.xml.bin b/tests/_data/snapshots/enum_ComponentType-1.4.xml.bin index 751ba6a7..ecf2566d 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ComponentType-1.5.json.bin b/tests/_data/snapshots/enum_ComponentType-1.5.json.bin index 7a2b9196..c9380e54 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.5.json.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.5.json.bin @@ -100,48 +100,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ComponentType-1.5.xml.bin b/tests/_data/snapshots/enum_ComponentType-1.5.xml.bin index 4340d7b9..7eece9d3 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ComponentType-1.6.json.bin b/tests/_data/snapshots/enum_ComponentType-1.6.json.bin index e9aa8150..14beba08 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.6.json.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.6.json.bin @@ -108,48 +108,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ComponentType-1.6.xml.bin b/tests/_data/snapshots/enum_ComponentType-1.6.xml.bin index 63c01ad0..84936bca 100644 --- a/tests/_data/snapshots/enum_ComponentType-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ComponentType-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_DataFlow-1.2.json.bin b/tests/_data/snapshots/enum_DataFlow-1.2.json.bin index cc0b7a87..cfd8d34e 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.2.json.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.2.json.bin @@ -5,14 +5,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/enum_DataFlow-1.2.xml.bin b/tests/_data/snapshots/enum_DataFlow-1.2.xml.bin index 8d57f63a..28afa085 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.2.xml.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_DataFlow-1.3.json.bin b/tests/_data/snapshots/enum_DataFlow-1.3.json.bin index a4ee0e50..ec868cdf 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.3.json.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.3.json.bin @@ -5,14 +5,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/enum_DataFlow-1.3.xml.bin b/tests/_data/snapshots/enum_DataFlow-1.3.xml.bin index 434f3c81..92559dc7 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.3.xml.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_DataFlow-1.4.json.bin b/tests/_data/snapshots/enum_DataFlow-1.4.json.bin index b2a3d94a..e90aec28 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.4.json.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.4.json.bin @@ -5,48 +5,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/enum_DataFlow-1.4.xml.bin b/tests/_data/snapshots/enum_DataFlow-1.4.xml.bin index ebc96f50..07d3b99b 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.4.xml.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_DataFlow-1.5.json.bin b/tests/_data/snapshots/enum_DataFlow-1.5.json.bin index e5127933..7ee12db9 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.5.json.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.5.json.bin @@ -5,48 +5,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_DataFlow-1.5.xml.bin b/tests/_data/snapshots/enum_DataFlow-1.5.xml.bin index 690af434..d7fb1d16 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.5.xml.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_DataFlow-1.6.json.bin b/tests/_data/snapshots/enum_DataFlow-1.6.json.bin index 35932cd8..063107b3 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.6.json.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.6.json.bin @@ -5,48 +5,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_DataFlow-1.6.xml.bin b/tests/_data/snapshots/enum_DataFlow-1.6.xml.bin index 2a10ba25..f7fad953 100644 --- a/tests/_data/snapshots/enum_DataFlow-1.6.xml.bin +++ b/tests/_data/snapshots/enum_DataFlow-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_Encoding-1.2.json.bin b/tests/_data/snapshots/enum_Encoding-1.2.json.bin index 1bd83f88..224d106a 100644 --- a/tests/_data/snapshots/enum_Encoding-1.2.json.bin +++ b/tests/_data/snapshots/enum_Encoding-1.2.json.bin @@ -25,14 +25,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_Encoding-1.2.xml.bin b/tests/_data/snapshots/enum_Encoding-1.2.xml.bin index b0744af6..bf3307a6 100644 --- a/tests/_data/snapshots/enum_Encoding-1.2.xml.bin +++ b/tests/_data/snapshots/enum_Encoding-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_Encoding-1.3.json.bin b/tests/_data/snapshots/enum_Encoding-1.3.json.bin index 2ff182dc..f5c1794a 100644 --- a/tests/_data/snapshots/enum_Encoding-1.3.json.bin +++ b/tests/_data/snapshots/enum_Encoding-1.3.json.bin @@ -25,14 +25,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_Encoding-1.3.xml.bin b/tests/_data/snapshots/enum_Encoding-1.3.xml.bin index cc349445..9c0f1a14 100644 --- a/tests/_data/snapshots/enum_Encoding-1.3.xml.bin +++ b/tests/_data/snapshots/enum_Encoding-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_Encoding-1.4.json.bin b/tests/_data/snapshots/enum_Encoding-1.4.json.bin index 7d33faac..02a99e10 100644 --- a/tests/_data/snapshots/enum_Encoding-1.4.json.bin +++ b/tests/_data/snapshots/enum_Encoding-1.4.json.bin @@ -24,48 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_Encoding-1.4.xml.bin b/tests/_data/snapshots/enum_Encoding-1.4.xml.bin index 6fc9579d..d234c520 100644 --- a/tests/_data/snapshots/enum_Encoding-1.4.xml.bin +++ b/tests/_data/snapshots/enum_Encoding-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_Encoding-1.5.json.bin b/tests/_data/snapshots/enum_Encoding-1.5.json.bin index a1acc445..6ca365ee 100644 --- a/tests/_data/snapshots/enum_Encoding-1.5.json.bin +++ b/tests/_data/snapshots/enum_Encoding-1.5.json.bin @@ -24,48 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_Encoding-1.5.xml.bin b/tests/_data/snapshots/enum_Encoding-1.5.xml.bin index 6dbc122c..6f25b2f8 100644 --- a/tests/_data/snapshots/enum_Encoding-1.5.xml.bin +++ b/tests/_data/snapshots/enum_Encoding-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_Encoding-1.6.json.bin b/tests/_data/snapshots/enum_Encoding-1.6.json.bin index b4f02e19..f3d470e0 100644 --- a/tests/_data/snapshots/enum_Encoding-1.6.json.bin +++ b/tests/_data/snapshots/enum_Encoding-1.6.json.bin @@ -24,48 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_Encoding-1.6.xml.bin b/tests/_data/snapshots/enum_Encoding-1.6.xml.bin index e1731428..c2b00d13 100644 --- a/tests/_data/snapshots/enum_Encoding-1.6.xml.bin +++ b/tests/_data/snapshots/enum_Encoding-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.2.json.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.2.json.bin index 6b3751c2..014101d3 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.2.json.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.2.json.bin @@ -187,14 +187,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.2.xml.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.2.xml.bin index 3e83e45d..3f27e8d8 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.3.json.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.3.json.bin index 0d0ef289..d26e39a6 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.3.json.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.3.json.bin @@ -187,14 +187,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.3.xml.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.3.xml.bin index 7fa51b54..40689b7c 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.4.json.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.4.json.bin index 0b874ded..6932a1e7 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.4.json.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.4.json.bin @@ -186,48 +186,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.4.xml.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.4.xml.bin index 57b14972..d7a331a4 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.5.json.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.5.json.bin index 81fd9040..7fd1047c 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.5.json.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.5.json.bin @@ -186,48 +186,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.5.xml.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.5.xml.bin index e4d7319f..ed7b3604 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.6.json.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.6.json.bin index 42eb7ff0..8ea655e7 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.6.json.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.6.json.bin @@ -186,48 +186,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ExternalReferenceType-1.6.xml.bin b/tests/_data/snapshots/enum_ExternalReferenceType-1.6.xml.bin index fdfb8faf..6c3069f3 100644 --- a/tests/_data/snapshots/enum_ExternalReferenceType-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ExternalReferenceType-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.2.json.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.2.json.bin index 676688fc..feac89ff 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.2.json.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.2.json.bin @@ -63,14 +63,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.2.xml.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.2.xml.bin index 598aa3bd..03ea0302 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.2.xml.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.3.json.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.3.json.bin index feef702e..b9fea7a8 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.3.json.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.3.json.bin @@ -63,14 +63,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.3.xml.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.3.xml.bin index df81eb25..420b91c8 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.3.xml.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.4.json.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.4.json.bin index 3f6e1978..46381c54 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.4.json.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.4.json.bin @@ -62,48 +62,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.4.xml.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.4.xml.bin index 19975680..8c8a6e3b 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.4.xml.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.5.json.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.5.json.bin index d41c835e..979aec04 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.5.json.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.5.json.bin @@ -62,48 +62,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.5.xml.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.5.xml.bin index 24190ff6..3c3cd265 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.5.xml.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.6.json.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.6.json.bin index eecd5c97..fa982e91 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.6.json.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.6.json.bin @@ -62,48 +62,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_HashAlgorithm-1.6.xml.bin b/tests/_data/snapshots/enum_HashAlgorithm-1.6.xml.bin index 3764bc6e..e50c5049 100644 --- a/tests/_data/snapshots/enum_HashAlgorithm-1.6.xml.bin +++ b/tests/_data/snapshots/enum_HashAlgorithm-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.json.bin index 1165e037..8f473bd3 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.xml.bin index bc36ede0..df1938ec 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.2.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.json.bin index bc1a579f..02943890 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.xml.bin index 1ebd391f..8341ff60 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.3.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.json.bin index 2c46385d..15ee9ab5 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.xml.bin index d77127c3..4468db61 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.json.bin index ded7909a..12f0d76b 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.xml.bin index 7bd9da31..6a271347 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.json.bin index 9344693a..6f041fda 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.xml.bin index 17391b4b..f963edd3 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisAffectedStatus-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.json.bin index 1165e037..8f473bd3 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.xml.bin index bc36ede0..df1938ec 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.2.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.json.bin index bc1a579f..02943890 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.xml.bin index 1ebd391f..8341ff60 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.3.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.json.bin index 01ad7978..26c7fb75 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.xml.bin index ff782f19..a761fe00 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.json.bin index 0e572da1..45504f64 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.xml.bin index 8d627f7c..562ce1a8 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.json.bin index d337334a..8aac7418 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.xml.bin index 89122cf5..2ef1f3b4 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisJustification-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.json.bin index 1165e037..8f473bd3 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.xml.bin index bc36ede0..df1938ec 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.2.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.json.bin index bc1a579f..02943890 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.xml.bin index 1ebd391f..8341ff60 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.3.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.json.bin index 2eb942a0..ebc02088 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.xml.bin index 4c23116c..fecbfd53 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.json.bin index 8e6b3c97..d931b3be 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.xml.bin index 3a18b561..b1e639fa 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.json.bin index 501be21d..0ebcf7bc 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.xml.bin index 64e134ad..194e1fa2 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisResponse-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.json.bin index 1165e037..8f473bd3 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.xml.bin index bc36ede0..df1938ec 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.2.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.json.bin index bc1a579f..02943890 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.xml.bin index 1ebd391f..8341ff60 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.3.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.json.bin index a29f5164..56acc0b3 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.xml.bin index 8381c7c3..9342e974 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.json.bin index c5bacd23..33171e55 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.xml.bin index 3fb0930f..8577d31f 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.json.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.json.bin index 24bc78df..b1ee30d7 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.json.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.xml.bin b/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.xml.bin index 6f3e92a5..1800c469 100644 --- a/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.xml.bin +++ b/tests/_data/snapshots/enum_ImpactAnalysisState-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_IssueClassification-1.2.json.bin b/tests/_data/snapshots/enum_IssueClassification-1.2.json.bin index 68199f61..255c5dc1 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.2.json.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.2.json.bin @@ -34,14 +34,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_IssueClassification-1.2.xml.bin b/tests/_data/snapshots/enum_IssueClassification-1.2.xml.bin index 60c4b014..1ec44335 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.2.xml.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_IssueClassification-1.3.json.bin b/tests/_data/snapshots/enum_IssueClassification-1.3.json.bin index f395fcc3..3c869f0c 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.3.json.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.3.json.bin @@ -34,14 +34,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_IssueClassification-1.3.xml.bin b/tests/_data/snapshots/enum_IssueClassification-1.3.xml.bin index 2ad56112..c232cf9a 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.3.xml.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_IssueClassification-1.4.json.bin b/tests/_data/snapshots/enum_IssueClassification-1.4.json.bin index 6ef1294b..ee938e8f 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.4.json.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.4.json.bin @@ -33,48 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_IssueClassification-1.4.xml.bin b/tests/_data/snapshots/enum_IssueClassification-1.4.xml.bin index 51e549ff..1092bb0f 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.4.xml.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_IssueClassification-1.5.json.bin b/tests/_data/snapshots/enum_IssueClassification-1.5.json.bin index ae28fa1c..72d132b0 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.5.json.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.5.json.bin @@ -33,48 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_IssueClassification-1.5.xml.bin b/tests/_data/snapshots/enum_IssueClassification-1.5.xml.bin index fc1aaf0b..973446b4 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.5.xml.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_IssueClassification-1.6.json.bin b/tests/_data/snapshots/enum_IssueClassification-1.6.json.bin index 58bd90af..5065703c 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.6.json.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.6.json.bin @@ -33,48 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_IssueClassification-1.6.xml.bin b/tests/_data/snapshots/enum_IssueClassification-1.6.xml.bin index 76eb838c..e32cecf5 100644 --- a/tests/_data/snapshots/enum_IssueClassification-1.6.xml.bin +++ b/tests/_data/snapshots/enum_IssueClassification-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_PatchClassification-1.2.json.bin b/tests/_data/snapshots/enum_PatchClassification-1.2.json.bin index c53033f9..8df13dfc 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.2.json.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.2.json.bin @@ -29,14 +29,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_PatchClassification-1.2.xml.bin b/tests/_data/snapshots/enum_PatchClassification-1.2.xml.bin index c8d05cef..7fb48ba9 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.2.xml.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_PatchClassification-1.3.json.bin b/tests/_data/snapshots/enum_PatchClassification-1.3.json.bin index ac18529a..bfc7ef49 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.3.json.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.3.json.bin @@ -29,14 +29,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_PatchClassification-1.3.xml.bin b/tests/_data/snapshots/enum_PatchClassification-1.3.xml.bin index adcc029a..4b3f595a 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.3.xml.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_PatchClassification-1.4.json.bin b/tests/_data/snapshots/enum_PatchClassification-1.4.json.bin index 9a4ab330..f451305b 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.4.json.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.4.json.bin @@ -28,48 +28,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_PatchClassification-1.4.xml.bin b/tests/_data/snapshots/enum_PatchClassification-1.4.xml.bin index 43f6406d..7777bf43 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.4.xml.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_PatchClassification-1.5.json.bin b/tests/_data/snapshots/enum_PatchClassification-1.5.json.bin index c8516b80..575e38a5 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.5.json.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.5.json.bin @@ -28,48 +28,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_PatchClassification-1.5.xml.bin b/tests/_data/snapshots/enum_PatchClassification-1.5.xml.bin index 167bb471..24d98f09 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.5.xml.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_PatchClassification-1.6.json.bin b/tests/_data/snapshots/enum_PatchClassification-1.6.json.bin index 3266ccce..9db7f4cb 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.6.json.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.6.json.bin @@ -28,48 +28,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_PatchClassification-1.6.xml.bin b/tests/_data/snapshots/enum_PatchClassification-1.6.xml.bin index 2d9298b4..dcd75a03 100644 --- a/tests/_data/snapshots/enum_PatchClassification-1.6.xml.bin +++ b/tests/_data/snapshots/enum_PatchClassification-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.json.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.json.bin index 1165e037..8f473bd3 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.xml.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.xml.bin index bc36ede0..df1938ec 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.2.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.json.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.json.bin index bc1a579f..02943890 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.xml.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.xml.bin index 1ebd391f..8341ff60 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.3.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.json.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.json.bin index e2662069..caf42668 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.xml.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.xml.bin index f3854c0d..81c65a56 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.json.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.json.bin index c9140433..2cebe4e2 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.xml.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.xml.bin index 063ff38f..e8200fdd 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.json.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.json.bin index 9e6d0afa..8156593a 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.xml.bin b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.xml.bin index c3b3e0da..568057a8 100644 --- a/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilityScoreSource-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.json.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.json.bin index 1165e037..8f473bd3 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.xml.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.xml.bin index bc36ede0..df1938ec 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.2.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.json.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.json.bin index bc1a579f..02943890 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.json.bin @@ -1,13 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.xml.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.xml.bin index 1ebd391f..8341ff60 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.3.xml.bin @@ -2,12 +2,5 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.json.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.json.bin index cb84c64f..bbf74ceb 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.xml.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.xml.bin index 7b169e4a..df515f77 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.json.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.json.bin index a2f56899..d71a4f54 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.xml.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.xml.bin index da88fc9b..674a90e8 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.json.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.json.bin index 50036d7f..90731def 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.json.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.json.bin @@ -1,47 +1,6 @@ { "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.xml.bin b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.xml.bin index 40270e21..07848760 100644 --- a/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.xml.bin +++ b/tests/_data/snapshots/enum_VulnerabilitySeverity-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - val1 diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.json.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.json.bin index b4eef0f9..ae67e618 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.json.bin @@ -49,14 +49,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.xml.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.xml.bin index e9568f56..af1fa138 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - app 1.0.0 diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.json.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.json.bin index b57b1676..d37153a6 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.json.bin @@ -49,14 +49,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.xml.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.xml.bin index c77704fc..14a09933 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - app 1.0.0 diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.json.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.json.bin index 2e033b40..db8ec07e 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.json.bin @@ -49,48 +49,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.xml.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.xml.bin index 429f1f41..f93fb091 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app 1.0.0 diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.json.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.json.bin index 3fed7c54..b65167aa 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.json.bin @@ -49,48 +49,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.xml.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.xml.bin index d271c76c..c94ee6b5 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app 1.0.0 diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.json.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.json.bin index a9c00dd4..8c1632de 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.json.bin @@ -49,48 +49,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.xml.bin b/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.xml.bin index 887cb11b..a2487390 100644 --- a/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_275_components-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app 1.0.0 diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.json.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.json.bin index 80f814fa..b44dc687 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.json.bin @@ -53,14 +53,7 @@ "type": "application", "version": "1" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.xml.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.xml.bin index 4e712c8c..dcc24077 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - my-project 1 diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.json.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.json.bin index a4dce742..16985452 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.json.bin @@ -53,14 +53,7 @@ "type": "application", "version": "1" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.xml.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.xml.bin index 022354c0..c6e67375 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - my-project 1 diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.json.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.json.bin index db77079b..7aa0517f 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.json.bin @@ -53,48 +53,7 @@ "type": "application", "version": "1" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.xml.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.xml.bin index 31611c10..f54eea8a 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - my-project 1 diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.json.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.json.bin index be8fe01e..f0b8e5a7 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.json.bin @@ -53,48 +53,7 @@ "type": "application", "version": "1" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.xml.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.xml.bin index b2892f99..4d741a7d 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - my-project 1 diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.json.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.json.bin index e06c31c6..4e9a3b24 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.json.bin @@ -53,48 +53,7 @@ "type": "application", "version": "1" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.xml.bin b/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.xml.bin index 2422cea8..07f8c3ab 100644 --- a/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_328_components-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - my-project 1 diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.json.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.json.bin index db13f23c..aa874e99 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.json.bin @@ -30,14 +30,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.xml.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.xml.bin index d2da5f03..edf73273 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.json.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.json.bin index 23430184..625c6a9e 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.json.bin @@ -30,14 +30,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.xml.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.xml.bin index e80d642e..e6af9f05 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.json.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.json.bin index b9da7b14..09ad3d10 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.json.bin @@ -29,48 +29,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.xml.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.xml.bin index 76017afb..264d4286 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.json.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.json.bin index d4b48413..aa21468f 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.json.bin @@ -29,48 +29,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.xml.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.xml.bin index 1df947ba..62049bdc 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.json.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.json.bin index 9d39da84..b07192c6 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.json.bin @@ -29,48 +29,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.xml.bin b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.xml.bin index ecb4c429..b780c8cf 100644 --- a/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_497_urls-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.json.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.json.bin index d0fcfe3d..651e8e36 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.json.bin @@ -24,14 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.xml.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.xml.bin index ae85b0cc..cf695a4d 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.json.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.json.bin index 7aadd6b2..6ebec9dd 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.json.bin @@ -24,14 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.xml.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.xml.bin index bc8ee2cd..9b5b5f7a 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.json.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.json.bin index 2f7738c9..f1eeb9dc 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.json.bin @@ -24,48 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.xml.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.xml.bin index 88d997a9..cb9ea370 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.json.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.json.bin index 17df653b..206aaec4 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.json.bin @@ -24,48 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.xml.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.xml.bin index 88baa037..2944adfc 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.json.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.json.bin index 80b12b99..77097c87 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.json.bin @@ -24,48 +24,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.xml.bin b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.xml.bin index 692f3ee6..92263f13 100644 --- a/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_598_multiple_components_with_purl_qualifiers-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.json.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.json.bin index b8d4f344..23e771fb 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.json.bin @@ -13,14 +13,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.xml.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.xml.bin index bd89eb0d..52a808fd 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.json.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.json.bin index 30a280a1..7aad7dac 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.json.bin @@ -18,14 +18,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.xml.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.xml.bin index 2f495c5b..c840840b 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.json.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.json.bin index c5f88750..d60f3f65 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.json.bin @@ -18,48 +18,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.xml.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.xml.bin index b675ebbb..94b4e694 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.json.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.json.bin index f6c4fdec..f538e2af 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.json.bin @@ -18,48 +18,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.xml.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.xml.bin index 30d7ec0b..54be5404 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.json.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.json.bin index bd9a5944..46cca52f 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.json.bin @@ -18,48 +18,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.xml.bin b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.xml.bin index bea1da02..345708a3 100644 --- a/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_for_issue_630_empty_property-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.json.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.json.bin index 61fa9505..a2b15378 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.json.bin @@ -267,14 +267,7 @@ "https://cyclonedx.org/" ] }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.xml.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.xml.bin index 7ab99f68..49407958 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - A N Other diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.json.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.json.bin index 68592b69..82f11977 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.json.bin @@ -334,14 +334,7 @@ "https://cyclonedx.org/" ] }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.xml.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.xml.bin index 67b09fc1..4b23f5a9 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - A N Other diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.json.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.json.bin index f57e79cf..adc2bc76 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.json.bin @@ -391,48 +391,7 @@ "https://cyclonedx.org/" ] }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.xml.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.xml.bin index 402fe22b..e9cef55b 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - A N Other diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.json.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.json.bin index 8fdcbc66..d2c06c75 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.json.bin @@ -391,48 +391,7 @@ "https://cyclonedx.org/" ] }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.xml.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.xml.bin index a9ac8fcf..928f05ed 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - A N Other diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.json.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.json.bin index 0d854562..fa530802 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.json.bin @@ -435,48 +435,7 @@ "https://cyclonedx.org/" ] }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.xml.bin b/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.xml.bin index 56618e7e..fcc591fd 100644 --- a/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_just_complete_metadata-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - A N Other diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.json.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.json.bin index 712a1aa0..baf6f457 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.json.bin @@ -40,48 +40,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.xml.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.xml.bin index d0a5b749..43214f2c 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_algorithm-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.json.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.json.bin index ff2fefef..bb1fdf24 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.json.bin @@ -28,48 +28,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.xml.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.xml.bin index 846567cb..77762892 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_certificate-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.json.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.json.bin index 812e4e2e..ccf5bc61 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.json.bin @@ -57,48 +57,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.xml.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.xml.bin index 6025d3b3..96a5db6e 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_protocol-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.json.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.json.bin index 0358af5a..07cee9c2 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.json.bin @@ -35,48 +35,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.xml.bin b/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.xml.bin index e3da9531..dca04e89 100644 --- a/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_v1_6_with_crypto_related_material-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.json.bin index 2f146446..b96615db 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.xml.bin index cb29e5ba..bb959713 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.json.bin index a075deb2..3437dbb7 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.xml.bin index 76ce40a0..49ba0ae3 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.json.bin index e24af516..dcce930d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.xml.bin index 69a1e7c0..86cbdb05 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.json.bin index d5daf9b3..907820fb 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.xml.bin index 547eacda..4d9bbf6d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.json.bin index ea2735d1..801b3e18 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.xml.bin index fea7e2ec..6de92d82 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_basic-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.json.bin index e1bef464..66425d45 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.json.bin @@ -227,14 +227,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.xml.bin index 72167cd3..523183bd 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.json.bin index 24bd942b..0a6e9da2 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.json.bin @@ -271,14 +271,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.xml.bin index b7aaea4a..d43730db 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.json.bin index 8c30490f..59b7580b 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.json.bin @@ -328,48 +328,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.xml.bin index 0318ec2f..93ac29b4 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.json.bin index a4edc202..3f9b5e77 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.json.bin @@ -328,48 +328,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.xml.bin index c786be39..8a04634c 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.json.bin index 44e35f92..edd7c212 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.json.bin @@ -334,48 +334,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.xml.bin index a53231ce..2d5c0d92 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_complete-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.json.bin index 556f871e..a6d3ed70 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.xml.bin index 39e16bf4..526d38c8 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.json.bin index 0d3f3547..80849832 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.xml.bin index b1198c98..22ba57dc 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.json.bin index 13d79bc1..abaee83a 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.json.bin @@ -21,48 +21,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.xml.bin index 707f0f31..a906a61c 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.json.bin index 1250e296..d071aec9 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.json.bin @@ -21,48 +21,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.xml.bin index 01851806..3c66a841 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.json.bin index 80a74ce8..cf65f782 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.json.bin @@ -21,48 +21,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.xml.bin index 70a34c40..dc1bc798 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_no_component_version-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.json.bin index f9282117..e3aa3849 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.json.bin @@ -23,14 +23,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.xml.bin index f8b4fd27..8cefded0 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.json.bin index 8ad7c766..37a7601d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.json.bin @@ -23,14 +23,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.xml.bin index 457d800b..70870fd8 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.json.bin index 8a16010f..7864fb78 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.json.bin @@ -23,48 +23,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.xml.bin index 70bd488d..1f9da91d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.json.bin index 8381f9f1..2a276928 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.json.bin @@ -23,48 +23,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.xml.bin index 68a0c03d..2cfec03f 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.json.bin index a45ce579..d6ab5aa9 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.json.bin @@ -23,48 +23,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.xml.bin index 9c499c56..776785bb 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_cpe-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.json.bin index 2f146446..b96615db 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.xml.bin index cb29e5ba..bb959713 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.json.bin index a075deb2..3437dbb7 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.xml.bin index 76ce40a0..49ba0ae3 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.json.bin index a8b35ec4..a7197285 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.json.bin @@ -81,48 +81,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.xml.bin index cb263afb..e6dc1ff6 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.json.bin index 9e02ddb5..ae0d6c19 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.json.bin @@ -81,48 +81,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.xml.bin index 60fec7ea..6983758e 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.json.bin index f9aedace..a6411ed9 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.json.bin @@ -81,48 +81,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.xml.bin index 051bac9f..df54f9c6 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_release_notes-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.json.bin index 2f146446..b96615db 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.xml.bin index cb29e5ba..bb959713 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.json.bin index a075deb2..3437dbb7 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.xml.bin index 76ce40a0..49ba0ae3 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.json.bin index e24af516..dcce930d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.xml.bin index 69a1e7c0..86cbdb05 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.json.bin index d5daf9b3..907820fb 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.xml.bin index 547eacda..4d9bbf6d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.json.bin index 441ca484..c1abec2c 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.json.bin @@ -66,48 +66,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.xml.bin index 7fa2c86b..e10d5af9 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_v16_fields-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.json.bin index 2f146446..b96615db 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.xml.bin index cb29e5ba..bb959713 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.json.bin index a075deb2..3437dbb7 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.json.bin @@ -22,14 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.xml.bin index 76ce40a0..49ba0ae3 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.json.bin index 1b70e6e3..b020f6c8 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.xml.bin index f7e73493..554039f1 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.json.bin index 8338aa83..acfdf772 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.xml.bin index 37155640..719e696d 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.json.bin index 9b91199c..0931367c 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.json.bin @@ -22,48 +22,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.xml.bin index ede2278b..9d46b7c0 100644 --- a/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_setuptools_with_vulnerability-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.json.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.json.bin index 8e170b99..a362876f 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.json.bin @@ -27,14 +27,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.xml.bin index ef97c383..12d7e32f 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.json.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.json.bin index aefb94a1..f8a990bf 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.json.bin @@ -33,14 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.xml.bin index a9417823..1d15dde2 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.json.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.json.bin index 08d82364..949596a5 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.json.bin @@ -33,48 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.xml.bin index d1c343c2..4c67af37 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.json.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.json.bin index 340772aa..1771c765 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.json.bin @@ -33,48 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.xml.bin index d633bdf4..154f20fc 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.json.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.json.bin index 4a49b413..f4fc5c11 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.json.bin @@ -33,48 +33,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.xml.bin index 4aa9e789..23a587b2 100644 --- a/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_component_toml_1-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.json.bin index 6dc68f3d..f968a483 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.json.bin @@ -57,14 +57,7 @@ "type": "application", "version": "" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 23, diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.xml.bin index 39df1a3b..b85b5dd2 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - rootComponent diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.json.bin index 20919e4f..190f444c 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.json.bin @@ -63,14 +63,7 @@ "type": "application", "version": "" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 23, diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.xml.bin index cb19113f..504eb196 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - rootComponent diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.json.bin index d43577a1..e0cde06a 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.json.bin @@ -62,48 +62,7 @@ "name": "rootComponent", "type": "application" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 23, diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.xml.bin index b354a27a..a5860bce 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - rootComponent diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.json.bin index 502827d9..3d8b8f31 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.json.bin @@ -62,48 +62,7 @@ "name": "rootComponent", "type": "application" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.xml.bin index b27f09d6..8d72d8b6 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - rootComponent diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.json.bin index c59624ab..5e2a7641 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.json.bin @@ -62,48 +62,7 @@ "name": "rootComponent", "type": "application" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.xml.bin index 7b29a08a..2ae2aa9d 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_hanging-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - rootComponent diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.json.bin index 44bde82b..1782df19 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.json.bin @@ -48,14 +48,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.xml.bin index 45734322..b3cd329b 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.json.bin index 945582d8..92977fde 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.json.bin @@ -54,14 +54,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.xml.bin index 0ac9a56b..ba7c59ac 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.json.bin index 5faf6bc4..2d2e250f 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.json.bin @@ -54,48 +54,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.xml.bin index 5d9339d9..92e6747a 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.json.bin index 0c3a6b38..89bd86c2 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.json.bin @@ -54,48 +54,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.xml.bin index 8fed61b7..6ddad73d 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.json.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.json.bin index 45d62795..7717cb17 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.json.bin @@ -54,48 +54,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.xml.bin index 910d8a19..ad60777c 100644 --- a/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_dependencies_valid-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.2.json.bin b/tests/_data/snapshots/get_bom_with_external_references-1.2.json.bin index 0808ac13..b108f640 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.2.json.bin @@ -11,14 +11,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_external_references-1.2.xml.bin index 052f94d0..44a8e0a5 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.3.json.bin b/tests/_data/snapshots/get_bom_with_external_references-1.3.json.bin index 4f455662..19fcd07f 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.3.json.bin @@ -17,14 +17,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_external_references-1.3.xml.bin index b82483a0..0ae18fba 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.4.json.bin b/tests/_data/snapshots/get_bom_with_external_references-1.4.json.bin index da029b47..e90c3ea2 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.4.json.bin @@ -17,48 +17,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_external_references-1.4.xml.bin index 559dac4c..f64b1c7a 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.5.json.bin b/tests/_data/snapshots/get_bom_with_external_references-1.5.json.bin index efd728cc..55238588 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.5.json.bin @@ -17,48 +17,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_external_references-1.5.xml.bin index 7d3acd73..411ab39a 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.6.json.bin b/tests/_data/snapshots/get_bom_with_external_references-1.6.json.bin index f8a2f5b0..82c9bc40 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.6.json.bin @@ -17,48 +17,7 @@ } ], "metadata": { - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_external_references-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_external_references-1.6.xml.bin index f0e24adf..7dee398e 100644 --- a/tests/_data/snapshots/get_bom_with_external_references-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_external_references-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.2.json.bin b/tests/_data/snapshots/get_bom_with_licenses-1.2.json.bin index 4357e2c7..c88a0812 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.2.json.bin @@ -89,14 +89,7 @@ "type": "application", "version": "" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_licenses-1.2.xml.bin index c7c0cf34..996e5716 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - app diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.3.json.bin b/tests/_data/snapshots/get_bom_with_licenses-1.3.json.bin index 27cc51b0..a5407c58 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.3.json.bin @@ -96,14 +96,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_licenses-1.3.xml.bin index ab9b46ea..1b53ee51 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - app diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.4.json.bin b/tests/_data/snapshots/get_bom_with_licenses-1.4.json.bin index d53cea7f..a082d8a3 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.4.json.bin @@ -92,48 +92,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_licenses-1.4.xml.bin index f3c4b827..6d81479e 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.5.json.bin b/tests/_data/snapshots/get_bom_with_licenses-1.5.json.bin index 519a39a1..a8b28b10 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.5.json.bin @@ -92,48 +92,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_licenses-1.5.xml.bin index c7f82448..fc2bedfd 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.6.json.bin b/tests/_data/snapshots/get_bom_with_licenses-1.6.json.bin index ce61d9f5..4e6ef33f 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.6.json.bin @@ -94,48 +94,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_licenses-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_licenses-1.6.xml.bin index 26dbad0d..49b31f46 100644 --- a/tests/_data/snapshots/get_bom_with_licenses-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_licenses-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.json.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.json.bin index 8e1ad38b..e74a252d 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.json.bin @@ -48,14 +48,7 @@ "type": "library", "version": "50.3.2" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.xml.bin index 9f181dd3..0e8acf56 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - Test Author setuptools diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.json.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.json.bin index 44d8a573..243e776d 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.json.bin @@ -54,14 +54,7 @@ "type": "library", "version": "50.3.2" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.xml.bin index 6a0e37c3..92321491 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - Test Author setuptools diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.json.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.json.bin index 5d3fe4a4..0c91fe36 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.json.bin @@ -54,48 +54,7 @@ "type": "library", "version": "50.3.2" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "version": 1, diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.xml.bin index 1826d7f3..2d8b15f8 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - Test Author setuptools diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.json.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.json.bin index 66edb924..a72442f9 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.json.bin @@ -54,48 +54,7 @@ "type": "library", "version": "50.3.2" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.xml.bin index 358958e9..4ad5abd7 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - Test Author setuptools diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.json.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.json.bin index accf4887..9aba4626 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.json.bin @@ -54,48 +54,7 @@ "type": "library", "version": "50.3.2" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.xml.bin index 7b73d353..26e9a101 100644 --- a/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_metadata_component_and_dependencies-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - Test Author setuptools diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.json.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.json.bin index 19aadbf1..3a40a57c 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.json.bin @@ -49,14 +49,7 @@ "type": "application", "version": "" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.xml.bin index df26741d..39f4e66b 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - app diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.json.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.json.bin index 1a6eba50..469d49f3 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.json.bin @@ -61,14 +61,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.xml.bin index 1bb3e0ab..a4a52cfd 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - app diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.json.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.json.bin index f8beb9f4..21df9fed 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.json.bin @@ -59,48 +59,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.xml.bin index 7c0f8f2b..ee81caf9 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.json.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.json.bin index 33849b38..134e1f9a 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.json.bin @@ -59,48 +59,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.xml.bin index 8fedd3e7..8ece9896 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.json.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.json.bin index d590951c..1d8ab129 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.json.bin @@ -59,48 +59,7 @@ } } ], - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.xml.bin index 8b1c9c9b..84091db5 100644 --- a/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_multiple_licenses-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - app diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.2.json.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.2.json.bin index 29fbb5fa..8a17945d 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.2.json.bin @@ -17,14 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.2.xml.bin index 68bed448..a4612acd 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.3.json.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.3.json.bin index 578ada50..5e480c8c 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.3.json.bin @@ -17,14 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.3.xml.bin index a9536b6a..9b260cd6 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.4.json.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.4.json.bin index f9ca9db0..13797a13 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.4.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.4.xml.bin index 94c873c9..e3e327ac 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.5.json.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.5.json.bin index e286d6fe..11b52897 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.5.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.5.xml.bin index 5b1865d2..570fba7f 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.6.json.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.6.json.bin index ea5e7d27..e1469324 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.6.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_nested_services-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_nested_services-1.6.xml.bin index 030d9d47..24ce8e39 100644 --- a/tests/_data/snapshots/get_bom_with_nested_services-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_nested_services-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.2.json.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.2.json.bin index 7f4621c8..50a81b63 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.2.json.bin @@ -17,14 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.2.xml.bin index 00d2a617..de5d73bf 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.3.json.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.3.json.bin index 01ab92d3..c677d7b6 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.3.json.bin @@ -17,14 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.3.xml.bin index d6df0b4b..5ea783f0 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.4.json.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.4.json.bin index cc761a4c..02bd8ecf 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.4.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.4.xml.bin index 31b95370..762dff5a 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.5.json.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.5.json.bin index 71c4d2d1..7672db57 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.5.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.5.xml.bin index 539e964f..7fb7fc50 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.6.json.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.6.json.bin index 13e17526..45b78218 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.6.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_services_complex-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_services_complex-1.6.xml.bin index b541b17f..7a054cfa 100644 --- a/tests/_data/snapshots/get_bom_with_services_complex-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_complex-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.2.json.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.2.json.bin index e7562ceb..7a7ff2b9 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.2.json.bin @@ -17,14 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.2.xml.bin index 60db211e..e5233acf 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.2.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.3.json.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.3.json.bin index 4c2ea8b2..cbd63251 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.3.json.bin @@ -17,14 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.3.xml.bin index 08fcc576..7904f82f 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.3.xml.bin @@ -2,13 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.4.json.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.4.json.bin index 71758695..9834ec21 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.4.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", "services": [ diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.4.xml.bin index f96e529b..b85a5a8e 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.4.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.5.json.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.5.json.bin index 7ca30ec6..7152a3c5 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.5.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.5.xml.bin index 608a8dbf..040f39ab 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.5.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.6.json.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.6.json.bin index 1b421189..28414296 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.6.json.bin @@ -17,48 +17,7 @@ "type": "library", "version": "1.0.0" }, - "timestamp": "2023-01-07T13:44:32.312678+00:00", - "tools": [ - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - } - ] + "timestamp": "2023-01-07T13:44:32.312678+00:00" }, "properties": [ { diff --git a/tests/_data/snapshots/get_bom_with_services_simple-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_services_simple-1.6.xml.bin index a46b2d21..94f67e28 100644 --- a/tests/_data/snapshots/get_bom_with_services_simple-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_services_simple-1.6.xml.bin @@ -2,39 +2,6 @@ 2023-01-07T13:44:32.312678+00:00 - - - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - cyclonedx-python-lib 1.0.0 diff --git a/tests/test_model_bom.py b/tests/test_model_bom.py index 7c993036..045929ff 100644 --- a/tests/test_model_bom.py +++ b/tests/test_model_bom.py @@ -48,14 +48,13 @@ class TestBomMetaData(TestCase): def test_empty_bom_metadata(self) -> None: metadata = BomMetaData() self.assertIsNotNone(metadata.timestamp) - self.assertIsNotNone(metadata.authors) + self.assertEqual(0, len(metadata.authors)) self.assertIsNone(metadata.component) self.assertIsNone(metadata.manufacture) self.assertIsNone(metadata.supplier) - self.assertIsNotNone(metadata.licenses) - self.assertIsNotNone(metadata.properties) - self.assertIsNotNone(metadata.tools) - self.assertTrue(ThisTool in metadata.tools.tools) + self.assertEqual(0, len(metadata.licenses)) + self.assertEqual(0, len(metadata.properties)) + self.assertEqual(0, len(metadata.tools)) def test_basic_bom_metadata(self) -> None: tools = [ @@ -109,11 +108,13 @@ def test_bom_metadata_tool_this_tool(self) -> None: def test_bom_metadata_tool_multiple_tools(self) -> None: bom = Bom() - self.assertEqual(len(bom.metadata.tools), 1) + self.assertEqual(len(bom.metadata.tools), 0) bom.metadata.tools.tools.add( Tool(vendor='TestVendor', name='TestTool', version='0.0.0') ) - self.assertEqual(bom.version, 1) + bom.metadata.tools.tools.add( + Tool(vendor='TestVendor', name='TestTool-2', version='1.33.7') + ) self.assertEqual(len(bom.metadata.tools), 2) def test_metadata_component(self) -> None: From 0172564d5f9529e7ce543da434969b552833de31 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 16 Sep 2024 18:42:44 +0200 Subject: [PATCH 04/20] refactor!: `LicenseExpression()` optional args are named args (#595) fixes #594 Signed-off-by: Jan Kowalleck --- cyclonedx/model/license.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyclonedx/model/license.py b/cyclonedx/model/license.py index 1bde1248..d2217c2e 100644 --- a/cyclonedx/model/license.py +++ b/cyclonedx/model/license.py @@ -250,7 +250,7 @@ class LicenseExpression: """ def __init__( - self, value: str, # *, # all optional args are intended to be keyword-args + self, value: str, *, acknowledgement: Optional[LicenseAcknowledgement] = None, ) -> None: self._value = value From cf5d2c7e43883967c5d5837f465ecac5a8cc034e Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 16 Sep 2024 20:23:58 +0200 Subject: [PATCH 05/20] feat!: this-builder (#649) reworked `ThisTool` for #635 --------- Signed-off-by: Jan Kowalleck --- cyclonedx/builder/__init__.py | 18 ++++ cyclonedx/builder/this.py | 97 +++++++++++++++++++ cyclonedx/model/__init__.py | 45 --------- pyproject.toml | 4 +- tests/_data/models.py | 9 +- ...nd_tools_irreversible_migrate-1.2.json.bin | 5 + ...and_tools_irreversible_migrate-1.2.xml.bin | 5 + ...nd_tools_irreversible_migrate-1.3.json.bin | 5 + ...and_tools_irreversible_migrate-1.3.xml.bin | 5 + ...nd_tools_irreversible_migrate-1.4.json.bin | 39 ++++++++ ...and_tools_irreversible_migrate-1.4.xml.bin | 31 ++++++ ...nd_tools_irreversible_migrate-1.5.json.bin | 39 ++++++++ ...and_tools_irreversible_migrate-1.5.xml.bin | 31 ++++++ ...nd_tools_irreversible_migrate-1.6.json.bin | 39 ++++++++ ...and_tools_irreversible_migrate-1.6.xml.bin | 31 ++++++ ...component_and_service_migrate-1.2.json.bin | 5 + ..._component_and_service_migrate-1.2.xml.bin | 5 + ...component_and_service_migrate-1.3.json.bin | 5 + ..._component_and_service_migrate-1.3.xml.bin | 5 + ...component_and_service_migrate-1.4.json.bin | 39 ++++++++ ..._component_and_service_migrate-1.4.xml.bin | 31 ++++++ ...component_and_service_migrate-1.5.json.bin | 48 +++++++++ ..._component_and_service_migrate-1.5.xml.bin | 37 +++++++ ...component_and_service_migrate-1.6.json.bin | 49 ++++++++++ ..._component_and_service_migrate-1.6.xml.bin | 37 +++++++ ..._tools_with_component_migrate-1.2.json.bin | 5 + ...h_tools_with_component_migrate-1.2.xml.bin | 5 + ..._tools_with_component_migrate-1.3.json.bin | 5 + ...h_tools_with_component_migrate-1.3.xml.bin | 5 + ..._tools_with_component_migrate-1.4.json.bin | 39 ++++++++ ...h_tools_with_component_migrate-1.4.xml.bin | 31 ++++++ ..._tools_with_component_migrate-1.5.json.bin | 48 +++++++++ ...h_tools_with_component_migrate-1.5.xml.bin | 37 +++++++ ..._tools_with_component_migrate-1.6.json.bin | 49 ++++++++++ ...h_tools_with_component_migrate-1.6.xml.bin | 37 +++++++ tests/test_deserialize_json.py | 2 +- tests/test_deserialize_xml.py | 2 +- tests/test_enums.py | 15 --- tests/test_model_bom.py | 10 +- tests/test_output_json.py | 2 +- tests/test_output_xml.py | 2 +- tests/test_real_world_examples.py | 2 +- 42 files changed, 884 insertions(+), 76 deletions(-) create mode 100644 cyclonedx/builder/__init__.py create mode 100644 cyclonedx/builder/this.py diff --git a/cyclonedx/builder/__init__.py b/cyclonedx/builder/__init__.py new file mode 100644 index 00000000..9342de00 --- /dev/null +++ b/cyclonedx/builder/__init__.py @@ -0,0 +1,18 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) OWASP Foundation. All Rights Reserved. + +""" +Builders used in this library. +""" diff --git a/cyclonedx/builder/this.py b/cyclonedx/builder/this.py new file mode 100644 index 00000000..ece1e428 --- /dev/null +++ b/cyclonedx/builder/this.py @@ -0,0 +1,97 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) OWASP Foundation. All Rights Reserved. + +"""Representation of this very python library.""" + +__all__ = ['this_tool', 'this_component'] + +from typing import Iterable + +from .. import __version__ as __ThisVersion # noqa: N812 +from ..model import ExternalReference, ExternalReferenceType, XsUri +from ..model.component import Component, ComponentType +from ..model.license import DisjunctiveLicense, LicenseAcknowledgement +from ..model.tool import Tool + +# !!! keep this file in sync with `pyproject.toml` + +# !!! +# things in here are built on demand, rather than using prepared frozen constants. +# this is currently a draft and may change in the future. +# !!! + + +def __ext_refs() -> Iterable[ExternalReference]: + return ( + ExternalReference( + type=ExternalReferenceType.BUILD_SYSTEM, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/actions') + ), + ExternalReference( + type=ExternalReferenceType.DISTRIBUTION, + url=XsUri('https://pypi.org/project/cyclonedx-python-lib/') + ), + ExternalReference( + type=ExternalReferenceType.DOCUMENTATION, + url=XsUri('https://cyclonedx-python-library.readthedocs.io/') + ), + ExternalReference( + type=ExternalReferenceType.ISSUE_TRACKER, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/issues') + ), + ExternalReference( + type=ExternalReferenceType.LICENSE, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE') + ), + ExternalReference( + type=ExternalReferenceType.RELEASE_NOTES, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md') + ), + ExternalReference( + type=ExternalReferenceType.VCS, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib') + ), + ExternalReference( + type=ExternalReferenceType.WEBSITE, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') + ), + ) + + +def this_tool() -> Tool: + """Representation of this very python library as a :class:`Tool`.""" + + return Tool( + vendor='CycloneDX', + name='cyclonedx-python-lib', + version=__ThisVersion or 'UNKNOWN', + external_references=__ext_refs(), + ) + + +def this_component() -> Component: + """Representation of this very python library as a :class:`Component`.""" + + return Component( + type=ComponentType.LIBRARY, + group='CycloneDX', + name='cyclonedx-python-lib', + version=__ThisVersion or 'UNKNOWN', + description='Python library for CycloneDX', + licenses=(DisjunctiveLicense(id='Apache-2.0', + acknowledgement=LicenseAcknowledgement.DECLARED),), + external_references=__ext_refs(), + # to be expanded ... + ) diff --git a/cyclonedx/model/__init__.py b/cyclonedx/model/__init__.py index c074a701..df49680e 100644 --- a/cyclonedx/model/__init__.py +++ b/cyclonedx/model/__init__.py @@ -32,7 +32,6 @@ import serializable from sortedcontainers import SortedSet -from .. import __version__ as __ThisToolVersion # noqa: N812 from .._internal.compare import ComparableTuple as _ComparableTuple from ..exception.model import ( InvalidLocaleTypeException, @@ -1262,47 +1261,3 @@ def __hash__(self) -> int: def __repr__(self) -> str: return f'' - - -# Importing here to avoid a circular import -from .tool import Tool # pylint: disable=wrong-import-position # noqa: E402 - -ThisTool = Tool( - vendor='CycloneDX', - name='cyclonedx-python-lib', - version=__ThisToolVersion or 'UNKNOWN', - external_references=[ - ExternalReference( - type=ExternalReferenceType.BUILD_SYSTEM, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/actions') - ), - ExternalReference( - type=ExternalReferenceType.DISTRIBUTION, - url=XsUri('https://pypi.org/project/cyclonedx-python-lib/') - ), - ExternalReference( - type=ExternalReferenceType.DOCUMENTATION, - url=XsUri('https://cyclonedx-python-library.readthedocs.io/') - ), - ExternalReference( - type=ExternalReferenceType.ISSUE_TRACKER, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/issues') - ), - ExternalReference( - type=ExternalReferenceType.LICENSE, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE') - ), - ExternalReference( - type=ExternalReferenceType.RELEASE_NOTES, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md') - ), - ExternalReference( - type=ExternalReferenceType.VCS, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib') - ), - ExternalReference( - type=ExternalReferenceType.WEBSITE, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') - ) - ] -) diff --git a/pyproject.toml b/pyproject.toml index 625d7999..14d698ae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry] +# keep in sync with `cyclonedx/builder/this.py` name = "cyclonedx-python-lib" # !! version is managed by semantic_release version = "7.6.0" @@ -63,13 +64,14 @@ keywords = [ ] [tool.poetry.urls] +# keep in sync with `cyclonedx/builder/this.py` "Bug Tracker" = "https://github.com/CycloneDX/cyclonedx-python-lib/issues" "Funding" = "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX" [tool.poetry.dependencies] python = "^3.8" packageurl-python = ">=0.11, <2" -py-serializable = "^1.1.0" +py-serializable = "^1.1.1" sortedcontainers = "^2.4.0" license-expression = "^30" jsonschema = { version = "^4.18", extras=['format'], optional=true } diff --git a/tests/_data/models.py b/tests/_data/models.py index 0939f1ee..dd38a8c3 100644 --- a/tests/_data/models.py +++ b/tests/_data/models.py @@ -26,6 +26,7 @@ # See https://github.com/package-url/packageurl-python/issues/65 from packageurl import PackageURL +from cyclonedx.builder.this import this_component, this_tool from cyclonedx.model import ( AttachedText, Copyright, @@ -38,7 +39,6 @@ Note, NoteText, Property, - ThisTool, XsUri, ) from cyclonedx.model.bom import Bom, BomMetaData @@ -1052,7 +1052,7 @@ def get_bom_with_tools() -> Bom: return _make_bom( metadata=BomMetaData( tools=( - ThisTool, + this_tool(), Tool(name='test-tool-b'), Tool(vendor='example', name='test-tool-a', @@ -1071,6 +1071,7 @@ def get_bom_with_tools_with_component_migrate() -> Bom: metadata=BomMetaData( tools=ToolsRepository( components=( + this_component(), Component(name='test-component', bom_ref='test-component'), Component(type=ComponentType.APPLICATION, bom_ref='other-component', @@ -1108,6 +1109,7 @@ def get_bom_with_tools_with_component_and_service_migrate() -> Bom: metadata=BomMetaData( tools=ToolsRepository( components=( + this_component(), Component(name='test-component', bom_ref='test-component'), Component(type=ComponentType.APPLICATION, bom_ref='other-component', @@ -1137,6 +1139,7 @@ def get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate tserv = tools.services ttools = tools.tools tcomp.update(( + this_component(), Component(name='test-component', bom_ref='test-component'), Component(type=ComponentType.APPLICATION, bom_ref='other-component', @@ -1156,7 +1159,7 @@ def get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate ), )) ttools.update(( - ThisTool, + this_tool(), Tool(name='test-tool-b'), Tool(vendor='example', name='test-tool-a', diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin index 1fd2b7d6..7aa7bc43 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin @@ -31,6 +31,11 @@ "name": "other-component", "vendor": "acme" }, + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin index d8b2a4c1..ff3213ee 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin @@ -26,6 +26,11 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + CycloneDX + cyclonedx-python-lib + TESTING + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin index 01886ae2..258f92e2 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin @@ -31,6 +31,11 @@ "name": "other-component", "vendor": "acme" }, + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin index b0d0956c..014efb51 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin @@ -26,6 +26,11 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + CycloneDX + cyclonedx-python-lib + TESTING + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin index 5dd3c4d1..65e7df8b 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin @@ -91,6 +91,45 @@ "name": "other-component", "vendor": "acme" }, + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin index 4144e524..f7f59286 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin @@ -70,6 +70,37 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin index 4c467bf6..003ad286 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin @@ -91,6 +91,45 @@ "name": "other-component", "vendor": "acme" }, + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin index d16609a5..36269a5f 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin @@ -70,6 +70,37 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin index 1d4d653e..9dcb98b2 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin @@ -91,6 +91,45 @@ "name": "other-component", "vendor": "acme" }, + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin index f9b4eb19..2cef1e3c 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin @@ -70,6 +70,37 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin index ce417066..fe7ad128 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin @@ -12,6 +12,11 @@ "name": "other-component", "vendor": "acme" }, + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin index 2fa064f6..127ca67d 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin @@ -10,6 +10,11 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + CycloneDX + cyclonedx-python-lib + TESTING + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin index 6990fc8a..9a895165 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin @@ -12,6 +12,11 @@ "name": "other-component", "vendor": "acme" }, + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin index 4e71b908..179cd42f 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin @@ -10,6 +10,11 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + CycloneDX + cyclonedx-python-lib + TESTING + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin index 3851eb48..0a8265dc 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin @@ -25,6 +25,45 @@ "name": "other-component", "vendor": "acme" }, + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin index 426cdf54..37e5bb55 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin @@ -19,6 +19,37 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin index 9b205056..f040c90a 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.json.bin @@ -28,6 +28,54 @@ "name": "other-component", "type": "application" }, + { + "description": "Python library for CycloneDX", + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "group": "CycloneDX", + "licenses": [ + { + "license": { + "id": "Apache-2.0" + } + } + ], + "name": "cyclonedx-python-lib", + "type": "library", + "version": "TESTING" + }, { "bom-ref": "test-component", "name": "test-component", diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin index 66d11d3b..4a7bcd8c 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.5.xml.bin @@ -20,6 +20,43 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + Python library for CycloneDX + + + Apache-2.0 + + + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin index 7ddfb8fa..eb1ff770 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.json.bin @@ -28,6 +28,55 @@ "name": "other-component", "type": "application" }, + { + "description": "Python library for CycloneDX", + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "group": "CycloneDX", + "licenses": [ + { + "license": { + "acknowledgement": "declared", + "id": "Apache-2.0" + } + } + ], + "name": "cyclonedx-python-lib", + "type": "library", + "version": "TESTING" + }, { "bom-ref": "test-component", "name": "test-component", diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin index 89519324..84aced32 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.6.xml.bin @@ -20,6 +20,43 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + Python library for CycloneDX + + + Apache-2.0 + + + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin index 254aa82a..9bd4cad8 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin @@ -12,6 +12,11 @@ "name": "other-component", "vendor": "acme" }, + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin index e8e74ab2..5b72b038 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin @@ -10,6 +10,11 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + CycloneDX + cyclonedx-python-lib + TESTING + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin index 7477a298..b15f1484 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin @@ -12,6 +12,11 @@ "name": "other-component", "vendor": "acme" }, + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin index fadc64c7..9b323bdf 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin @@ -10,6 +10,11 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + CycloneDX + cyclonedx-python-lib + TESTING + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin index 84229368..29a67eb3 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin @@ -25,6 +25,45 @@ "name": "other-component", "vendor": "acme" }, + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "name": "test-component" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin index 15c7faa4..64dd255d 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin @@ -19,6 +19,37 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin index 3eb88d3e..f89e6e2c 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.json.bin @@ -28,6 +28,54 @@ "name": "other-component", "type": "application" }, + { + "description": "Python library for CycloneDX", + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "group": "CycloneDX", + "licenses": [ + { + "license": { + "id": "Apache-2.0" + } + } + ], + "name": "cyclonedx-python-lib", + "type": "library", + "version": "TESTING" + }, { "bom-ref": "test-component", "name": "test-component", diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin index 5a6ba111..aa284908 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.5.xml.bin @@ -20,6 +20,43 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + Python library for CycloneDX + + + Apache-2.0 + + + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin index 1348f4f3..dea1d9d9 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.json.bin @@ -28,6 +28,55 @@ "name": "other-component", "type": "application" }, + { + "description": "Python library for CycloneDX", + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "group": "CycloneDX", + "licenses": [ + { + "license": { + "acknowledgement": "declared", + "id": "Apache-2.0" + } + } + ], + "name": "cyclonedx-python-lib", + "type": "library", + "version": "TESTING" + }, { "bom-ref": "test-component", "name": "test-component", diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin index 0963cb16..2f8ceecf 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.6.xml.bin @@ -20,6 +20,43 @@ + + CycloneDX + cyclonedx-python-lib + TESTING + Python library for CycloneDX + + + Apache-2.0 + + + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + test-component diff --git a/tests/test_deserialize_json.py b/tests/test_deserialize_json.py index 03306571..4c66a7cc 100644 --- a/tests/test_deserialize_json.py +++ b/tests/test_deserialize_json.py @@ -40,7 +40,7 @@ class TestDeserializeJson(TestCase, SnapshotMixin, DeepCompareMixin): @named_data(*all_get_bom_funct_valid_immut, *all_get_bom_funct_valid_reversible_migrate) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') + @patch('cyclonedx.builder.this.__ThisVersion', 'TESTING') def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: # only latest schema will have all data populated in serialized form snapshot_name = mksname(get_bom, SchemaVersion.V1_6, OutputFormat.JSON) diff --git a/tests/test_deserialize_xml.py b/tests/test_deserialize_xml.py index 3b02fe77..bf3bbb89 100644 --- a/tests/test_deserialize_xml.py +++ b/tests/test_deserialize_xml.py @@ -37,7 +37,7 @@ class TestDeserializeXml(TestCase, SnapshotMixin, DeepCompareMixin): @named_data(*all_get_bom_funct_valid_immut, *all_get_bom_funct_valid_reversible_migrate) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') + @patch('cyclonedx.builder.this.__ThisVersion', 'TESTING') def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: # only latest schema will have all data populated in serialized form snapshot_name = mksname(get_bom, SchemaVersion.V1_6, OutputFormat.XML) diff --git a/tests/test_enums.py b/tests/test_enums.py index ba5c6c5f..3378648a 100644 --- a/tests/test_enums.py +++ b/tests/test_enums.py @@ -19,7 +19,6 @@ from json import load as json_load from typing import Any, Generator, Iterable, Tuple, Type from unittest import TestCase -from unittest.mock import patch from warnings import warn from xml.etree.ElementTree import parse as xml_parse # nosec B405 @@ -163,7 +162,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(DataFlow, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(services=[Service(name='dummy', bom_ref='dummy', data=( DataClassification(flow=df, classification=df.name) @@ -183,7 +181,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(Encoding, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(components=[Component(name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy', licenses=( DisjunctiveLicense(name=f'att.encoding: {encoding.name}', text=AttachedText( @@ -204,7 +201,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ExternalReferenceType, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(components=[ Component(name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy', external_references=( @@ -226,7 +222,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(HashAlgorithm, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(components=[Component(name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy', hashes=( HashType(alg=alg, content='ae2b1fca515949e5d54fb22b8ed95575') @@ -246,7 +241,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ComponentScope, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(components=( Component(bom_ref=f'scoped-{scope.name}', name=f'dummy-{scope.name}', @@ -285,7 +279,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ComponentType, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: if OutputFormat.XML is of: schema_cases = set(dp_cases_from_xml_schema(SCHEMA_XML[sv], _DP_ComponentType.XML_SCHEMA_XPATH)) @@ -322,7 +315,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(PatchClassification, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(components=[ Component(name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy', pedigree=Pedigree(patches=( @@ -344,7 +336,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ImpactAnalysisAffectedStatus, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(vulnerabilities=[Vulnerability( bom_ref='dummy', id='dummy', affects=[BomTarget(ref='urn:cdx:bom23/1#comp42', versions=( @@ -366,7 +357,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ImpactAnalysisJustification, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(vulnerabilities=( Vulnerability( @@ -389,7 +379,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ImpactAnalysisResponse, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(vulnerabilities=[Vulnerability( bom_ref='dummy', id='dummy', @@ -411,7 +400,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(ImpactAnalysisState, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(vulnerabilities=( Vulnerability( @@ -433,7 +421,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(IssueClassification, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(components=[ Component(name='dummy', type=ComponentType.LIBRARY, bom_ref='dummy', pedigree=Pedigree(patches=[ @@ -457,7 +444,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(VulnerabilityScoreSource, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(vulnerabilities=[Vulnerability(bom_ref='dummy', id='dummy', ratings=( VulnerabilityRating(method=vss) @@ -477,7 +463,6 @@ def test_knows_value(self, value: str) -> None: super()._test_knows_value(VulnerabilitySeverity, value) @named_data(*NAMED_OF_SV) - @patch('cyclonedx.model.ThisTool._version', 'TESTING') def test_cases_render_valid(self, of: OutputFormat, sv: SchemaVersion, *_: Any, **__: Any) -> None: bom = _make_bom(vulnerabilities=[Vulnerability(bom_ref='dummy', id='dummy', ratings=( VulnerabilityRating(severity=vs) diff --git a/tests/test_model_bom.py b/tests/test_model_bom.py index 045929ff..7c2cbcf3 100644 --- a/tests/test_model_bom.py +++ b/tests/test_model_bom.py @@ -23,12 +23,13 @@ from ddt import ddt, named_data from cyclonedx.exception.model import LicenseExpressionAlongWithOthersException -from cyclonedx.model import Property, ThisTool, Tool +from cyclonedx.model import Property from cyclonedx.model.bom import Bom, BomMetaData from cyclonedx.model.bom_ref import BomRef from cyclonedx.model.component import Component, ComponentType from cyclonedx.model.contact import OrganizationalContact, OrganizationalEntity from cyclonedx.model.license import DisjunctiveLicense +from cyclonedx.model.tool import Tool from tests._data.models import ( get_bom_component_licenses_invalid, get_bom_component_nested_licenses_invalid, @@ -93,7 +94,7 @@ def test_basic_bom_metadata(self) -> None: self.assertTrue(properties[0] in metadata.properties) self.assertTrue(properties[1] in metadata.properties) self.assertIsNotNone(metadata.tools) - self.assertTrue(ThisTool not in metadata.tools.tools) + self.assertEqual(2, len(metadata.tools.tools)) self.assertTrue(tools[0] in metadata.tools.tools) self.assertTrue(tools[1] in metadata.tools.tools) @@ -101,11 +102,6 @@ def test_basic_bom_metadata(self) -> None: @ddt class TestBom(TestCase): - def test_bom_metadata_tool_this_tool(self) -> None: - self.assertEqual(ThisTool.vendor, 'CycloneDX') - self.assertEqual(ThisTool.name, 'cyclonedx-python-lib') - self.assertNotEqual(ThisTool.version, 'UNKNOWN') - def test_bom_metadata_tool_multiple_tools(self) -> None: bom = Bom() self.assertEqual(len(bom.metadata.tools), 0) diff --git a/tests/test_output_json.py b/tests/test_output_json.py index 1c9509a3..eb610041 100644 --- a/tests/test_output_json.py +++ b/tests/test_output_json.py @@ -61,7 +61,7 @@ def test_unsupported_schema_raises(self, sv: SchemaVersion) -> None: and is_valid_for_schema_version(gb, sv) )) @unpack - @patch('cyclonedx.model.ThisTool._version', 'TESTING') + @patch('cyclonedx.builder.this.__ThisVersion', 'TESTING') def test_valid(self, get_bom: Callable[[], Bom], sv: SchemaVersion, *_: Any, **__: Any) -> None: snapshot_name = mksname(get_bom, sv, OutputFormat.JSON) bom = get_bom() diff --git a/tests/test_output_xml.py b/tests/test_output_xml.py index fd5ff365..26736606 100644 --- a/tests/test_output_xml.py +++ b/tests/test_output_xml.py @@ -48,7 +48,7 @@ class TestOutputXml(TestCase, SnapshotMixin): if is_valid_for_schema_version(gb, sv) )) @unpack - @patch('cyclonedx.model.ThisTool._version', 'TESTING') + @patch('cyclonedx.builder.this.__ThisVersion', 'TESTING') def test_valid(self, get_bom: Callable[[], Bom], sv: SchemaVersion, *_: Any, **__: Any) -> None: snapshot_name = mksname(get_bom, sv, OutputFormat.XML) if snapshot_name is None: diff --git a/tests/test_real_world_examples.py b/tests/test_real_world_examples.py index cc60bf9b..93cd5636 100644 --- a/tests/test_real_world_examples.py +++ b/tests/test_real_world_examples.py @@ -25,7 +25,7 @@ from tests import OWN_DATA_DIRECTORY -@patch('cyclonedx.model.ThisTool._version', 'TESTING') +@patch('cyclonedx.builder.this.__ThisVersion', 'TESTING') @patch('cyclonedx.model.bom._get_now_utc', return_value=datetime.fromisoformat('2023-01-07 13:44:32.312678+00:00')) class TestDeserializeRealWorldExamples(unittest.TestCase): From 9940cf95e619d67a2a15ff7e6784513059e6ab5e Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Tue, 17 Sep 2024 10:14:05 +0200 Subject: [PATCH 06/20] refactor: simplify `.builder.this.this_tool` Signed-off-by: Jan Kowalleck --- cyclonedx/builder/this.py | 100 ++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 59 deletions(-) diff --git a/cyclonedx/builder/this.py b/cyclonedx/builder/this.py index ece1e428..c663fda0 100644 --- a/cyclonedx/builder/this.py +++ b/cyclonedx/builder/this.py @@ -15,9 +15,7 @@ """Representation of this very python library.""" -__all__ = ['this_tool', 'this_component'] - -from typing import Iterable +__all__ = ['this_component', 'this_tool', ] from .. import __version__ as __ThisVersion # noqa: N812 from ..model import ExternalReference, ExternalReferenceType, XsUri @@ -27,63 +25,9 @@ # !!! keep this file in sync with `pyproject.toml` -# !!! -# things in here are built on demand, rather than using prepared frozen constants. -# this is currently a draft and may change in the future. -# !!! - - -def __ext_refs() -> Iterable[ExternalReference]: - return ( - ExternalReference( - type=ExternalReferenceType.BUILD_SYSTEM, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/actions') - ), - ExternalReference( - type=ExternalReferenceType.DISTRIBUTION, - url=XsUri('https://pypi.org/project/cyclonedx-python-lib/') - ), - ExternalReference( - type=ExternalReferenceType.DOCUMENTATION, - url=XsUri('https://cyclonedx-python-library.readthedocs.io/') - ), - ExternalReference( - type=ExternalReferenceType.ISSUE_TRACKER, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/issues') - ), - ExternalReference( - type=ExternalReferenceType.LICENSE, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE') - ), - ExternalReference( - type=ExternalReferenceType.RELEASE_NOTES, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md') - ), - ExternalReference( - type=ExternalReferenceType.VCS, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib') - ), - ExternalReference( - type=ExternalReferenceType.WEBSITE, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') - ), - ) - - -def this_tool() -> Tool: - """Representation of this very python library as a :class:`Tool`.""" - - return Tool( - vendor='CycloneDX', - name='cyclonedx-python-lib', - version=__ThisVersion or 'UNKNOWN', - external_references=__ext_refs(), - ) - def this_component() -> Component: """Representation of this very python library as a :class:`Component`.""" - return Component( type=ComponentType.LIBRARY, group='CycloneDX', @@ -92,6 +36,44 @@ def this_component() -> Component: description='Python library for CycloneDX', licenses=(DisjunctiveLicense(id='Apache-2.0', acknowledgement=LicenseAcknowledgement.DECLARED),), - external_references=__ext_refs(), - # to be expanded ... + external_references=( + ExternalReference( + type=ExternalReferenceType.BUILD_SYSTEM, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/actions') + ), + ExternalReference( + type=ExternalReferenceType.DISTRIBUTION, + url=XsUri('https://pypi.org/project/cyclonedx-python-lib/') + ), + ExternalReference( + type=ExternalReferenceType.DOCUMENTATION, + url=XsUri('https://cyclonedx-python-library.readthedocs.io/') + ), + ExternalReference( + type=ExternalReferenceType.ISSUE_TRACKER, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/issues') + ), + ExternalReference( + type=ExternalReferenceType.LICENSE, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE') + ), + ExternalReference( + type=ExternalReferenceType.RELEASE_NOTES, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md') + ), + ExternalReference( + type=ExternalReferenceType.VCS, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib') + ), + ExternalReference( + type=ExternalReferenceType.WEBSITE, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') + ), + ), + # to be extended... ) + + +def this_tool() -> Tool: + """Representation of this very python library as a :class:`Tool`.""" + return Tool.from_component(this_component()) From e4ad3bce1f97f77d7c3468765e47dd15929cbbcd Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Tue, 17 Sep 2024 12:02:24 +0200 Subject: [PATCH 07/20] tests: test builder this (#675) QA for https://github.com/CycloneDX/cyclonedx-python-lib/pull/649 --------- Signed-off-by: Jan Kowalleck --- cyclonedx/builder/this.py | 26 ++++++------ pyproject.toml | 3 +- tests/__init__.py | 20 +++++++-- tests/test_builder_this.py | 84 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+), 18 deletions(-) create mode 100644 tests/test_builder_this.py diff --git a/cyclonedx/builder/this.py b/cyclonedx/builder/this.py index c663fda0..3c801835 100644 --- a/cyclonedx/builder/this.py +++ b/cyclonedx/builder/this.py @@ -37,18 +37,23 @@ def this_component() -> Component: licenses=(DisjunctiveLicense(id='Apache-2.0', acknowledgement=LicenseAcknowledgement.DECLARED),), external_references=( + # let's assume this is not a fork ExternalReference( - type=ExternalReferenceType.BUILD_SYSTEM, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/actions') - ), - ExternalReference( - type=ExternalReferenceType.DISTRIBUTION, - url=XsUri('https://pypi.org/project/cyclonedx-python-lib/') + type=ExternalReferenceType.WEBSITE, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') ), ExternalReference( type=ExternalReferenceType.DOCUMENTATION, url=XsUri('https://cyclonedx-python-library.readthedocs.io/') ), + ExternalReference( + type=ExternalReferenceType.VCS, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib') + ), + ExternalReference( + type=ExternalReferenceType.BUILD_SYSTEM, + url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/actions') + ), ExternalReference( type=ExternalReferenceType.ISSUE_TRACKER, url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/issues') @@ -61,13 +66,10 @@ def this_component() -> Component: type=ExternalReferenceType.RELEASE_NOTES, url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md') ), + # we cannot assert where the lib was fetched from, but we can give a hint ExternalReference( - type=ExternalReferenceType.VCS, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib') - ), - ExternalReference( - type=ExternalReferenceType.WEBSITE, - url=XsUri('https://github.com/CycloneDX/cyclonedx-python-lib/#readme') + type=ExternalReferenceType.DISTRIBUTION, + url=XsUri('https://pypi.org/project/cyclonedx-python-lib/') ), ), # to be extended... diff --git a/pyproject.toml b/pyproject.toml index 14d698ae..9d37f3ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,6 @@ requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry] -# keep in sync with `cyclonedx/builder/this.py` name = "cyclonedx-python-lib" # !! version is managed by semantic_release version = "7.6.0" @@ -64,7 +63,6 @@ keywords = [ ] [tool.poetry.urls] -# keep in sync with `cyclonedx/builder/this.py` "Bug Tracker" = "https://github.com/CycloneDX/cyclonedx-python-lib/issues" "Funding" = "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX" @@ -95,6 +93,7 @@ pep8-naming = "0.14.1" isort = "5.13.2" autopep8 = "2.3.1" mypy = "1.11.2" +toml = { version="0.10.2", python="<3.11"} tox = "4.18.0" xmldiff = "2.7.0" bandit = "1.7.9" diff --git a/tests/__init__.py b/tests/__init__.py index 02a82d2f..d1cc3779 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -14,10 +14,11 @@ # # SPDX-License-Identifier: Apache-2.0 # Copyright (c) OWASP Foundation. All Rights Reserved. + import re +import sys from os import getenv, path -from os.path import basename, join, splitext -from typing import TYPE_CHECKING, Any, Generator, Iterable, List, Optional, Tuple, TypeVar, Union +from typing import TYPE_CHECKING, Any, Dict, Generator, Iterable, List, Optional, Tuple, TypeVar, Union from unittest import TestCase from uuid import UUID @@ -47,7 +48,7 @@ class SnapshotMixin: @staticmethod def getSnapshotFile(snapshot_name: str) -> str: # noqa: N802 - return join(SNAPSHOTS_DIRECTORY, f'{snapshot_name}.bin') + return path.join(SNAPSHOTS_DIRECTORY, f'{snapshot_name}.bin') @classmethod def writeSnapshot(cls, snapshot_name: str, data: str) -> None: # noqa: N802 @@ -189,4 +190,15 @@ class DpTuple(Tuple[SchemaVersion, str]): @property def __name__(self) -> str: schema_version, test_data_file = self - return f'{schema_version.to_version()}-{splitext(basename(test_data_file))[0]}' + return f'{schema_version.to_version()}-{path.splitext(path.basename(test_data_file))[0]}' + + +def load_pyproject() -> Dict[str, Any]: + if sys.version_info >= (3, 11): + from tomllib import load as toml_load + with open(path.join(path.dirname(__file__), '..', 'pyproject.toml'), 'rb') as f: + return toml_load(f) + else: + from toml import load as toml_load + with open(path.join(path.dirname(__file__), '..', 'pyproject.toml'), 'rt') as f: + return toml_load(f) diff --git a/tests/test_builder_this.py b/tests/test_builder_this.py new file mode 100644 index 00000000..5af3db1b --- /dev/null +++ b/tests/test_builder_this.py @@ -0,0 +1,84 @@ +# This file is part of CycloneDX Python Lib +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) OWASP Foundation. All Rights Reserved. + +from typing import Any, Dict, Iterable, Tuple, Union +from unittest import TestCase + +from cyclonedx.builder.this import this_component, this_tool +from cyclonedx.model import ExternalReference, ExternalReferenceType +from cyclonedx.model.component import ComponentType +from cyclonedx.model.license import License, LicenseAcknowledgement +from tests import load_pyproject + + +class ExtRefsTestMixin: + + @staticmethod + def __first_ers_uri(t: ExternalReferenceType, ers: Iterable[ExternalReference]) -> str: + return next(filter(lambda r: r.type is t, ers)).url.uri + + def assertExtRefs( # noqa:N802 + self: Union[TestCase, 'ExtRefsTestMixin'], + p: Dict[str, Any], ers: Iterable[ExternalReference] + ) -> None: + self.assertEqual(p['tool']['poetry']['homepage'], self.__first_ers_uri( + ExternalReferenceType.WEBSITE, ers)) + self.assertEqual(p['tool']['poetry']['repository'], self.__first_ers_uri( + ExternalReferenceType.VCS, ers)) + self.assertEqual(p['tool']['poetry']['documentation'], self.__first_ers_uri( + ExternalReferenceType.DOCUMENTATION, ers)) + self.assertEqual(p['tool']['poetry']['urls']['Bug Tracker'], self.__first_ers_uri( + ExternalReferenceType.ISSUE_TRACKER, ers)) + + +class TestThisComponent(TestCase, ExtRefsTestMixin): + def test_basics(self) -> None: + p = load_pyproject() + c = this_component() + self.assertIs(ComponentType.LIBRARY, c.type) + self.assertEqual('CycloneDX', c.group) + self.assertEqual(p['tool']['poetry']['name'], c.name) + self.assertEqual(p['tool']['poetry']['version'], c.version) + self.assertEqual(p['tool']['poetry']['description'], c.description) + + def test_license(self) -> None: + p = load_pyproject() + ls: Tuple[License, ...] = tuple(this_component().licenses) + self.assertEqual(1, len(ls)) + l = ls[0] # noqa:E741 + self.assertIs(LicenseAcknowledgement.DECLARED, l.acknowledgement) + # this uses the fact that poetry expect license declarations as valid SPDX-license-id + self.assertEqual(p['tool']['poetry']['license'], l.id) + + def test_extrefs(self) -> None: + p = load_pyproject() + ers: Tuple[ExternalReference, ...] = tuple(this_component().external_references) + self.assertExtRefs(p, ers) + + +class TestThisTool(TestCase, ExtRefsTestMixin): + def test_basics(self) -> None: + p = load_pyproject() + t = this_tool() + self.assertEqual('CycloneDX', t.vendor) + self.assertEqual(p['tool']['poetry']['name'], t.name) + self.assertEqual(p['tool']['poetry']['version'], t.version) + + def test_extrefs(self) -> None: + p = load_pyproject() + ers: Tuple[ExternalReference, ...] = tuple(this_tool().external_references) + self.assertExtRefs(p, ers) From bef268b7abe2c3f343274d7789906c99c80e9df9 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Wed, 18 Sep 2024 15:54:37 +0200 Subject: [PATCH 08/20] fix: assert copyright headers Signed-off-by: Jan Kowalleck --- cyclonedx/builder/__init__.py | 2 ++ cyclonedx/builder/this.py | 2 ++ cyclonedx/model/tool.py | 2 ++ tests/test_builder_this.py | 2 +- tests/test_model_tool.py | 2 +- tests/test_model_tool_repository.py | 2 +- 6 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cyclonedx/builder/__init__.py b/cyclonedx/builder/__init__.py index 9342de00..ec68e667 100644 --- a/cyclonedx/builder/__init__.py +++ b/cyclonedx/builder/__init__.py @@ -1,3 +1,5 @@ +# This file is part of CycloneDX Python Library +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/cyclonedx/builder/this.py b/cyclonedx/builder/this.py index 3c801835..8f81a8ff 100644 --- a/cyclonedx/builder/this.py +++ b/cyclonedx/builder/this.py @@ -1,3 +1,5 @@ +# This file is part of CycloneDX Python Library +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/cyclonedx/model/tool.py b/cyclonedx/model/tool.py index e9749e8e..05c9d2d5 100644 --- a/cyclonedx/model/tool.py +++ b/cyclonedx/model/tool.py @@ -1,3 +1,5 @@ +# This file is part of CycloneDX Python Library +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tests/test_builder_this.py b/tests/test_builder_this.py index 5af3db1b..2e56b317 100644 --- a/tests/test_builder_this.py +++ b/tests/test_builder_this.py @@ -1,4 +1,4 @@ -# This file is part of CycloneDX Python Lib +# This file is part of CycloneDX Python Library # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/test_model_tool.py b/tests/test_model_tool.py index b0b87c0b..b541e64a 100644 --- a/tests/test_model_tool.py +++ b/tests/test_model_tool.py @@ -1,4 +1,4 @@ -# This file is part of CycloneDX Python Lib +# This file is part of CycloneDX Python Library # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/test_model_tool_repository.py b/tests/test_model_tool_repository.py index 4588fbe4..b090e647 100644 --- a/tests/test_model_tool_repository.py +++ b/tests/test_model_tool_repository.py @@ -1,4 +1,4 @@ -# This file is part of CycloneDX Python Lib +# This file is part of CycloneDX Python Library # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 96386cc88a65f85c7040400dd739aecde7f4d184 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 23 Sep 2024 11:19:30 +0200 Subject: [PATCH 09/20] chore: trusted publishing (#682) fixes #681 --------- Signed-off-by: Jan Kowalleck Signed-off-by: semantic-release Co-authored-by: semantic-release --- .github/workflows/release.yml | 2 +- CHANGELOG.md | 114 ++++++++++++++++++++++++++++++++++ cyclonedx/__init__.py | 2 +- docs/conf.py | 2 +- pyproject.toml | 2 +- 5 files changed, 118 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50202425..90be2059 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -120,7 +120,7 @@ jobs: # see https://github.com/pypa/gh-action-pypi-publish uses: pypa/gh-action-pypi-publish@release/v1 with: - password: ${{ secrets.PYPI_TOKEN }} + attestations: true - name: Publish package distributions to GitHub Releases if: steps.release.outputs.released == 'true' diff --git a/CHANGELOG.md b/CHANGELOG.md index 000aad78..1c1ecc31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,98 @@ +## v8.0.0-alpha.1 (2024-09-23) + +### Chore + +* chore: trusted publishing + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`ce23b0f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ce23b0f73f65a868b74de47a50d1e383a6f705d6)) + +### Fix + +* fix: assert copyright headers + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`bef268b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bef268b7abe2c3f343274d7789906c99c80e9df9)) + +### Unknown + +* Merge branch 'main' into 8.0.0-dev + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`39514b3`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/39514b331eef98fbf5208ead341060831f8acddf)) + +* Merge branch 'main' into 8.0.0-dev ([`c123aff`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c123aff4bd479ec0f5f1982725ffe8901afb87c9)) + + ## v7.6.1 (2024-09-18) +### Breaking + +* feat!: this-builder (#649) + +reworked `ThisTool` for #635 + +--------- + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`cf5d2c7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/cf5d2c7e43883967c5d5837f465ecac5a8cc034e)) + +* refactor!: `LicenseExpression()` optional args are named args (#595) + +fixes #594 + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0172564`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0172564d5f9529e7ce543da434969b552833de31)) + +* feat!: Add component and services for tools (#635) + +CycloneDX spec 1.5 deprecated an array of tools in bom.metadata and +instead prefers object with an array of components and an array of +services. + +This PR implements that. + +This works de-serializing a Syft SBOM with a tool section like so: +``` + "metadata": { + "timestamp": "2024-06-10T13:06:52-08:00", + "tools": { + "components": [ + { + "type": "application", + "author": "anchore", + "name": "syft", + "version": "1.4.1" + } + ] + }, + "component": { + "bom-ref": "08329a07b4eb8eac", + "type": "file", + "name": "./" + } + }, +``` +Next up: docs, XML (de)serialization code, and tests. + +fixes #561 + +--------- + +Signed-off-by: Joshua Kugler <tek30584@adobe.com> +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> +Co-authored-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`1f5fd7a`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1f5fd7a6be94d93d2260622d39ea01cd74614402)) + +* feat!: 8.0.0 + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`9ba4b8e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9ba4b8e5d255c8dba51df214786328bfa700291c)) + +### Feature + +* feat: don't add self to `metafata.tools` (#674) + +fixes #673 + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e0a153f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/e0a153fbd553dcf29343d72e361c1cc9122c63b4)) + ### Fix * fix: file copyright headers (#676) @@ -14,6 +104,30 @@ correct headers Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`35e00b4`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/35e00b4ee5a9306b9e97b011025409bcbfcef309)) +### Refactor + +* refactor: simplify `.builder.this.this_tool` + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`9940cf9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9940cf95e619d67a2a15ff7e6784513059e6ab5e)) + +### Unknown + +* Merge branch 'main' into 8.0.0-dev ([`3d1548a`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3d1548abf5db45764a22fcca96493574f96ff693)) + +* Merge branch 'main' into 8.0.0-dev + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`735c800`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/735c8003ce88b0c6efa802ccd806f17d22b4df89)) + +* tests: test builder this (#675) + +QA for https://github.com/CycloneDX/cyclonedx-python-lib/pull/649 + +--------- + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e4ad3bc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/e4ad3bce1f97f77d7c3468765e47dd15929cbbcd)) + +* Merge branch 'main' into 8.0.0-dev ([`0ec785d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ec785d29abcc215a5a0f6feec9bf16b0994cc92)) + ## v7.6.0 (2024-08-14) diff --git a/cyclonedx/__init__.py b/cyclonedx/__init__.py index ebd01a59..67f6c34a 100644 --- a/cyclonedx/__init__.py +++ b/cyclonedx/__init__.py @@ -22,4 +22,4 @@ # !! version is managed by semantic_release # do not use typing here, or else `semantic_release` might have issues finding the variable -__version__ = "7.6.1" # noqa:Q000 +__version__ = "8.0.0-alpha.1" # noqa:Q000 diff --git a/docs/conf.py b/docs/conf.py index a3acd4c8..fd27d896 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,7 +20,7 @@ # The full version, including alpha/beta/rc tags # !! version is managed by semantic_release -release = '7.6.1' +release = '8.0.0-alpha.1' # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index 9614200f..9470f8df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "cyclonedx-python-lib" # !! version is managed by semantic_release -version = "7.6.1" +version = "8.0.0-alpha.1" description = "Python library for CycloneDX" authors = [ "Paul Horton ", From 0ac84d76f2e526f329937ab004480405492e7417 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 23 Sep 2024 15:52:08 +0200 Subject: [PATCH 10/20] docs: migrate to v8.0.0 (#684) Signed-off-by: Jan Kowalleck --- docs/index.rst | 1 + docs/upgrading.rst | 62 +++++++++++++++++++++++++++++++++++ examples/complex_serialize.py | 3 ++ 3 files changed, 66 insertions(+) create mode 100644 docs/upgrading.rst diff --git a/docs/index.rst b/docs/index.rst index 84bd1126..787ce717 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -47,3 +47,4 @@ If you're looking for a CycloneDX tool to run to generate (SBOM) software bill-o contributing support changelog + upgrading diff --git a/docs/upgrading.rst b/docs/upgrading.rst new file mode 100644 index 00000000..6f9e8cff --- /dev/null +++ b/docs/upgrading.rst @@ -0,0 +1,62 @@ +Upgrading to v8 +=============== + +Version 8 is not backwards compatible. Some behaviours and integrations changed. +This document covers all breaking changes and should give guidance how to migrate from previous versions. + +This document is not a full :doc:`change log `, but a migration path. + +Add this library to Metadata Tools +---------------------------------- + +This library no longer adds itself to the metadata. + +Downstream users SHOULD add the following to their BOM build processes, +to keep track of used libraries during the build process. + +.. code-block:: python + + from cyclonedx.builder.this import this_component as cdx_lib_component + from cyclonedx.model.bom import Bom + + bom = Bom() + bom.metadata.tools.components.add(cdx_lib_component()) + +Import model Tool +----------------- + +Class `cyclonedx.model.Tool` was moved to :class:`cyclonedx.model.tool.Tool`. +Therefore, the imports need to be migrated: + +Old: ``from cyclonedx.model import Tool`` + +New: ``from cyclonedx.model.tool import Tool`` + +Alter Metadata Tools +-------------------- + +Property :attr:`cyclonedx.model.bom.BomMetaData.tools` is an instance of :class:`cyclonedx.model.tool.ToolsRepository`, now. +Therefore, the process of adding new tools needs to be migrated changed. + +Old: ``my_bom.metadata.tools.add(my_tool)`` + +New: ``my_bom.metadata.tools.tools.add(my_tool)`` + +Alter Vulnerability Tools +------------------------- + +Property :attr:`cyclonedx.model.vulnerability.Vulnerability.tools` is an instance of :class:`cyclonedx.model.tool.ToolsRepository`, now. +Therefore, the process of adding new tools needs to be migrated changed. + +Old: ``my_vulnerability.tools.add(my_tool)`` + +New: ``my_vulnerability.tools.tools.add(my_tool)`` + +Set LicenseExpression Acknowledgement +------------------------------------- + +:class:`cyclonedx.model.license.LicenseExpression()` no longer accepts optional arguments in a positional way, but in a key-word way. + +Old: ``LicenseExpression(my_exp, my_acknowledgement)`` + +New: ``LicenseExpression(my_exp, acknowledgement=my_acknowledgement)`` diff --git a/examples/complex_serialize.py b/examples/complex_serialize.py index 477e7ee5..6448a2a7 100644 --- a/examples/complex_serialize.py +++ b/examples/complex_serialize.py @@ -20,6 +20,7 @@ from packageurl import PackageURL +from cyclonedx.builder.this import this_component as cdx_lib_component from cyclonedx.exception import MissingOptionalDependencyException from cyclonedx.factory.license import LicenseFactory from cyclonedx.model import XsUri @@ -43,6 +44,8 @@ # region build the BOM bom = Bom() +bom.metadata.tools.components.add(cdx_lib_component()) + bom.metadata.component = root_component = Component( name='myApp', type=ComponentType.APPLICATION, From 733ba0ebefc7d913290ce32d999620332551e50a Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 23 Sep 2024 17:49:39 +0200 Subject: [PATCH 11/20] chore(dev-deps): use `tomli` (#685) Signed-off-by: Jan Kowalleck --- pyproject.toml | 2 +- tests/__init__.py | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9470f8df..e307963c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,7 +94,7 @@ pep8-naming = "0.14.1" isort = "5.13.2" autopep8 = "2.3.1" mypy = "1.11.2" -toml = { version="0.10.2", python="<3.11"} +tomli = { version = "2.0.1", python = "<3.11" } tox = "4.20.0" xmldiff = "2.7.0" bandit = "1.7.9" diff --git a/tests/__init__.py b/tests/__init__.py index 7eab41d6..93111a22 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -196,9 +196,7 @@ def __name__(self) -> str: def load_pyproject() -> Dict[str, Any]: if sys.version_info >= (3, 11): from tomllib import load as toml_load - with open(path.join(path.dirname(__file__), '..', 'pyproject.toml'), 'rb') as f: - return toml_load(f) else: - from toml import load as toml_load - with open(path.join(path.dirname(__file__), '..', 'pyproject.toml'), 'rt') as f: - return toml_load(f) + from tomli import load as toml_load + with open(path.join(path.dirname(__file__), '..', 'pyproject.toml'), 'rb') as f: + return toml_load(f) From 48b5bc311bcf861e1819bc5b429d6c78698939db Mon Sep 17 00:00:00 2001 From: semantic-release Date: Wed, 25 Sep 2024 12:50:00 +0000 Subject: [PATCH 12/20] chore(release): 8.0.0-rc.1 Automatically generated by python-semantic-release Signed-off-by: semantic-release --- CHANGELOG.md | 22 +++++++++++++++++++--- cyclonedx/__init__.py | 2 +- docs/conf.py | 2 +- pyproject.toml | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c1ecc31..faff5d22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,29 @@ -## v8.0.0-alpha.1 (2024-09-23) +## v8.0.0-rc.1 (2024-09-25) ### Chore -* chore: trusted publishing +* chore(dev-deps): use `tomli` (#685) -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`ce23b0f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ce23b0f73f65a868b74de47a50d1e383a6f705d6)) +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`733ba0e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/733ba0ebefc7d913290ce32d999620332551e50a)) + +* chore: trusted publishing (#682) + +fixes #681 + +--------- + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> +Signed-off-by: semantic-release <semantic-release@bot.local> +Co-authored-by: semantic-release <semantic-release@bot.local> ([`96386cc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/96386cc88a65f85c7040400dd739aecde7f4d184)) + +### Documentation + +* docs: migrate to v8.0.0 (#684) + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0ac84d7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ac84d76f2e526f329937ab004480405492e7417)) ### Fix diff --git a/cyclonedx/__init__.py b/cyclonedx/__init__.py index 67f6c34a..5ef6dff6 100644 --- a/cyclonedx/__init__.py +++ b/cyclonedx/__init__.py @@ -22,4 +22,4 @@ # !! version is managed by semantic_release # do not use typing here, or else `semantic_release` might have issues finding the variable -__version__ = "8.0.0-alpha.1" # noqa:Q000 +__version__ = "8.0.0-rc.1" # noqa:Q000 diff --git a/docs/conf.py b/docs/conf.py index fd27d896..a0e893d9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,7 +20,7 @@ # The full version, including alpha/beta/rc tags # !! version is managed by semantic_release -release = '8.0.0-alpha.1' +release = '8.0.0-rc.1' # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index e307963c..8f8d4fa0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "cyclonedx-python-lib" # !! version is managed by semantic_release -version = "8.0.0-alpha.1" +version = "8.0.0-rc.1" description = "Python library for CycloneDX" authors = [ "Paul Horton ", From e00af1739fa6d3933315e96266d96d9b290012ee Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 27 Sep 2024 12:59:56 +0200 Subject: [PATCH 13/20] rename `ToolsRepository` -> `ToolRepository` (#687) Item class of repository is to be called in singular(`Tool`). Signed-off-by: Jan Kowalleck --- cyclonedx/model/bom.py | 16 ++++++++-------- cyclonedx/model/tool.py | 20 ++++++++++---------- cyclonedx/model/vulnerability.py | 16 ++++++++-------- docs/upgrading.rst | 4 ++-- tests/_data/models.py | 12 ++++++------ tests/test_deserialize_xml.py | 2 +- tests/test_model_tool_repository.py | 20 ++++++++++---------- 7 files changed, 45 insertions(+), 45 deletions(-) diff --git a/cyclonedx/model/bom.py b/cyclonedx/model/bom.py index 3daf513d..7bd09740 100644 --- a/cyclonedx/model/bom.py +++ b/cyclonedx/model/bom.py @@ -44,7 +44,7 @@ from .dependency import Dependable, Dependency from .license import License, LicenseExpression, LicenseRepository from .service import Service -from .tool import Tool, ToolsRepository, _ToolsRepositoryHelper +from .tool import Tool, ToolRepository, _ToolRepositoryHelper from .vulnerability import Vulnerability if TYPE_CHECKING: # pragma: no cover @@ -62,7 +62,7 @@ class BomMetaData: def __init__( self, *, - tools: Optional[Union[Iterable[Tool], ToolsRepository]] = None, + tools: Optional[Union[Iterable[Tool], ToolRepository]] = None, authors: Optional[Iterable[OrganizationalContact]] = None, component: Optional[Component] = None, supplier: Optional[OrganizationalEntity] = None, @@ -117,22 +117,22 @@ def timestamp(self, timestamp: datetime) -> None: # ... # TODO since CDX1.5 @property - @serializable.type_mapping(_ToolsRepositoryHelper) + @serializable.type_mapping(_ToolRepositoryHelper) @serializable.xml_sequence(3) - def tools(self) -> ToolsRepository: + def tools(self) -> ToolRepository: """ Tools used to create this BOM. Returns: - `ToolsRepository` objects. + :class:`ToolRepository` object. """ return self._tools @tools.setter - def tools(self, tools: Union[Iterable[Tool], ToolsRepository]) -> None: + def tools(self, tools: Union[Iterable[Tool], ToolRepository]) -> None: self._tools = tools \ - if isinstance(tools, ToolsRepository) \ - else ToolsRepository(tools=tools) + if isinstance(tools, ToolRepository) \ + else ToolRepository(tools=tools) @property @serializable.xml_array(serializable.XmlArraySerializationType.NESTED, 'author') diff --git a/cyclonedx/model/tool.py b/cyclonedx/model/tool.py index 05c9d2d5..b2b5ff41 100644 --- a/cyclonedx/model/tool.py +++ b/cyclonedx/model/tool.py @@ -188,7 +188,7 @@ def from_service(cls: Type['Tool'], service: 'Service') -> 'Tool': ) -class ToolsRepository: +class ToolRepository: """ The repository of tool formats """ @@ -251,7 +251,7 @@ def __bool__(self) -> bool: or len(self._services) > 0 def __eq__(self, other: object) -> bool: - if not isinstance(other, ToolsRepository): + if not isinstance(other, ToolRepository): return False return self._tools == other._tools \ @@ -262,10 +262,10 @@ def __hash__(self) -> int: return hash((tuple(self._tools), tuple(self._components), tuple(self._services))) -class _ToolsRepositoryHelper(BaseHelper): +class _ToolRepositoryHelper(BaseHelper): @staticmethod - def __all_as_tools(o: ToolsRepository) -> Tuple[Tool, ...]: + def __all_as_tools(o: ToolRepository) -> Tuple[Tool, ...]: return ( *o.tools, *map(Tool.from_component, o.components), @@ -280,7 +280,7 @@ def __supports_components_and_services(view: Any) -> bool: return False @classmethod - def json_normalize(cls, o: ToolsRepository, *, + def json_normalize(cls, o: ToolRepository, *, view: Optional[Type['ViewType']], **__: Any) -> Any: if len(o.tools) > 0 or not cls.__supports_components_and_services(view): @@ -294,7 +294,7 @@ def json_normalize(cls, o: ToolsRepository, *, @classmethod def json_denormalize(cls, o: Union[List[Dict[str, Any]], Dict[str, Any]], - **__: Any) -> ToolsRepository: + **__: Any) -> ToolRepository: tools = None components = None services = None @@ -305,10 +305,10 @@ def json_denormalize(cls, o: Union[List[Dict[str, Any]], Dict[str, Any]], s), o.get('services', ())) elif isinstance(o, Iterable): tools = map(lambda t: Tool.from_json(t), o) # type:ignore[attr-defined] - return ToolsRepository(components=components, services=services, tools=tools) + return ToolRepository(components=components, services=services, tools=tools) @classmethod - def xml_normalize(cls, o: ToolsRepository, *, + def xml_normalize(cls, o: ToolRepository, *, element_name: str, view: Optional[Type['ViewType']], xmlns: Optional[str], @@ -344,7 +344,7 @@ def xml_denormalize(cls, o: Element, *, default_ns: Optional[str], prop_info: 'ObjectMetadataLibrary.SerializableProperty', ctx: Type[Any], - **kwargs: Any) -> ToolsRepository: + **kwargs: Any) -> ToolRepository: tools = [] components = None services = None @@ -361,7 +361,7 @@ def xml_denormalize(cls, o: Element, *, s, default_ns), e) else: raise CycloneDxDeserializationException(f'unexpected: {e!r}') - return ToolsRepository( + return ToolRepository( tools=tools, components=components, services=services) diff --git a/cyclonedx/model/vulnerability.py b/cyclonedx/model/vulnerability.py index 302558e1..1a64cdf6 100644 --- a/cyclonedx/model/vulnerability.py +++ b/cyclonedx/model/vulnerability.py @@ -51,7 +51,7 @@ ImpactAnalysisResponse, ImpactAnalysisState, ) -from .tool import Tool, ToolsRepository, _ToolsRepositoryHelper +from .tool import Tool, ToolRepository, _ToolRepositoryHelper @serializable.serializable_class @@ -954,7 +954,7 @@ def __init__( published: Optional[datetime] = None, updated: Optional[datetime] = None, credits: Optional[VulnerabilityCredits] = None, - tools: Optional[Union[Iterable[Tool], ToolsRepository]] = None, + tools: Optional[Union[Iterable[Tool], ToolRepository]] = None, analysis: Optional[VulnerabilityAnalysis] = None, affects: Optional[Iterable[BomTarget]] = None, properties: Optional[Iterable[Property]] = None, @@ -1247,22 +1247,22 @@ def credits(self, credits: Optional[VulnerabilityCredits]) -> None: self._credits = credits @property - @serializable.type_mapping(_ToolsRepositoryHelper) + @serializable.type_mapping(_ToolRepositoryHelper) @serializable.xml_sequence(17) - def tools(self) -> ToolsRepository: + def tools(self) -> ToolRepository: """ Tools used to create this BOM. Returns: - `ToolsRepository` objects. + :class:`ToolRepository` object. """ return self._tools @tools.setter - def tools(self, tools: Union[Iterable[Tool], ToolsRepository]) -> None: + def tools(self, tools: Union[Iterable[Tool], ToolRepository]) -> None: self._tools = tools \ - if isinstance(tools, ToolsRepository) \ - else ToolsRepository(tools=tools) + if isinstance(tools, ToolRepository) \ + else ToolRepository(tools=tools) @property @serializable.xml_sequence(18) diff --git a/docs/upgrading.rst b/docs/upgrading.rst index 6f9e8cff..7ad57da7 100644 --- a/docs/upgrading.rst +++ b/docs/upgrading.rst @@ -35,7 +35,7 @@ New: ``from cyclonedx.model.tool import Tool`` Alter Metadata Tools -------------------- -Property :attr:`cyclonedx.model.bom.BomMetaData.tools` is an instance of :class:`cyclonedx.model.tool.ToolsRepository`, now. +Property :attr:`cyclonedx.model.bom.BomMetaData.tools` is an instance of :class:`cyclonedx.model.tool.ToolRepository`, now. Therefore, the process of adding new tools needs to be migrated changed. Old: ``my_bom.metadata.tools.add(my_tool)`` @@ -45,7 +45,7 @@ New: ``my_bom.metadata.tools.tools.add(my_tool)`` Alter Vulnerability Tools ------------------------- -Property :attr:`cyclonedx.model.vulnerability.Vulnerability.tools` is an instance of :class:`cyclonedx.model.tool.ToolsRepository`, now. +Property :attr:`cyclonedx.model.vulnerability.Vulnerability.tools` is an instance of :class:`cyclonedx.model.tool.ToolRepository`, now. Therefore, the process of adding new tools needs to be migrated changed. Old: ``my_vulnerability.tools.add(my_tool)`` diff --git a/tests/_data/models.py b/tests/_data/models.py index f0c3dec9..ce87efa6 100644 --- a/tests/_data/models.py +++ b/tests/_data/models.py @@ -89,7 +89,7 @@ from cyclonedx.model.license import DisjunctiveLicense, License, LicenseAcknowledgement, LicenseExpression from cyclonedx.model.release_note import ReleaseNotes from cyclonedx.model.service import Service -from cyclonedx.model.tool import Tool, ToolsRepository +from cyclonedx.model.tool import Tool, ToolRepository from cyclonedx.model.vulnerability import ( BomTarget, BomTargetVersionRange, @@ -495,7 +495,7 @@ def get_bom_with_component_setuptools_with_vulnerability() -> Bom: ], individuals=[get_org_contact_2()] ), - tools=ToolsRepository(tools=( + tools=ToolRepository(tools=( Tool(vendor='CycloneDX', name='cyclonedx-python-lib'), )), analysis=VulnerabilityAnalysis( @@ -1069,7 +1069,7 @@ def get_bom_with_tools() -> Bom: def get_bom_with_tools_with_component_migrate() -> Bom: return _make_bom( metadata=BomMetaData( - tools=ToolsRepository( + tools=ToolRepository( components=( this_component(), Component(name='test-component', bom_ref='test-component'), @@ -1090,7 +1090,7 @@ def get_bom_with_tools_with_component_migrate() -> Bom: def get_bom_with_tools_with_service_migrate() -> Bom: return _make_bom( metadata=BomMetaData( - tools=ToolsRepository( + tools=ToolRepository( services=( Service(name='test-service', bom_ref='test-service'), Service(group='acme', @@ -1107,7 +1107,7 @@ def get_bom_with_tools_with_service_migrate() -> Bom: def get_bom_with_tools_with_component_and_service_migrate() -> Bom: return _make_bom( metadata=BomMetaData( - tools=ToolsRepository( + tools=ToolRepository( components=( this_component(), Component(name='test-component', bom_ref='test-component'), @@ -1134,7 +1134,7 @@ def get_bom_with_tools_with_component_and_service_migrate() -> Bom: def get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate() -> Bom: - tools = ToolsRepository() + tools = ToolRepository() tcomp = tools.components tserv = tools.services ttools = tools.tools diff --git a/tests/test_deserialize_xml.py b/tests/test_deserialize_xml.py index 0bdfaea3..5ebbc64d 100644 --- a/tests/test_deserialize_xml.py +++ b/tests/test_deserialize_xml.py @@ -47,7 +47,7 @@ def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: self.assertBomDeepEqual(expected, bom, fuzzy_deps=get_bom in all_get_bom_funct_with_incomplete_deps) - def test_unexpected_toolsrepository_item(self) -> None: + def test_unexpected_toolrepository_item(self) -> None: with open(join(OWN_DATA_DIRECTORY, 'xml', '1.5', 'invalid-tool.xml')) as input_xml: with self.assertRaisesRegex(CycloneDxDeserializationException, r"^unexpected: $"): diff --git a/tests/test_model_tool_repository.py b/tests/test_model_tool_repository.py index b090e647..fe54c8e6 100644 --- a/tests/test_model_tool_repository.py +++ b/tests/test_model_tool_repository.py @@ -20,16 +20,16 @@ from cyclonedx.model.component import Component from cyclonedx.model.service import Service -from cyclonedx.model.tool import Tool, ToolsRepository +from cyclonedx.model.tool import Tool, ToolRepository class TestModelToolRepository(TestCase): - def test_init(self) -> ToolsRepository: + def test_init(self) -> ToolRepository: c = Component(name='test-component') s = Service(name='test-service') t = Tool(name='test-tool') - tr = ToolsRepository( + tr = ToolRepository( components=(c,), services=(s,), tools=(t,) @@ -45,36 +45,36 @@ def test_filled(self) -> None: self.assertTrue(tr) def test_empty(self) -> None: - tr = ToolsRepository() + tr = ToolRepository() self.assertEqual(0, len(tr)) self.assertFalse(tr) def test_unequal_different_type(self) -> None: - tr = ToolsRepository() + tr = ToolRepository() self.assertFalse(tr == 'other') def test_equal_self(self) -> None: - tr = ToolsRepository() + tr = ToolRepository() tr.tools.add(Tool(name='my-tool')) self.assertTrue(tr == tr) def test_unequal(self) -> None: - tr1 = ToolsRepository() + tr1 = ToolRepository() tr1.components.add(Component(name='my-component')) tr1.services.add(Service(name='my-service')) tr1.tools.add(Tool(name='my-tool')) - tr2 = ToolsRepository() + tr2 = ToolRepository() self.assertFalse(tr1 == tr2) def test_equal(self) -> None: c = Component(name='my-component') s = Service(name='my-service') t = Tool(name='my-tool') - tr1 = ToolsRepository() + tr1 = ToolRepository() tr1.components.add(c) tr1.services.add(s) tr1.tools.add(t) - tr2 = ToolsRepository() + tr2 = ToolRepository() tr2.components.add(c) tr2.services.add(s) tr2.tools.add(t) From 35ccdd1bfec9757457763308d16e1dbf5d9e28e9 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 27 Sep 2024 13:19:35 +0200 Subject: [PATCH 14/20] fix: ToolRepository serialize migrated tools deduplicated (#686) Signed-off-by: Jan Kowalleck --- cyclonedx/model/tool.py | 20 +++-- tests/_data/models.py | 25 ++++++ ...ted_tools_irreversible_migrate-1.0.xml.bin | 4 + ...ted_tools_irreversible_migrate-1.1.xml.bin | 4 + ...ed_tools_irreversible_migrate-1.2.json.bin | 31 ++++++++ ...ted_tools_irreversible_migrate-1.2.xml.bin | 27 +++++++ ...ed_tools_irreversible_migrate-1.3.json.bin | 31 ++++++++ ...ted_tools_irreversible_migrate-1.3.xml.bin | 27 +++++++ ...ed_tools_irreversible_migrate-1.4.json.bin | 65 ++++++++++++++++ ...ted_tools_irreversible_migrate-1.4.xml.bin | 53 +++++++++++++ ...ed_tools_irreversible_migrate-1.5.json.bin | 75 ++++++++++++++++++ ...ted_tools_irreversible_migrate-1.5.xml.bin | 57 ++++++++++++++ ...ed_tools_irreversible_migrate-1.6.json.bin | 75 ++++++++++++++++++ ...ted_tools_irreversible_migrate-1.6.xml.bin | 57 ++++++++++++++ ...nd_tools_irreversible_migrate-1.2.json.bin | 27 +++---- ...and_tools_irreversible_migrate-1.2.xml.bin | 27 +++---- ...nd_tools_irreversible_migrate-1.3.json.bin | 27 +++---- ...and_tools_irreversible_migrate-1.3.xml.bin | 27 +++---- ...nd_tools_irreversible_migrate-1.4.json.bin | 77 +++++-------------- ...and_tools_irreversible_migrate-1.4.xml.bin | 63 ++++----------- ...nd_tools_irreversible_migrate-1.5.json.bin | 77 +++++-------------- ...and_tools_irreversible_migrate-1.5.xml.bin | 63 ++++----------- ...nd_tools_irreversible_migrate-1.6.json.bin | 77 +++++-------------- ...and_tools_irreversible_migrate-1.6.xml.bin | 63 ++++----------- ...component_and_service_migrate-1.2.json.bin | 14 ++-- ..._component_and_service_migrate-1.2.xml.bin | 14 ++-- ...component_and_service_migrate-1.3.json.bin | 14 ++-- ..._component_and_service_migrate-1.3.xml.bin | 14 ++-- ...component_and_service_migrate-1.4.json.bin | 48 ++++++------ ..._component_and_service_migrate-1.4.xml.bin | 34 ++++---- ..._tools_with_component_migrate-1.2.json.bin | 10 +-- ...h_tools_with_component_migrate-1.2.xml.bin | 10 +-- ..._tools_with_component_migrate-1.3.json.bin | 10 +-- ...h_tools_with_component_migrate-1.3.xml.bin | 10 +-- ..._tools_with_component_migrate-1.4.json.bin | 46 +++++------ ...h_tools_with_component_migrate-1.4.xml.bin | 32 ++++---- 36 files changed, 820 insertions(+), 515 deletions(-) create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.0.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.1.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.xml.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.json.bin create mode 100644 tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.xml.bin diff --git a/cyclonedx/model/tool.py b/cyclonedx/model/tool.py index b2b5ff41..bb639bbe 100644 --- a/cyclonedx/model/tool.py +++ b/cyclonedx/model/tool.py @@ -16,7 +16,8 @@ # Copyright (c) OWASP Foundation. All Rights Reserved. -from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Tuple, Type, Union +from itertools import chain +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Type, Union from warnings import warn from xml.etree.ElementTree import Element # nosec B405 @@ -265,12 +266,14 @@ def __hash__(self) -> int: class _ToolRepositoryHelper(BaseHelper): @staticmethod - def __all_as_tools(o: ToolRepository) -> Tuple[Tool, ...]: - return ( - *o.tools, - *map(Tool.from_component, o.components), - *map(Tool.from_service, o.services), - ) + def __all_as_tools(o: ToolRepository) -> 'SortedSet[Tool]': + # use a set here, so the collection gets deduplicated. + # use SortedSet set here, so the order stays reproducible. + return SortedSet(chain( + o.tools, + map(Tool.from_component, o.components), + map(Tool.from_service, o.services), + )) @staticmethod def __supports_components_and_services(view: Any) -> bool: @@ -284,7 +287,8 @@ def json_normalize(cls, o: ToolRepository, *, view: Optional[Type['ViewType']], **__: Any) -> Any: if len(o.tools) > 0 or not cls.__supports_components_and_services(view): - return cls.__all_as_tools(o) or None + ts = cls.__all_as_tools(o) + return tuple(ts) if ts else None elem: Dict[str, Any] = {} if o.components: elem['components'] = tuple(o.components) diff --git a/tests/_data/models.py b/tests/_data/models.py index ce87efa6..72504e83 100644 --- a/tests/_data/models.py +++ b/tests/_data/models.py @@ -1172,6 +1172,31 @@ def get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate return _make_bom(metadata=BomMetaData(tools=tools)) +def get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate() -> Bom: + """on serialization, it is expected that only tools are emitted, and that they are deduplicated""" + tools = ToolRepository() + tcomp = tools.components + tserv = tools.services + ttools = tools.tools + tcomp.update(( + this_component(), + Component(name='test-component'), + Component(type=ComponentType.APPLICATION, + group='acme', + name='other-component'), + )) + tserv.update(( + Service(name='test-service'), + Service(group='acme', + name='other-service'), + )) + ttools.clear() + # duplicate components and services as tools + ttools.update(map(Tool.from_component, tcomp)) + ttools.update(map(Tool.from_service, tserv)) + return _make_bom(metadata=BomMetaData(tools=tools)) + + def get_bom_for_issue_497_urls() -> Bom: """regression test for issue #497 see https://github.com/CycloneDX/cyclonedx-python-lib/issues/497 diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.0.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.0.xml.bin new file mode 100644 index 00000000..acb06612 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.0.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.1.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.1.xml.bin new file mode 100644 index 00000000..55ef5cda --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.1.xml.bin @@ -0,0 +1,4 @@ + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.json.bin new file mode 100644 index 00000000..0ca50ca7 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.json.bin @@ -0,0 +1,31 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "name": "other-component", + "vendor": "acme" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.2b.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.2" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.xml.bin new file mode 100644 index 00000000..e726653d --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.2.xml.bin @@ -0,0 +1,27 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + acme + other-component + + + acme + other-service + + + test-component + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.json.bin new file mode 100644 index 00000000..25fd5c20 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.json.bin @@ -0,0 +1,31 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "name": "other-component", + "vendor": "acme" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.3a.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.3" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.xml.bin new file mode 100644 index 00000000..0dfe7330 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.3.xml.bin @@ -0,0 +1,27 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + acme + other-component + + + acme + other-service + + + test-component + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.json.bin new file mode 100644 index 00000000..16407cc3 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.json.bin @@ -0,0 +1,65 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "name": "other-component", + "vendor": "acme" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "test-service" + } + ] + }, + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.4.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.4" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.xml.bin new file mode 100644 index 00000000..f5504a7a --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.4.xml.bin @@ -0,0 +1,53 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + acme + other-component + + + acme + other-service + + + test-component + + + test-service + + + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.json.bin new file mode 100644 index 00000000..d66bbf23 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.json.bin @@ -0,0 +1,75 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "name": "other-component", + "vendor": "acme" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "test-service" + } + ] + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.xml.bin new file mode 100644 index 00000000..40ae59a7 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.5.xml.bin @@ -0,0 +1,57 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + acme + other-component + + + acme + other-service + + + test-component + + + test-service + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.json.bin new file mode 100644 index 00000000..0cf661c0 --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.json.bin @@ -0,0 +1,75 @@ +{ + "metadata": { + "timestamp": "2023-01-07T13:44:32.312678+00:00", + "tools": [ + { + "externalReferences": [ + { + "type": "build-system", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" + }, + { + "type": "distribution", + "url": "https://pypi.org/project/cyclonedx-python-lib/" + }, + { + "type": "documentation", + "url": "https://cyclonedx-python-library.readthedocs.io/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" + }, + { + "type": "license", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" + }, + { + "type": "release-notes", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" + }, + { + "type": "vcs", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib" + }, + { + "type": "website", + "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" + } + ], + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, + { + "name": "other-component", + "vendor": "acme" + }, + { + "name": "other-service", + "vendor": "acme" + }, + { + "name": "test-component" + }, + { + "name": "test-service" + } + ] + }, + "properties": [ + { + "name": "key1", + "value": "val1" + }, + { + "name": "key2", + "value": "val2" + } + ], + "serialNumber": "urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac", + "version": 1, + "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.6" +} \ No newline at end of file diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.xml.bin new file mode 100644 index 00000000..89d558fb --- /dev/null +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_duplicated_tools_irreversible_migrate-1.6.xml.bin @@ -0,0 +1,57 @@ + + + + 2023-01-07T13:44:32.312678+00:00 + + + CycloneDX + cyclonedx-python-lib + TESTING + + + https://github.com/CycloneDX/cyclonedx-python-lib/actions + + + https://pypi.org/project/cyclonedx-python-lib/ + + + https://cyclonedx-python-library.readthedocs.io/ + + + https://github.com/CycloneDX/cyclonedx-python-lib/issues + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE + + + https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md + + + https://github.com/CycloneDX/cyclonedx-python-lib + + + https://github.com/CycloneDX/cyclonedx-python-lib/#readme + + + + + acme + other-component + + + acme + other-service + + + test-component + + + test-service + + + + + val1 + val2 + + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin index 7aa7bc43..ca5d7d52 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.json.bin @@ -11,40 +11,35 @@ "hashes": [ { "alg": "SHA-256", - "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" } ], - "name": "test-tool-a", - "vendor": "example", - "version": "1.33.7" + "name": "other-component", + "vendor": "acme" }, { - "name": "test-tool-b" + "name": "other-service", + "vendor": "acme" }, { "hashes": [ { "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" } ], - "name": "other-component", - "vendor": "acme" - }, - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" }, { "name": "test-component" }, { - "name": "other-service", - "vendor": "acme" + "name": "test-service" }, { - "name": "test-service" + "name": "test-tool-b" } ] }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin index ff3213ee..42294a3c 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.2.xml.bin @@ -9,37 +9,32 @@ TESTING - example - test-tool-a - 1.33.7 + acme + other-component - adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - test-tool-b + acme + other-service - acme - other-component + example + test-tool-a + 1.33.7 - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 - - CycloneDX - cyclonedx-python-lib - TESTING - test-component - acme - other-service + test-service - test-service + test-tool-b diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin index 258f92e2..eefffde7 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.json.bin @@ -11,40 +11,35 @@ "hashes": [ { "alg": "SHA-256", - "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" } ], - "name": "test-tool-a", - "vendor": "example", - "version": "1.33.7" + "name": "other-component", + "vendor": "acme" }, { - "name": "test-tool-b" + "name": "other-service", + "vendor": "acme" }, { "hashes": [ { "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" } ], - "name": "other-component", - "vendor": "acme" - }, - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" }, { "name": "test-component" }, { - "name": "other-service", - "vendor": "acme" + "name": "test-service" }, { - "name": "test-service" + "name": "test-tool-b" } ] }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin index 014efb51..b734059f 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.3.xml.bin @@ -9,37 +9,32 @@ TESTING - example - test-tool-a - 1.33.7 + acme + other-component - adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - test-tool-b + acme + other-service - acme - other-component + example + test-tool-a + 1.33.7 - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 - - CycloneDX - cyclonedx-python-lib - TESTING - test-component - acme - other-service + test-service - test-service + test-tool-b diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin index 65e7df8b..4d6c2c33 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.json.bin @@ -58,15 +58,11 @@ "hashes": [ { "alg": "SHA-256", - "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" } ], - "name": "test-tool-a", - "vendor": "example", - "version": "1.33.7" - }, - { - "name": "test-tool-b" + "name": "other-component", + "vendor": "acme" }, { "externalReferences": [ @@ -82,57 +78,9 @@ "url": "https://cyclonedx.org" } ], - "hashes": [ - { - "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" - } - ], - "name": "other-component", + "name": "other-service", "vendor": "acme" }, - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - }, - { - "name": "test-component" - }, { "externalReferences": [ { @@ -147,11 +95,24 @@ "url": "https://cyclonedx.org" } ], - "name": "other-service", - "vendor": "acme" + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-component" }, { "name": "test-service" + }, + { + "name": "test-tool-b" } ] }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin index f7f59286..55e694f9 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.4.xml.bin @@ -35,11 +35,10 @@ - example - test-tool-a - 1.33.7 + acme + other-component - adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca @@ -51,15 +50,9 @@ - - test-tool-b - acme - other-component - - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - + other-service https://cyclonedx.org @@ -71,42 +64,12 @@ - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - - test-component - - - acme - other-service + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + https://cyclonedx.org @@ -117,9 +80,15 @@ + + test-component + test-service + + test-tool-b + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin index 003ad286..f0ab4915 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.json.bin @@ -58,15 +58,11 @@ "hashes": [ { "alg": "SHA-256", - "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" } ], - "name": "test-tool-a", - "vendor": "example", - "version": "1.33.7" - }, - { - "name": "test-tool-b" + "name": "other-component", + "vendor": "acme" }, { "externalReferences": [ @@ -82,57 +78,9 @@ "url": "https://cyclonedx.org" } ], - "hashes": [ - { - "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" - } - ], - "name": "other-component", + "name": "other-service", "vendor": "acme" }, - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - }, - { - "name": "test-component" - }, { "externalReferences": [ { @@ -147,11 +95,24 @@ "url": "https://cyclonedx.org" } ], - "name": "other-service", - "vendor": "acme" + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-component" }, { "name": "test-service" + }, + { + "name": "test-tool-b" } ] }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin index 36269a5f..e0cee50f 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.5.xml.bin @@ -35,11 +35,10 @@ - example - test-tool-a - 1.33.7 + acme + other-component - adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca @@ -51,15 +50,9 @@ - - test-tool-b - acme - other-component - - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - + other-service https://cyclonedx.org @@ -71,42 +64,12 @@ - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - - test-component - - - acme - other-service + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + https://cyclonedx.org @@ -117,9 +80,15 @@ + + test-component + test-service + + test-tool-b + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin index 9dcb98b2..d16d0598 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.json.bin @@ -58,15 +58,11 @@ "hashes": [ { "alg": "SHA-256", - "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" } ], - "name": "test-tool-a", - "vendor": "example", - "version": "1.33.7" - }, - { - "name": "test-tool-b" + "name": "other-component", + "vendor": "acme" }, { "externalReferences": [ @@ -82,57 +78,9 @@ "url": "https://cyclonedx.org" } ], - "hashes": [ - { - "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" - } - ], - "name": "other-component", + "name": "other-service", "vendor": "acme" }, - { - "externalReferences": [ - { - "type": "build-system", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions" - }, - { - "type": "distribution", - "url": "https://pypi.org/project/cyclonedx-python-lib/" - }, - { - "type": "documentation", - "url": "https://cyclonedx-python-library.readthedocs.io/" - }, - { - "type": "issue-tracker", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues" - }, - { - "type": "license", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE" - }, - { - "type": "release-notes", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md" - }, - { - "type": "vcs", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib" - }, - { - "type": "website", - "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme" - } - ], - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - }, - { - "name": "test-component" - }, { "externalReferences": [ { @@ -147,11 +95,24 @@ "url": "https://cyclonedx.org" } ], - "name": "other-service", - "vendor": "acme" + "hashes": [ + { + "alg": "SHA-256", + "content": "adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6" + } + ], + "name": "test-tool-a", + "vendor": "example", + "version": "1.33.7" + }, + { + "name": "test-component" }, { "name": "test-service" + }, + { + "name": "test-tool-b" } ] }, diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin index 2cef1e3c..5b560874 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_and_tools_irreversible_migrate-1.6.xml.bin @@ -35,11 +35,10 @@ - example - test-tool-a - 1.33.7 + acme + other-component - adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca @@ -51,15 +50,9 @@ - - test-tool-b - acme - other-component - - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - + other-service https://cyclonedx.org @@ -71,42 +64,12 @@ - CycloneDX - cyclonedx-python-lib - TESTING - - - https://github.com/CycloneDX/cyclonedx-python-lib/actions - - - https://pypi.org/project/cyclonedx-python-lib/ - - - https://cyclonedx-python-library.readthedocs.io/ - - - https://github.com/CycloneDX/cyclonedx-python-lib/issues - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE - - - https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md - - - https://github.com/CycloneDX/cyclonedx-python-lib - - - https://github.com/CycloneDX/cyclonedx-python-lib/#readme - - - - - test-component - - - acme - other-service + example + test-tool-a + 1.33.7 + + adbbbe72c8f023b4a2d96a3978f69d94873ab2fef424e0298287c3368519c1a6 + https://cyclonedx.org @@ -117,9 +80,15 @@ + + test-component + test-service + + test-tool-b + diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin index fe7ad128..ea32ff1c 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.json.bin @@ -2,6 +2,11 @@ "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "hashes": [ { @@ -13,17 +18,12 @@ "vendor": "acme" }, { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" + "name": "other-service", + "vendor": "acme" }, { "name": "test-component" }, - { - "name": "other-service", - "vendor": "acme" - }, { "name": "test-service" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin index 127ca67d..ec74cfb1 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.2.xml.bin @@ -3,6 +3,11 @@ 2023-01-07T13:44:32.312678+00:00 + + CycloneDX + cyclonedx-python-lib + TESTING + acme other-component @@ -11,17 +16,12 @@ - CycloneDX - cyclonedx-python-lib - TESTING + acme + other-service test-component - - acme - other-service - test-service diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin index 9a895165..fbeec8f3 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.json.bin @@ -2,6 +2,11 @@ "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "hashes": [ { @@ -13,17 +18,12 @@ "vendor": "acme" }, { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" + "name": "other-service", + "vendor": "acme" }, { "name": "test-component" }, - { - "name": "other-service", - "vendor": "acme" - }, { "name": "test-service" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin index 179cd42f..514e1f50 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.3.xml.bin @@ -3,6 +3,11 @@ 2023-01-07T13:44:32.312678+00:00 + + CycloneDX + cyclonedx-python-lib + TESTING + acme other-component @@ -11,17 +16,12 @@ - CycloneDX - cyclonedx-python-lib - TESTING + acme + other-service test-component - - acme - other-service - test-service diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin index 0a8265dc..c45daad3 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.json.bin @@ -2,29 +2,6 @@ "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ - { - "externalReferences": [ - { - "comment": "No comment", - "hashes": [ - { - "alg": "SHA-256", - "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" - } - ], - "type": "distribution", - "url": "https://cyclonedx.org" - } - ], - "hashes": [ - { - "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" - } - ], - "name": "other-component", - "vendor": "acme" - }, { "externalReferences": [ { @@ -65,7 +42,27 @@ "version": "TESTING" }, { - "name": "test-component" + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" }, { "externalReferences": [ @@ -84,6 +81,9 @@ "name": "other-service", "vendor": "acme" }, + { + "name": "test-component" + }, { "name": "test-service" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin index 37e5bb55..53304d72 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_and_service_migrate-1.4.xml.bin @@ -3,22 +3,6 @@ 2023-01-07T13:44:32.312678+00:00 - - acme - other-component - - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - - - - https://cyclonedx.org - No comment - - 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b - - - - CycloneDX cyclonedx-python-lib @@ -51,7 +35,20 @@ - test-component + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + acme @@ -66,6 +63,9 @@ + + test-component + test-service diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin index 9bd4cad8..b0ee39ea 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.json.bin @@ -2,6 +2,11 @@ "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "hashes": [ { @@ -12,11 +17,6 @@ "name": "other-component", "vendor": "acme" }, - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - }, { "name": "test-component" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin index 5b72b038..5614334a 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.2.xml.bin @@ -3,6 +3,11 @@ 2023-01-07T13:44:32.312678+00:00 + + CycloneDX + cyclonedx-python-lib + TESTING + acme other-component @@ -10,11 +15,6 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - - CycloneDX - cyclonedx-python-lib - TESTING - test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin index b15f1484..6d5ee915 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.json.bin @@ -2,6 +2,11 @@ "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ + { + "name": "cyclonedx-python-lib", + "vendor": "CycloneDX", + "version": "TESTING" + }, { "hashes": [ { @@ -12,11 +17,6 @@ "name": "other-component", "vendor": "acme" }, - { - "name": "cyclonedx-python-lib", - "vendor": "CycloneDX", - "version": "TESTING" - }, { "name": "test-component" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin index 9b323bdf..469b6dfc 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.3.xml.bin @@ -3,6 +3,11 @@ 2023-01-07T13:44:32.312678+00:00 + + CycloneDX + cyclonedx-python-lib + TESTING + acme other-component @@ -10,11 +15,6 @@ 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - - CycloneDX - cyclonedx-python-lib - TESTING - test-component diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin index 29a67eb3..a56d92b9 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.json.bin @@ -2,29 +2,6 @@ "metadata": { "timestamp": "2023-01-07T13:44:32.312678+00:00", "tools": [ - { - "externalReferences": [ - { - "comment": "No comment", - "hashes": [ - { - "alg": "SHA-256", - "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" - } - ], - "type": "distribution", - "url": "https://cyclonedx.org" - } - ], - "hashes": [ - { - "alg": "SHA-256", - "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" - } - ], - "name": "other-component", - "vendor": "acme" - }, { "externalReferences": [ { @@ -64,6 +41,29 @@ "vendor": "CycloneDX", "version": "TESTING" }, + { + "externalReferences": [ + { + "comment": "No comment", + "hashes": [ + { + "alg": "SHA-256", + "content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b" + } + ], + "type": "distribution", + "url": "https://cyclonedx.org" + } + ], + "hashes": [ + { + "alg": "SHA-256", + "content": "49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca" + } + ], + "name": "other-component", + "vendor": "acme" + }, { "name": "test-component" } diff --git a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin index 64dd255d..d64c901e 100644 --- a/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin +++ b/tests/_data/snapshots/get_bom_with_tools_with_component_migrate-1.4.xml.bin @@ -3,22 +3,6 @@ 2023-01-07T13:44:32.312678+00:00 - - acme - other-component - - 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca - - - - https://cyclonedx.org - No comment - - 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b - - - - CycloneDX cyclonedx-python-lib @@ -50,6 +34,22 @@ + + acme + other-component + + 49b420bd8d8182542a76d4422e0c7890dcc88a3d8ddad04da06366d8c40ac8ca + + + + https://cyclonedx.org + No comment + + 806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b + + + + test-component From 2e16408098a3c649b80fb407d4f43aaa34aee39f Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 27 Sep 2024 13:29:39 +0200 Subject: [PATCH 15/20] docs Signed-off-by: Jan Kowalleck --- docs/upgrading.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/upgrading.rst b/docs/upgrading.rst index 7ad57da7..48b30688 100644 --- a/docs/upgrading.rst +++ b/docs/upgrading.rst @@ -11,8 +11,7 @@ Add this library to Metadata Tools This library no longer adds itself to the metadata. -Downstream users SHOULD add the following to their BOM build processes, -to keep track of used libraries during the build process. +Downstream users SHOULD add the following to their BOM build processes, to keep track of the used library. .. code-block:: python From ce4a149d4b081614b5785c8c987a9a97ae49f059 Mon Sep 17 00:00:00 2001 From: semantic-release Date: Fri, 27 Sep 2024 11:41:19 +0000 Subject: [PATCH 16/20] chore(release): 8.0.0-rc.2 Automatically generated by python-semantic-release Signed-off-by: semantic-release --- CHANGELOG.md | 21 +++++++++++++++++++++ cyclonedx/__init__.py | 2 +- docs/conf.py | 2 +- pyproject.toml | 2 +- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index faff5d22..2d1f6b9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,27 @@ +## v8.0.0-rc.2 (2024-09-27) + +### Fix + +* fix: ToolRepository serialize migrated tools deduplicated (#686) + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`35ccdd1`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/35ccdd1bfec9757457763308d16e1dbf5d9e28e9)) + +### Unknown + +* docs + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`2e16408`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/2e16408098a3c649b80fb407d4f43aaa34aee39f)) + +* rename `ToolsRepository` -> `ToolRepository` (#687) + +Item class of repository is to be called in singular(`Tool`). + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e00af17`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/e00af1739fa6d3933315e96266d96d9b290012ee)) + + ## v8.0.0-rc.1 (2024-09-25) ### Chore diff --git a/cyclonedx/__init__.py b/cyclonedx/__init__.py index 5ef6dff6..16718bf8 100644 --- a/cyclonedx/__init__.py +++ b/cyclonedx/__init__.py @@ -22,4 +22,4 @@ # !! version is managed by semantic_release # do not use typing here, or else `semantic_release` might have issues finding the variable -__version__ = "8.0.0-rc.1" # noqa:Q000 +__version__ = "8.0.0-rc.2" # noqa:Q000 diff --git a/docs/conf.py b/docs/conf.py index a0e893d9..0354d1e5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,7 +20,7 @@ # The full version, including alpha/beta/rc tags # !! version is managed by semantic_release -release = '8.0.0-rc.1' +release = '8.0.0-rc.2' # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index 8f8d4fa0..6d27f1ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "cyclonedx-python-lib" # !! version is managed by semantic_release -version = "8.0.0-rc.1" +version = "8.0.0-rc.2" description = "Python library for CycloneDX" authors = [ "Paul Horton ", From 68c681d46c85230a97c4058de97400f3d93119f5 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 27 Sep 2024 13:36:19 +0200 Subject: [PATCH 17/20] docs Signed-off-by: Jan Kowalleck --- examples/complex_serialize.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/complex_serialize.py b/examples/complex_serialize.py index 6448a2a7..e69d186d 100644 --- a/examples/complex_serialize.py +++ b/examples/complex_serialize.py @@ -45,6 +45,10 @@ bom = Bom() bom.metadata.tools.components.add(cdx_lib_component()) +bom.metadata.tools.components.add(Component( + name='my-own-SBOM-generator', + type=ComponentType.APPLICATION, +)) bom.metadata.component = root_component = Component( name='myApp', From b0260a7d45bc3e099b979001049a8c5a67b97634 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Mon, 7 Oct 2024 16:13:31 +0200 Subject: [PATCH 18/20] docs: rephrase migration paths Signed-off-by: Jan Kowalleck --- docs/upgrading.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/upgrading.rst b/docs/upgrading.rst index 48b30688..ac5f2b58 100644 --- a/docs/upgrading.rst +++ b/docs/upgrading.rst @@ -25,7 +25,7 @@ Import model Tool ----------------- Class `cyclonedx.model.Tool` was moved to :class:`cyclonedx.model.tool.Tool`. -Therefore, the imports need to be migrated: +Therefore, the imports need to be migrated. Old: ``from cyclonedx.model import Tool`` @@ -35,7 +35,7 @@ Alter Metadata Tools -------------------- Property :attr:`cyclonedx.model.bom.BomMetaData.tools` is an instance of :class:`cyclonedx.model.tool.ToolRepository`, now. -Therefore, the process of adding new tools needs to be migrated changed. +Therefore, the process of adding new tools needs to be migrated. Old: ``my_bom.metadata.tools.add(my_tool)`` @@ -45,7 +45,7 @@ Alter Vulnerability Tools ------------------------- Property :attr:`cyclonedx.model.vulnerability.Vulnerability.tools` is an instance of :class:`cyclonedx.model.tool.ToolRepository`, now. -Therefore, the process of adding new tools needs to be migrated changed. +Therefore, the process of adding new tools needs to be migrated. Old: ``my_vulnerability.tools.add(my_tool)`` From 1a24ee6a0853e535465f85c6380971948281ad6e Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Fri, 11 Oct 2024 04:33:00 +0200 Subject: [PATCH 19/20] rework tools xml deserializer (#700) Signed-off-by: Jan Kowalleck --- cyclonedx/model/tool.py | 36 +++++++++++------------- tests/_data/own/xml/1.5/invalid-tool.xml | 8 ------ tests/test_deserialize_xml.py | 11 ++------ 3 files changed, 18 insertions(+), 37 deletions(-) delete mode 100644 tests/_data/own/xml/1.5/invalid-tool.xml diff --git a/cyclonedx/model/tool.py b/cyclonedx/model/tool.py index bb639bbe..4b056519 100644 --- a/cyclonedx/model/tool.py +++ b/cyclonedx/model/tool.py @@ -26,7 +26,6 @@ from sortedcontainers import SortedSet from .._internal.compare import ComparableTuple as _ComparableTuple -from ..exception.serialization import CycloneDxDeserializationException from ..schema import SchemaVersion from ..schema.schema import SchemaVersion1Dot4, SchemaVersion1Dot5, SchemaVersion1Dot6 from . import ExternalReference, HashType, _HashTypeRepositorySerializationHelper @@ -308,7 +307,8 @@ def json_denormalize(cls, o: Union[List[Dict[str, Any]], Dict[str, Any]], services = map(lambda s: Service.from_json( # type:ignore[attr-defined] s), o.get('services', ())) elif isinstance(o, Iterable): - tools = map(lambda t: Tool.from_json(t), o) # type:ignore[attr-defined] + tools = map(lambda t: Tool.from_json( # type:ignore[attr-defined] + t), o) return ToolRepository(components=components, services=services, tools=tools) @classmethod @@ -349,23 +349,19 @@ def xml_denormalize(cls, o: Element, *, prop_info: 'ObjectMetadataLibrary.SerializableProperty', ctx: Type[Any], **kwargs: Any) -> ToolRepository: - tools = [] + ns_map = {'bom': default_ns or ''} + # Do not iterate over `o` and do not check for expected `.tag` of items. + # This check could have been done by schema validators before even deserializing. + tools = None components = None services = None - for e in o: - tag = e.tag if default_ns is None else e.tag.replace(f'{{{default_ns}}}', '') - if tag == 'tool': - tools.append(Tool.from_xml( # type:ignore[attr-defined] - e, default_ns)) - elif tag == 'components': - components = map(lambda s: Component.from_xml( # type:ignore[attr-defined] - s, default_ns), e) - elif tag == 'services': - services = map(lambda s: Service.from_xml( # type:ignore[attr-defined] - s, default_ns), e) - else: - raise CycloneDxDeserializationException(f'unexpected: {e!r}') - return ToolRepository( - tools=tools, - components=components, - services=services) + ts = o.findall('bom:tool', ns_map) + if len(ts) > 0: + tools = map(lambda t: Tool.from_xml( # type:ignore[attr-defined] + t, default_ns), ts) + else: + components = map(lambda c: Component.from_xml( # type:ignore[attr-defined] + c, default_ns), o.iterfind('./bom:components/bom:component', ns_map)) + services = map(lambda s: Service.from_xml( # type:ignore[attr-defined] + s, default_ns), o.iterfind('./bom:services/bom:service', ns_map)) + return ToolRepository(components=components, services=services, tools=tools) diff --git a/tests/_data/own/xml/1.5/invalid-tool.xml b/tests/_data/own/xml/1.5/invalid-tool.xml deleted file mode 100644 index f57259b9..00000000 --- a/tests/_data/own/xml/1.5/invalid-tool.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/tests/test_deserialize_xml.py b/tests/test_deserialize_xml.py index 5ebbc64d..26cc34ec 100644 --- a/tests/test_deserialize_xml.py +++ b/tests/test_deserialize_xml.py @@ -14,17 +14,16 @@ # # SPDX-License-Identifier: Apache-2.0 # Copyright (c) OWASP Foundation. All Rights Reserved. -from os.path import join + from typing import Any, Callable from unittest import TestCase from unittest.mock import patch from ddt import ddt, named_data -from cyclonedx.exception.serialization import CycloneDxDeserializationException from cyclonedx.model.bom import Bom from cyclonedx.schema import OutputFormat, SchemaVersion -from tests import OWN_DATA_DIRECTORY, DeepCompareMixin, SnapshotMixin, mksname +from tests import DeepCompareMixin, SnapshotMixin, mksname from tests._data.models import ( all_get_bom_funct_valid_immut, all_get_bom_funct_valid_reversible_migrate, @@ -46,9 +45,3 @@ def test_prepared(self, get_bom: Callable[[], Bom], *_: Any, **__: Any) -> None: bom = Bom.from_xml(s) self.assertBomDeepEqual(expected, bom, fuzzy_deps=get_bom in all_get_bom_funct_with_incomplete_deps) - - def test_unexpected_toolrepository_item(self) -> None: - with open(join(OWN_DATA_DIRECTORY, 'xml', '1.5', 'invalid-tool.xml')) as input_xml: - with self.assertRaisesRegex(CycloneDxDeserializationException, - r"^unexpected: $"): - Bom.from_xml(input_xml) From fb5547cd84eed795af3d678577db67e9d63c5d41 Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Sat, 12 Oct 2024 14:31:11 +0200 Subject: [PATCH 20/20] docs(chaneglog): omit chore/ci/refactor/style/test/build Signed-off-by: Jan Kowalleck --- CHANGELOG.md | 787 ++++----------------------------------------------- 1 file changed, 48 insertions(+), 739 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d1f6b9c..79dbd60b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,54 @@ # CHANGELOG +## Unreleased + +### Documentation + +* docs(chaneglog): omit chore/ci/refactor/style/test/build (#703) + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a210809`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a210809efb34c2dc895fc0c6d96a3412a9097625)) + +* docs: rephrase migration paths + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`b0260a7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/b0260a7d45bc3e099b979001049a8c5a67b97634)) + +### Unknown + +* Merge remote-tracking branch 'origin/main' into 8.0.0-dev ([`b9a33e6`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/b9a33e614a84ba4a6546a1907b70a0cbfee8cd6f)) + +* rework tools xml deserializer (#700) + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`1a24ee6`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1a24ee6a0853e535465f85c6380971948281ad6e)) + +* Merge remote-tracking branch 'origin/main' into 8.0.0-dev ([`4c57fa1`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/4c57fa156516de07cdd4acd3f3057c0b20d108d7)) + + + +## v7.6.2 (2024-10-07) + +### Documentation + +* docs: fix some doc strings + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`4fa8fc1`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/4fa8fc1b6703ecf6788b72f2d53c6a17e2146cf7)) + +### Fix + +* fix: behavior of and typing for crypto setters with optional values (#694) + +fixes #690 + +--------- + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`d8b20bd`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/d8b20bdc5224ea30cf767f6f3f1a6f8ff2754973)) + +### Unknown + +* docs + +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`68c681d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/68c681d46c85230a97c4058de97400f3d93119f5)) + ## v8.0.0-rc.2 (2024-09-27) @@ -25,22 +73,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e00af17`](https: ## v8.0.0-rc.1 (2024-09-25) -### Chore - -* chore(dev-deps): use `tomli` (#685) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`733ba0e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/733ba0ebefc7d913290ce32d999620332551e50a)) - -* chore: trusted publishing (#682) - -fixes #681 - ---------- - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> -Signed-off-by: semantic-release <semantic-release@bot.local> -Co-authored-by: semantic-release <semantic-release@bot.local> ([`96386cc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/96386cc88a65f85c7040400dd739aecde7f4d184)) - ### Documentation * docs: migrate to v8.0.0 (#684) @@ -141,12 +173,6 @@ correct headers Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`35e00b4`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/35e00b4ee5a9306b9e97b011025409bcbfcef309)) -### Refactor - -* refactor: simplify `.builder.this.this_tool` - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`9940cf9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9940cf95e619d67a2a15ff7e6784513059e6ab5e)) - ### Unknown * Merge branch 'main' into 8.0.0-dev ([`3d1548a`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3d1548abf5db45764a22fcca96493574f96ff693)) @@ -155,14 +181,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`9940cf9`](https: Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`735c800`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/735c8003ce88b0c6efa802ccd806f17d22b4df89)) -* tests: test builder this (#675) - -QA for https://github.com/CycloneDX/cyclonedx-python-lib/pull/649 - ---------- - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e4ad3bc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/e4ad3bce1f97f77d7c3468765e47dd15929cbbcd)) - * Merge branch 'main' into 8.0.0-dev ([`0ec785d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ec785d29abcc215a5a0f6feec9bf16b0994cc92)) @@ -214,25 +232,9 @@ Signed-off-by: Louis Maillard <louis.maillard@savoirfairelinux.com> Signed-off-by: Louis Maillard <louis.maillard@protonmail.com> Co-authored-by: Louis Maillard <louis.maillard@savoirfairelinux.com> ([`b5ebcf8`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/b5ebcf8104faf57030cbc5d8190c78524ab86431)) -### Style - -* style: model args - one per line (#643) - -this should make future PR reviews easier, since adding new args in the -middle will not cause complete code blocks to change, but is just a new -line ... - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`5b74b0f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5b74b0f3f29e6f1a14e1e97294fcc8a0a05f3245)) - ## v7.4.1 (2024-06-12) -### Chore - -* chore: rollback py sem release matcher - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`c33a130`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c33a130378b351ce6f67a563d0a2a70e699e6725)) - ### Documentation * docs: exclude dep bumps from changelog (#627) @@ -290,17 +292,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`b331aeb`](https: ## v7.3.3 (2024-05-06) -### Chore - -* chore: shield_ossf-best-practices subbary - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0d00496`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0d00496ca2191394276d0410cc8e81e5630d674d)) - -* chore(ci): update GH action versions (#606) - - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`6d1bc5b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6d1bc5b5e3c6cecc8681b7a197d07632819dc994)) - ### Fix * fix: json validation allow arbitrary `$schema` value (#613) @@ -331,12 +322,6 @@ Co-authored-by: Paul Horton <paul.horton@owasp.org> ([`8df488c`](https://g ## v7.3.1 (2024-04-22) -### Chore - -* chore: semantic-release git commit/sign valid email address - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`d437c40`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/d437c40caa70071f0fcfe4e3c970370ee32d4aba)) - ### Fix * fix: include all fields of `Component` in `__lt__` function for #586 (#587) @@ -370,42 +355,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`9bf1839`](https: ### Unknown -* tests: add meaningful names to validation tests (#588) - -When packaging cyclonedx-python-lib for a Linux distribution, it’s -pretty common that some JSON validation tests fail. [1] - -Due to the large number of combinations and the fact that these tests -are consecutively numbered, it has been tedious to figure out which -tests are exactly failing and why. This in turn makes it difficult to -decide which tests to disable or report upstream. - -Append meaningful names to validation tests so that instead of e.g.: - - […]::TestJsonValidator::test_validate_no_none_001 - […]::TestJsonValidator::test_validate_no_none_002 - […]::TestJsonValidator::test_validate_no_none_003 - […]::TestJsonValidator::test_validate_no_none_004 - […]::TestJsonValidator::test_validate_no_none_005 - […]::TestJsonValidator::test_validate_no_none_006 - […]::TestJsonValidator::test_validate_no_none_007 - […]::TestJsonValidator::test_validate_no_none_008 - -the tests are named: - - […]::TestJsonValidator::test_validate_no_none_001_valid_component_swid_1_6 - […]::TestJsonValidator::test_validate_no_none_002_valid_machine_learning_considerations_env_1_6 - […]::TestJsonValidator::test_validate_no_none_003_valid_metadata_tool_1_6 - […]::TestJsonValidator::test_validate_no_none_004_valid_patch_1_6 - […]::TestJsonValidator::test_validate_no_none_005_valid_empty_components_1_6 - […]::TestJsonValidator::test_validate_no_none_006_valid_properties_1_6 - […]::TestJsonValidator::test_validate_no_none_007_valid_service_1_6 - […]::TestJsonValidator::test_validate_no_none_008_valid_metadata_author_1_6 - -[1]: https://aur.archlinux.org/cgit/aur.git/diff/PKGBUILD?h=python-cyclonedx-lib&id=9c6ae556874a633a521407a77a9a85bb31da2047 - -Signed-off-by: Claudia <claui@users.noreply.github.com> ([`ae3f79c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ae3f79cbaeecda94948bff6a64ab797c5ddd934a)) - * doc: poor merge resolved Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`a498faa`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a498faaab248d0512bad9e66afbd8fb1d6c42a66)) @@ -652,21 +601,9 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`c1776b7`](https: Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`1fd7fee`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1fd7fee9dec888c10087921f2e5a7a60062fb419)) -### Unknown - -* tests: fetched schema 1.5 test data from spec (#536) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`394cc87`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/394cc87b3247b6f57af4073f5548f1c5eada2b9b)) - ## v6.4.0 (2024-01-22) -### Chore - -* chore: doc flake8 config - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`bd4c078`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bd4c0781139bc93e28438390650ef1c7484597bb)) - ### Documentation * docs: add OpenSSF Best Practices shield (#532) @@ -748,12 +685,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`7dcd166`](https: ## v6.1.0 (2023-12-22) -### Chore - -* chore: update maintainers - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`87c72d7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/87c72d7f589faea67c5f90f041531468f8ae480c)) - ### Feature * feat: add function to map python `hashlib` algorithms to CycloneDX (#519) @@ -862,14 +793,6 @@ Co-authored-by: semantic-release <semantic-release> ([`74865f8`](https://g ## v5.2.0 (2023-12-02) -### Chore - -* chore: mograte dev-dependencies to new poetry layout (#482) - -see https://python-poetry.org/docs/managing-dependencies/#dependency-groups - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a85585c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a85585cf5e445ba5e67a027b4d1161911df6467d)) - ### Documentation * docs: keywaords & funding (#486) @@ -915,12 +838,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a648775`](https: ## v5.0.1 (2023-10-24) -### Chore - -* chore: make `pyproject` parsable by dependabot (#477) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`c4eaaa5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c4eaaa54d98da43d0cdbb19b5f61e06a21f1cc58)) - ### Documentation * docs: revisit project meta (#475) @@ -1067,18 +984,6 @@ Co-authored-by: semantic-release <semantic-release> ([`26b151c`](https://g ## v4.2.3 (2023-10-16) -### Chore - -* chore: Update CONTRIBUTING.md - -Signed-off-by: Jan Kowalleck <jan.kowalleck@owasp.org> ([`0ebaa21`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ebaa216d43a1389362dbdb33f9b49f43a21ab66)) - -### Ci - -* ci: publish coverage report to codacy (#439) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0012a82`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0012a82382f9f33831a80aa0e26c0cbb7fd8984b)) - ### Fix * fix: SPDX-expression-validation internal crashes are cought and handled (#471) @@ -1088,14 +993,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`5fa66a0`](https: ## v4.2.2 (2023-09-14) -### Chore - -* chore: dont lock poetry (#431) - -fixes #430 - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`49b144b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/49b144be519705b03adc510ddcc6b9e4504b7a40)) - ### Documentation * docs: fix shield in README @@ -1133,44 +1030,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e06f9fd`](https: ## v4.1.0 (2023-08-27) -### Chore - -* chore: migrate to python-semantic-release8 (#421) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`14c501c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/14c501c1133c747e1a7dad6df8cad01a03f71a20)) - -* chore: migrate to python-semantic-release8 (#420) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0e35d88`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0e35d88b329bebe05f19748a23a31abf6295c933)) - -* chore: migrate to python-semantic-release8 (#419) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`adf5a36`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/adf5a3668c7c9aa3e0478fd1eabf3b3163fae691)) - -### Ci - -* ci: streamline concurrency for deploy (#406) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`6a7ddfa`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6a7ddfa635995f5dbb849ba5141dcb19a70db0ea)) - -* ci: run examples on prod-deps only (#402) - -* ci: run examples on prod-deps only - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* ci: simplify ci - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - ---------- - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`cf40048`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/cf40048f00d4d9a70306ee414ebf5a1f970c6a70)) - -* ci: run examples (#401) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`058f386`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/058f38609453ec738d9cdaa01cbed1b22066cc77)) - ### Documentation * docs(examples): showcase shorthand dependency management (#403) @@ -1188,59 +1047,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`3585ea9`](https: ## v4.0.1 (2023-06-28) -### Chore - -* chore: CI/QA/Build meintenance (#358) - -* build: streamlined ci and builds - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* chore: upgrade lockfile with poetry1.4 - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* removed extra brace - -Signed-off-by: Paul Horton <paul.horton@owasp.org> - -* fixed long line - -Signed-off-by: Paul Horton <paul.horton@owasp.org> - ---------- - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> -Signed-off-by: Paul Horton <paul.horton@owasp.org> -Co-authored-by: Paul Horton <paul.horton@owasp.org> ([`9779af0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9779af02f5f3cd99fe3e1a088f5547f4991b05b7)) - -* chore: followup of #340 (#360) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`723ae8e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/723ae8e4ddbffc4851c10f64692e7265973ef730)) - -* chore: prevent dev-lowest-lockfile from dependency bumps (#359) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`16870f4`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/16870f4119865b549172cc76588ca1aa7ce00357)) - -* chore: manually craft more accurate CHANGELOG for `4.0.0` - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`32ce3a2`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/32ce3a2ca018b8afcfcb101cad8fac80c547ddc5)) - -### Ci - -* ci: cannot use variables in `uses` - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`2371a1b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/2371a1bdc39c85ee65e43ac8bb22cae1b199385e)) - -* ci: cannot use variables in `uses` - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`aa0eab1`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/aa0eab134c85e7501134f8a417c34e430abc7101)) - -* ci: add concurrency rules (#361) - - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`f65d646`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/f65d64699a48bd6fe540c7503491ce29b1ce38d1)) - ### Documentation * docs(examples): README (#399) @@ -1397,14 +1203,6 @@ Co-authored-by: Jan Kowalleck <jan.kowalleck@gmail.com> Co-authored-by: Hakan Dilek <hakandilek@gmail.com> Co-authored-by: Hakan Dilek <hakandilek@users.noreply.github.com> ([`8fb1b14`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/8fb1b14f5e04e85f21e654c44fa6b9b774867757)) -### Chore - -* chore: package manifest fix link to homepage and documentation (#291) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`f2350b4`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/f2350b4e2b0fb7668ca987e523c53acb6ac6fefb)) - ### Unknown * 4.0.0 @@ -1414,14 +1212,6 @@ Automatically generated by python-semantic-release ([`40fbfda`](https://github.c ## v3.1.5 (2023-01-12) -### Chore - -* chore: do not ship exra LICENSE file (#339) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`b7f1028`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/b7f1028156de8d1e14a391d84d24aa697814902a)) - ### Fix * fix: mak test's schema paths relative to `cyclonedx` package (#338) @@ -1439,12 +1229,6 @@ Automatically generated by python-semantic-release ([`ba603cf`](https://github.c ## v3.1.4 (2023-01-11) -### Chore - -* chore: add Jan Kowalleck as a maintainer - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`7aae26d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/7aae26d09c8c0d6976f10d94c2bfbd4cb8f11a0b)) - ### Fix * fix(tests): include tests in `sdist` builds (#337) @@ -1454,14 +1238,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`7aae26d`](https: Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`936ad7d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/936ad7d0c26d8f98040203d3234ca8f1afbd73ab)) -### Test - -* test: mock `ThisTool.version` for constisten results (#335) - - - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`57a9e5e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/57a9e5e4f5b1eb785984be9d5a35aac60315232d)) - ### Unknown * 3.1.4 @@ -1480,16 +1256,6 @@ Automatically generated by python-semantic-release ([`0b19294`](https://github.c Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`fb3f835`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/fb3f8351881783281f8b7e796098a4c145b35927)) -### Test - -* test: tidy up test beds (#333) - -* test: consolidate imports -* test: recreate all fixtures -* test: docs - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`ab862e7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ab862e79b72b808693e2ec7f6fe1fa3e99cae011)) - ### Unknown * 3.1.3 @@ -1499,19 +1265,6 @@ Automatically generated by python-semantic-release ([`11a420c`](https://github.c ## v3.1.2 (2023-01-06) -### Chore - -* chore: editorconfig - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`8c75b1b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/8c75b1ba63c10929c005ea27ebb6f63afa8b9719)) - -### Ci - -* ci: fix py36 (#320) - - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`cf9f790`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/cf9f790e30f5b430ea1ece8916b54323e1cdb5ee)) - ### Documentation * docs: typo @@ -1537,14 +1290,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`f08a656`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/f08a65649aee750397edc061eb3b8325a69bb4b4)) -### Style - -* style: split joined path segments (#331) - - - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`493104c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/493104c1bccc669ee55b89a2c360268d36f3f1b7)) - ### Unknown * 3.1.2 @@ -1559,12 +1304,6 @@ Signed-off-by: Roland Weber <rolweber@de.ibm.com> ([`007fb96`](https://git ## v3.1.1 (2022-11-28) -### Chore - -* chore: CHANGELOG typos ([`6c0c174`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6c0c1742d2ea19dfc0284785cf9597b43ef05979)) - -* chore: update CHANGELOG to explain jump from `2.7.1` to `3.1.0`. ([`1b8cd12`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1b8cd12b03adb03451ed8ee4562161bd82a18972)) - ### Fix * fix: type hint for `get_component_by_purl` is incorrect @@ -1593,14 +1332,6 @@ Signed-off-by: gruebel <anton.gruebel@gmail.com> ([`735c05e`](https://gith ## v3.1.0 (2022-09-15) -### Chore - -* chore: fix release workflow ([`5863622`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/586362272af3f5fd7a11c1c65502bca31d8813eb)) - -* chore: fix poetry in tox - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`7f8c668`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/7f8c668cf152af554dbc5183f275723cd3d472b2)) - ### Feature * feat: out-factor SPDX compund detection @@ -1615,12 +1346,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`2b69925`](https: Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`033bad2`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/033bad2a50fd2236c712d4621caa57b04fcc2043)) -### Test - -* test: license factories - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`baf83f9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/baf83f9aebe4cdf38341c2432bf8a97e74db5105)) - ### Unknown * 3.1.0 @@ -1631,14 +1356,6 @@ Automatically generated by python-semantic-release ([`e52c174`](https://github.c feat: add license factories to more easily support creation of `License` or `LicenseChoice` from SPDX license strings #304 ([`5ff4494`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5ff4494b0e0d76d04cf8a4245ce0426f0abbd8f9)) -* tests: refactor tests - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`3644f13`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3644f1357ae6b0e1f84e442cd6d9a045fc26fbce)) - -* tests: rebase/fixup poetry lock - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`26817c0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/26817c0089bfd4083ecfb5ce85039c8d75b84606)) - * Merge pull request #301 from CycloneDX/fix-poetry-in-tox chore: fix poetry in tox ([`92aea8d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/92aea8d3413cd2af820cc8160ef48a737951b0ea)) @@ -1654,27 +1371,6 @@ Automatically generated by python-semantic-release ([`69582ff`](https://github.c ## v2.7.1 (2022-08-01) -### Chore - -* chore: manual fix release publication `2.7.1` - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`b569548`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/b56954840ada89c0ba63b4be16e099cd74cc001d)) - -* chore: resolve hang issue with running isort as pre-commit hook - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`fb25b70`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/fb25b70c0a3b5a5855332e1c5371219b97beb181)) - -* chore: re-added `isort` to pre-commit hooks -ran isort - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`051e543`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/051e5436fc5d317286d0d25c8987cf236d20af08)) - -### Ci - -* ci: change pinned version of python-semantic-release as preventing automated releases - -Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`6e12be7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6e12be70fb2a71de60428155b4d0ae82fa43ef2d)) - ### Fix * fix: pinned `mypy <= 0.961` due to #278 @@ -1801,16 +1497,6 @@ Move `types-setuptools` and `types-toml` to dev-dependencies (#226) Signed-off-by: Adam Johnson <me@adamj.eu> ([`0e2376b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0e2376baade068ae0490b05550837d104e9abfa4)) -### Ci - -* ci: fix run with lowest compat dependencies (#240) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a4596c8`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a4596c8023553a15e33b45e84142e4ef27591b6a)) - -* ci: pin GH-action `semantic-release` to v7.28.1 (#234) - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`91e1297`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/91e12971bf90fffb5b440b2acc74a3f8614932bd)) - ### Documentation * docs: fix typo "This is out" -> "This is our" @@ -1825,14 +1511,6 @@ Signed-off-by: Rodney Richardson <rodney.richardson@cambridgeconsultants.com& Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`8a1c404`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/8a1c4043f502292b32c4ab36a8618cf3f67ac8df)) -### Test - -* test: tests calculate versions if needed - -Don't hardcode component version in test (#229) - -Signed-off-by: Rodney Richardson <rodney.richardson@cambridgeconsultants.com> ([`7b3ce65`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/7b3ce65f92ff6009a1e29d4938eac5ea664b2538)) - ### Unknown * 2.5.0 @@ -2013,12 +1691,6 @@ Signed-off-by: Paul Horton <paul.horton@owasp.org> ([`f487c4a`](https://gi ## v2.2.0 (2022-04-12) -### Ci - -* ci: introduce `timeout-minutes` and drop `dependabot` branches for CI #206 - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`e5b426f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/e5b426f0287e75f8c9c2b0937cebaab13dc069a5)) - ### Feature * feat: Bump XML schemas to latest fix version for 1.2-1.4 - see: @@ -2054,10 +1726,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a9c3e77`](https: ## v2.1.1 (2022-04-05) -### Chore - -* chore: shield icons in README ([`87c490e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/87c490e883f1c68a96233ca6d83e641481fb83a4)) - ### Fix * fix: prevent error if `version` not set @@ -2077,151 +1745,6 @@ fix: `version` being optional in JSON output can raise error ([`6f7e09a`](https: ## v2.1.0 (2022-03-28) -### Chore - -* chore: added autopep8 to pre-commit and clarified command in CONTRIBUTING for performance - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`5dafb1c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5dafb1c88208caccaf82fc5abea41df0d295d5a4)) - -* chore: first pass pre-commit config - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`fd6ab7a`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/fd6ab7ab2136c4afd8169fc97e0ee6ecbbef56a7)) - -* chore: added documentation to CONTRIBUTING guidelines - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`67cefe1`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/67cefe1e5f9eb3bdb1d07c29e1ea351937c15bc0)) - -* chore: dependabot prefix `chore`, not eco-system ([`c96cea4`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c96cea47f855add5edf2707305ef7b671da7db39)) - -* chore: make isort and flake8-isort available - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`b211de5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/b211de50b92393e653b9a9f907c66a81b016d870)) - -* chore: poetry(deps): bump pyparsing from 3.0.6 to 3.0.7 (#140) - -Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.0.6 to 3.0.7. -- [Release notes](https://github.com/pyparsing/pyparsing/releases) -- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES) -- [Commits](https://github.com/pyparsing/pyparsing/compare/pyparsing_3.0.6...pyparsing_3.0.7) - ---- -updated-dependencies: -- dependency-name: pyparsing - dependency-type: indirect - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`1bdb798`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1bdb7987a86af967d5a883626346f217a243bfda)) - -* chore: poetry(deps): bump types-setuptools from 57.4.7 to 57.4.9 (#168) - -Bumps [types-setuptools](https://github.com/python/typeshed) from 57.4.7 to 57.4.9. -- [Release notes](https://github.com/python/typeshed/releases) -- [Commits](https://github.com/python/typeshed/commits) - ---- -updated-dependencies: -- dependency-name: types-setuptools - dependency-type: direct:production - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`48c3f99`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/48c3f997abf2560b648d85b907c001879e063551)) - -* chore: poetry(deps): bump filelock from 3.4.0 to 3.4.1 (#116) - -Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.4.0 to 3.4.1. -- [Release notes](https://github.com/tox-dev/py-filelock/releases) -- [Changelog](https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst) -- [Commits](https://github.com/tox-dev/py-filelock/compare/3.4.0...3.4.1) - ---- -updated-dependencies: -- dependency-name: filelock - dependency-type: indirect - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`17f1a5f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/17f1a5f8555675913ea09318848dd28ce96d1c3c)) - -* chore: poetry(deps): bump attrs from 21.2.0 to 21.4.0 (#113) - -Bumps [attrs](https://github.com/python-attrs/attrs) from 21.2.0 to 21.4.0. -- [Release notes](https://github.com/python-attrs/attrs/releases) -- [Changelog](https://github.com/python-attrs/attrs/blob/main/CHANGELOG.rst) -- [Commits](https://github.com/python-attrs/attrs/compare/21.2.0...21.4.0) - ---- -updated-dependencies: -- dependency-name: attrs - dependency-type: indirect - update-type: version-update:semver-minor -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`3c39ae5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3c39ae5f7435b4e0240e674e47283ac3beb9f2b8)) - -* chore: poetry(deps): bump typed-ast from 1.5.1 to 1.5.2 (#144) - -Bumps [typed-ast](https://github.com/python/typed_ast) from 1.5.1 to 1.5.2. -- [Release notes](https://github.com/python/typed_ast/releases) -- [Changelog](https://github.com/python/typed_ast/blob/master/release_process.md) -- [Commits](https://github.com/python/typed_ast/compare/1.5.1...1.5.2) - ---- -updated-dependencies: -- dependency-name: typed-ast - dependency-type: indirect - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`ac5809e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ac5809e93a3a5c54b04c75bd959216a4b21095ff)) - -* chore: poetry(deps): bump packageurl-python from 0.9.6 to 0.9.9 (#177) - -Bumps [packageurl-python](https://github.com/package-url/packageurl-python) from 0.9.6 to 0.9.9. -- [Release notes](https://github.com/package-url/packageurl-python/releases) -- [Changelog](https://github.com/package-url/packageurl-python/blob/main/CHANGELOG.rst) -- [Commits](https://github.com/package-url/packageurl-python/compare/v0.9.6...v0.9.9) - ---- -updated-dependencies: -- dependency-name: packageurl-python - dependency-type: direct:production - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`4bfba14`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/4bfba14bfacca773fd2e949e327f94b794fdef0b)) - -* chore: poetry(deps): bump virtualenv from 20.13.1 to 20.13.2 (#181) - -Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.13.1 to 20.13.2. -- [Release notes](https://github.com/pypa/virtualenv/releases) -- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst) -- [Commits](https://github.com/pypa/virtualenv/compare/20.13.1...20.13.2) - ---- -updated-dependencies: -- dependency-name: virtualenv - dependency-type: indirect - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`20e3368`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/20e3368f35e28187f41ac0652384ea2104d45e35)) - ### Feature * feat: output errors are verbose @@ -2234,12 +1757,6 @@ Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`bfe8fb1`](https: Signed-off-by: Paul Horton <phorton@sonatype.com> ([`ba0c82f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ba0c82fbde7ba47502c45caf4fa89e9e4381f482)) -### Style - -* style: sorted all imports - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`4780a84`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/4780a84979d213d6ce6d9527945d532cbd6a8ceb)) - ### Unknown * 2.1.0 @@ -2280,47 +1797,6 @@ BREAKING CHANGE: Added `BomRef` data type Signed-off-by: Paul Horton <phorton@sonatype.com> ([`da3f0ca`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/da3f0ca3e8b90b37301c03f889eb089bca649b09)) -### Chore - -* chore: poetry(deps): bump virtualenv from 20.13.0 to 20.13.1 (#167) - -Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.13.0 to 20.13.1. -- [Release notes](https://github.com/pypa/virtualenv/releases) -- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst) -- [Commits](https://github.com/pypa/virtualenv/compare/20.13.0...20.13.1) - ---- -updated-dependencies: -- dependency-name: virtualenv - dependency-type: indirect - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`9e80258`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9e802582bd9b9bdd0e1e91a0af551d3f2190fb5e)) - -* chore: poetry(deps): bump types-toml from 0.10.3 to 0.10.4 (#166) - -Bumps [types-toml](https://github.com/python/typeshed) from 0.10.3 to 0.10.4. -- [Release notes](https://github.com/python/typeshed/releases) -- [Commits](https://github.com/python/typeshed/commits) - ---- -updated-dependencies: -- dependency-name: types-toml - dependency-type: direct:production - update-type: version-update:semver-patch -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`02449f6`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/02449f6102e49f9e2425ab4e5b050f38832e6ba9)) - -* chore: bump dependencies - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`6c280e7`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6c280e7794466ad9b6f1ce5eb985035bea21eaaa)) - ### Feature * feat: completed work on #155 (#172) @@ -2383,16 +1859,6 @@ Signed-off-by: Paul Horton <phorton@sonatype.com> ([`70d25c8`](https://git Signed-off-by: Paul Horton <phorton@sonatype.com> ([`15b081b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/15b081bd1891566dbe00e18a8b21d3be87154f72)) -### Test - -* test: refactor to work on PY < 3.10 - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`0ce5de6`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ce5de6a223e10161a8b864d0115e95d849d5e87)) - -* test: refactored fixtures for tests which has uncovered #150, #151 and #152 - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`df43a9b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/df43a9bff4b8360234bf50058ded82e44e2df082)) - ### Unknown * 2.0.0 @@ -2683,57 +2149,6 @@ Automatically generated by python-semantic-release ([`d4007bd`](https://github.c ## v1.0.0 (2022-01-13) -### Chore - -* chore: attempt to produce manual GitHub action to release a RC version - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`3058afc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3058afc42fa632be6a0efb9ef509612d8833e07b)) - -* chore: attempt to produce manual GitHub action to release a RC version - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`6799e63`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6799e632d2eb1d3cee0042c2350477a74bcdce83)) - -* chore: disable poetry-cache in gh-workflow (#112) - -closes #91 - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`42f7952`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/42f7952fad512c84fd0a4d08c564af43d8bc5c87)) - -* chore: removed pdoc3 from main dev dependencies as now covered in docs/requirements.txt - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`89d8382`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/89d8382dc0e8bedb129ca0bbbd95922ea104f95c)) - -* chore: isolate dependencies for building documentation (#107) - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`f2403f6`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/f2403f66c21e55de552b10c473332a1ea72b25bf)) - -* chore: bump `flake8` to v4 and add `autopep8` (#93) - -* chore: bump `flake8` to v4 and add `autopep8` - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* chore: make pep8 known in the contrib docs - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`6553dbf`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6553dbfefcf6865b28b72771a9a08f1387dbdf11)) - -* chore: poetry(deps-dev): bump mypy from 0.910 to 0.920 (#103) - -Bumps [mypy](https://github.com/python/mypy) from 0.910 to 0.920. -- [Release notes](https://github.com/python/mypy/releases) -- [Commits](https://github.com/python/mypy/compare/v0.910...v0.920) - ---- -updated-dependencies: -- dependency-name: mypy - dependency-type: direct:development - update-type: version-update:semver-minor -... - -Signed-off-by: dependabot[bot] <support@github.com> - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([`fdd20ca`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/fdd20ca4be71be78b578f756f46b44d829a76212)) - ### Unknown * Manually generated release ([`3509fb6`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3509fb643af12cc4393309a006c6bbe63b1bd674)) @@ -2802,16 +2217,6 @@ Automatically generated by python-semantic-release ([`54b9f74`](https://github.c ## v0.12.1 (2021-12-09) -### Chore - -* chore: reordered deps & updated poetry lock - -Merge pull request #90 from CycloneDX/update-poetry-lock ([`d8c7ee2`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/d8c7ee2915c23d22bc49c9d562a052783ea7ea87)) - -* chore: updated poetry lock - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`91b97be`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/91b97bedfa0a22598e9f4e8731bcf7293bc7d57d)) - ### Fix * fix: further loosened dependency definitions @@ -2831,64 +2236,6 @@ Automatically generated by python-semantic-release ([`43fc36e`](https://github.c ## v0.12.0 (2021-12-09) -### Ci - -* ci: update to run tox for both our favoured versions of dependencies and lowest supported versions - -* add tox env for minimal required dependencies - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* try to fix `TypedDict` typing - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* fix: typing definitions to be PY 3.6 compatible - -Signed-off-by: Paul Horton <phorton@sonatype.com> - -* fix: typing definitions to be PY 3.6 compatible - -Signed-off-by: Paul Horton <phorton@sonatype.com> - -* straigtened up `sys.version_info` constraints/code-branches - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* removed unused type ignores - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* try to fix type variants - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* try to fix type variants - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* typing for py3.6 - -Signed-off-by: Paul Horton <phorton@sonatype.com> - -* fixed invalid unittest - -Signed-off-by: Paul Horton <phorton@sonatype.com> - -* typing for py3.6 - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* mypy silence `warn_unused_ignores` - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -* mypy in tox for lowest version is pinned - -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> - -Co-authored-by: Paul Horton <phorton@sonatype.com> ([`07ebedc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/07ebedcbab1554970496780bb8bf167f6fe4ad5c)) - ### Feature * feat: loosed dependency versions to make this library more consumable @@ -3419,16 +2766,6 @@ Automatically generated by python-semantic-release ([`79538e9`](https://github.c ## v0.10.1 (2021-10-21) -### Ci - -* ci: disable git automatic line ending conversions - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`350c097`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/350c097d1dcad367913f65d1026288777e5e4ba4)) - -* ci: update to run on OSX and Windows - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`6588c4c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6588c4cc37351ac006eded165284f793f9f98bc2)) - ### Fix * fix: ensure output to file is UTF-8 @@ -3644,12 +2981,6 @@ Automatically generated by python-semantic-release ([`e68fbc2`](https://github.c ## v0.6.1 (2021-10-11) -### Ci - -* ci: update to deploy to pypi.org upon PR merge - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`04e86b5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/04e86b54d71bf801511c728db949d622ae0c6fdc)) - ### Fix * fix: better methods for checking if a Component is already represented in the BOM, and the ability to get the existing instance @@ -3785,16 +3116,6 @@ Signed-off-by: Paul Horton <phorton@sonatype.com> ([`0411826`](https://git Signed-off-by: Paul Horton <phorton@sonatype.com> ([`7f318cb`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/7f318cb495ac1754029088cae1ef2574c58da2e5)) -### Test - -* test: additional tests around issue #8 which confirm level of support currently - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`bc54bed`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bc54bed79cbeb16dbfcb8c6aaea88d906fd8538a)) - -* test: additional tests added to validate comments in requirements.txt and that hashes within requirements.txt are not currently supported - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`3a27d54`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3a27d546d56d5c5c27f77af716a5545723794294)) - ### Unknown * 0.4.1 @@ -3855,18 +3176,6 @@ Automatically generated by python-semantic-release ([`f441413`](https://github.c Signed-off-by: Paul Horton <phorton@sonatype.com> ([`d496695`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/d4966951ab6c0229171cfe97723421bb0302c4fc)) -### Refactor - -* refactor: moved Vulnerabilities to be nested inside the Component - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`8b4034d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/8b4034da82a0c5e861161849ddb32c3806adfa0f)) - -### Test - -* test: added test to confirm no Vulnerabilities are output for Schema Version 1.0 (not supported by schema) - -Signed-off-by: Paul Horton <phorton@sonatype.com> ([`d5aabcf`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/d5aabcff8d46f635b3b74821d70fc279263c420c)) - ### Unknown * 0.3.0