sbom-tools 0.2.0

Semantic SBOM diff and analysis tool
Documentation
from __future__ import annotations

import json
from pathlib import Path

from sbomtools import diff_json, parse_string_json

FIXTURE = Path(__file__).parent.parent / "fixtures" / "minimal.cdx.json"


def test_diff_reports_component_version_change(native_library: None) -> None:
    old_content = FIXTURE.read_text(encoding="utf-8")
    new_content = old_content.replace('"version": "4.17.21"', '"version": "4.18.0"')
    old_payload = parse_string_json(old_content)
    new_payload = parse_string_json(new_content)

    result = diff_json(json.dumps(old_payload), json.dumps(new_payload))

    assert isinstance(result, dict)
    assert result["summary"]["total_changes"] > 0