From 9ba4b8e5d255c8dba51df214786328bfa700291c Mon Sep 17 00:00:00 2001 From: Jan Kowalleck Date: Tue, 20 Aug 2024 09:37:23 +0200 Subject: [PATCH 01/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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/16] 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 ",