Skip to content

Commit

Permalink
feat: add detailed test fixtures related to bom.definitions
Browse files Browse the repository at this point in the history
Signed-off-by: Hakan Dilek <hakandilek@gmail.com>
  • Loading branch information
hakandilek committed Oct 22, 2024
1 parent f4f5e8c commit 18f2630
Show file tree
Hide file tree
Showing 13 changed files with 379 additions and 1 deletion.
48 changes: 47 additions & 1 deletion tests/_data/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
RelatedCryptoMaterialState,
RelatedCryptoMaterialType,
)
from cyclonedx.model.definition import Definitions, Standard
from cyclonedx.model.definition import CreId, Definitions, Level, Requirement, Standard
from cyclonedx.model.dependency import Dependency
from cyclonedx.model.impact_analysis import (
ImpactAnalysisAffectedStatus,
Expand Down Expand Up @@ -1303,6 +1303,51 @@ def get_bom_with_definitions_standards() -> Bom:
)


def get_bom_with_definitions_and_detailed_standards() -> Bom:
"""
Returns a BOM with definitions and multiple detailed standards including requirements and levels.
"""
return _make_bom(
definitions=Definitions(
standards=[
Standard(name='Some Standard', version='1.2.3', description='Some description', bom_ref='some-standard',
owner='Some Owner', external_references=[get_external_reference_1()],
requirements=[
Requirement(identifier='REQ-1', title='Requirement 1', text='some requirement text',
bom_ref='req-1', descriptions=['Requirement 1 described here', 'and here'],
open_cre=[CreId('CRE:1-2')], properties=[Property(name='key1', value='val1')]
),
Requirement(identifier='REQ-2', title='Requirement 2', text='some requirement text',
bom_ref='req-2', descriptions=['Requirement 2 described here'],
open_cre=[CreId('CRE:1-2'), CreId('CRE:3-4')],
properties=[Property(name='key2', value='val2')],
parent='req-1'
),
],
levels=[
Level(identifier='LVL-1', title='Level 1', description='Level 1 description',
bom_ref='lvl-1', ),
Level(identifier='LVL-2', title='Level 2', description='Level 2 description',
bom_ref='lvl-2', )
]),
Standard(name='Other Standard', version='1.0.0', description='Other description',
bom_ref='other-standard', owner='Other Owner',
external_references=[get_external_reference_2()],
requirements=[
Requirement(identifier='REQ-3', title='Requirement 3', text='some requirement text',
bom_ref='req-3', descriptions=['Requirement 3 described here', 'and here'],
open_cre=[CreId('CRE:5-6'), CreId('CRE:7-8')],
properties=[Property(name='key3', value='val3')]
)
],
levels=[
Level(identifier='LVL-3', title='Level 3', description='Level 3 description',
bom_ref='lvl-3', )
])
]
))


# ---


Expand Down Expand Up @@ -1350,4 +1395,5 @@ def get_bom_with_definitions_standards() -> Bom:
get_bom_for_issue_630_empty_property,
get_bom_with_lifecycles,
get_bom_with_definitions_standards,
get_bom_with_definitions_and_detailed_standards,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" ?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.0" version="1">
<components/>
</bom>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" ?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.1" serialNumber="urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac" version="1">
<components/>
</bom>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"metadata": {
"timestamp": "2023-01-07T13:44:32.312678+00:00"
},
"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"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" serialNumber="urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac" version="1">
<metadata>
<timestamp>2023-01-07T13:44:32.312678+00:00</timestamp>
</metadata>
</bom>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"metadata": {
"timestamp": "2023-01-07T13:44:32.312678+00:00"
},
"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"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.3" serialNumber="urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac" version="1">
<metadata>
<timestamp>2023-01-07T13:44:32.312678+00:00</timestamp>
</metadata>
</bom>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"metadata": {
"timestamp": "2023-01-07T13:44:32.312678+00:00"
},
"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"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.4" serialNumber="urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac" version="1">
<metadata>
<timestamp>2023-01-07T13:44:32.312678+00:00</timestamp>
</metadata>
</bom>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"metadata": {
"timestamp": "2023-01-07T13:44:32.312678+00:00"
},
"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"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.5" serialNumber="urn:uuid:1441d33a-e0fc-45b5-af3b-61ee52a88bac" version="1">
<metadata>
<timestamp>2023-01-07T13:44:32.312678+00:00</timestamp>
</metadata>
<properties>
<property name="key1">val1</property>
<property name="key2">val2</property>
</properties>
</bom>
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
{
"definitions": {
"standards": [
{
"bom-ref": "other-standard",
"description": "Other description",
"externalReferences": [
{
"type": "website",
"url": "https://cyclonedx.org"
}
],
"levels": [
{
"bom-ref": "lvl-3",
"description": "Level 3 description",
"identifier": "LVL-3",
"title": "Level 3"
}
],
"name": "Other Standard",
"owner": "Other Owner",
"requirements": [
{
"bom-ref": "req-3",
"descriptions": [
"Requirement 3 described here",
"and here"
],
"identifier": "REQ-3",
"openCre": [
"CRE:5-6",
"CRE:7-8"
],
"properties": [
{
"name": "key3",
"value": "val3"
}
],
"text": "some requirement text",
"title": "Requirement 3"
}
],
"version": "1.0.0"
},
{
"bom-ref": "some-standard",
"description": "Some description",
"externalReferences": [
{
"comment": "No comment",
"hashes": [
{
"alg": "SHA-256",
"content": "806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"
}
],
"type": "distribution",
"url": "https://cyclonedx.org"
}
],
"levels": [
{
"bom-ref": "lvl-1",
"description": "Level 1 description",
"identifier": "LVL-1",
"title": "Level 1"
},
{
"bom-ref": "lvl-2",
"description": "Level 2 description",
"identifier": "LVL-2",
"title": "Level 2"
}
],
"name": "Some Standard",
"owner": "Some Owner",
"requirements": [
{
"bom-ref": "req-1",
"descriptions": [
"Requirement 1 described here",
"and here"
],
"identifier": "REQ-1",
"openCre": [
"CRE:1-2"
],
"properties": [
{
"name": "key1",
"value": "val1"
}
],
"text": "some requirement text",
"title": "Requirement 1"
},
{
"bom-ref": "req-2",
"descriptions": [
"Requirement 2 described here"
],
"identifier": "REQ-2",
"openCre": [
"CRE:1-2",
"CRE:3-4"
],
"parent": "req-1",
"properties": [
{
"name": "key2",
"value": "val2"
}
],
"text": "some requirement text",
"title": "Requirement 2"
}
],
"version": "1.2.3"
}
]
},
"metadata": {
"timestamp": "2023-01-07T13:44:32.312678+00:00"
},
"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"
}
Loading

0 comments on commit 18f2630

Please sign in to comment.