Skip to content

Commit 2101a68

Browse files
committed
chore(tests): add test for Pre-Depends SBOM generation
Add a test that checks if Pre-Depends dependencies are included in generated SBOMs. Signed-off-by: Christoph Steiger <christoph.steiger@siemens.com>
1 parent a3ec009 commit 2101a68

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Package: test-pre-depends
2+
Status: install ok installed
3+
Priority: optional
4+
Installed-Size: 1234
5+
Maintainer: Siemens <siemens@example.com>
6+
Architecture: amd64
7+
Version: 1.0.0-1
8+
Depends: depends (>= 1.2.3)
9+
Pre-Depends: pre-depends (>= 2.3.4)
10+
Description: Test Package for Pre-Depends
11+
12+
Package: pre-depends
13+
Status: install ok installed
14+
Priority: optional
15+
Installed-Size: 1234
16+
Maintainer: Siemens <siemens@example.com>
17+
Architecture: amd64
18+
Version: 2.3.4
19+
Description: Pre-Depends Package
20+
21+
Package: depends
22+
Status: install ok installed
23+
Priority: optional
24+
Installed-Size: 1234
25+
Maintainer: Siemens <siemens@example.com>
26+
Architecture: amd64
27+
Version: 1.2.3
28+
Description: Depends Package

tests/test_generation.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,3 +497,37 @@ def test_virtual_package(tmpdir, sbom_generator):
497497
found = True
498498
break
499499
assert found
500+
501+
502+
def test_pre_depends(tmpdir, sbom_generator):
503+
_spdx_tools = pytest.importorskip("spdx_tools")
504+
_cyclonedx = pytest.importorskip("cyclonedx")
505+
506+
dbom = sbom_generator("tests/root/pre-depends")
507+
outdir = Path(tmpdir)
508+
dbom.generate(str(outdir / "sbom"), validate=True)
509+
with open(outdir / "sbom.spdx.json") as file:
510+
spdx_json = json.loads(file.read())
511+
relationships = spdx_json["relationships"]
512+
assert {
513+
"spdxElementId": "SPDXRef-test-pre-depends-amd64",
514+
"relatedSpdxElement": "SPDXRef-pre-depends-amd64",
515+
"relationshipType": "DEPENDS_ON",
516+
} in relationships
517+
assert {
518+
"spdxElementId": "SPDXRef-test-pre-depends-amd64",
519+
"relatedSpdxElement": "SPDXRef-depends-amd64",
520+
"relationshipType": "DEPENDS_ON",
521+
} in relationships
522+
523+
with open(outdir / "sbom.cdx.json") as file:
524+
spdx_json = json.loads(file.read())
525+
dependencies = spdx_json["dependencies"]
526+
assert {
527+
"dependsOn": [
528+
"pkg:deb/debian/depends@1.2.3?arch=amd64",
529+
"pkg:deb/debian/pre-depends@2.3.4?arch=amd64",
530+
"pkg:deb/debian/test-pre-depends@1.0.0-1?arch=source",
531+
],
532+
"ref": "pkg:deb/debian/test-pre-depends@1.0.0-1?arch=amd64",
533+
} in dependencies

0 commit comments

Comments
 (0)