Skip to content

Commit 950c2c4

Browse files
committed
test: assert structural parity against real FOSSA fixtures
1 parent f871cbf commit 950c2c4

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

tests/unit/test_fossa_parity.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,62 @@ def test_sbom_fixture_top_level_shape():
4545
"licenses",
4646
"project",
4747
}
48+
49+
50+
def test_our_analyze_matches_fossa_analyze_top_level_keys():
51+
"""Our build_fossa_report_payload top-level keyset matches the real fixture."""
52+
from socketsecurity.fossa_compat import build_fossa_report_payload
53+
from socketsecurity.config import CliConfig
54+
from socketsecurity.core.classes import Diff
55+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
56+
ours = build_fossa_report_payload(Diff(), config)
57+
theirs = _load("fossa-analyze-empty.json")
58+
assert set(ours.keys()) == set(theirs.keys())
59+
60+
61+
def test_our_analyze_project_keys_match():
62+
from socketsecurity.fossa_compat import build_fossa_report_payload
63+
from socketsecurity.config import CliConfig
64+
from socketsecurity.core.classes import Diff
65+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
66+
ours = build_fossa_report_payload(Diff(), config)
67+
theirs = _load("fossa-analyze-empty.json")
68+
assert set(ours["project"].keys()) == set(theirs["project"].keys())
69+
70+
71+
def test_our_sbom_matches_fossa_sbom_top_level_keys():
72+
from socketsecurity.fossa_compat import build_fossa_attribution_payload
73+
from socketsecurity.config import CliConfig
74+
from socketsecurity.core.classes import Diff
75+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
76+
ours = build_fossa_attribution_payload(Diff(), config)
77+
theirs = _load("fossa-sbom-populated.json")
78+
assert set(ours.keys()) == set(theirs.keys())
79+
80+
81+
def test_our_sbom_project_keys_match():
82+
from socketsecurity.fossa_compat import build_fossa_attribution_payload
83+
from socketsecurity.config import CliConfig
84+
from socketsecurity.core.classes import Diff
85+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
86+
ours = build_fossa_attribution_payload(Diff(), config)
87+
theirs = _load("fossa-sbom-populated.json")
88+
assert set(ours["project"].keys()) == set(theirs["project"].keys())
89+
90+
91+
def test_our_sbom_dependency_keys_match_when_populated():
92+
"""When we have at least one dependency, its keyset matches a real FOSSA dependency entry."""
93+
from socketsecurity.fossa_compat import build_fossa_attribution_payload
94+
from socketsecurity.config import CliConfig
95+
from socketsecurity.core.classes import Diff, Package
96+
pkg = Package(
97+
type="pypi", name="x", version="1.0", id="pid",
98+
score={}, alerts=[], direct=True,
99+
)
100+
diff = Diff(packages={"pid": pkg})
101+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
102+
ours = build_fossa_attribution_payload(diff, config)
103+
theirs = _load("fossa-sbom-populated.json")
104+
our_dep = ours["directDependencies"][0]
105+
their_dep = theirs["directDependencies"][0]
106+
assert set(our_dep.keys()) == set(their_dep.keys())

0 commit comments

Comments
 (0)