From bcffc20d198de34624fb29b8b5d5e3f600e2141b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2025 20:13:57 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/cmd/test_merge.py | 260 +++++++++++++++++++++------------------- 1 file changed, 138 insertions(+), 122 deletions(-) diff --git a/tests/cmd/test_merge.py b/tests/cmd/test_merge.py index e86992e8..d69c04e0 100644 --- a/tests/cmd/test_merge.py +++ b/tests/cmd/test_merge.py @@ -68,8 +68,10 @@ ] }""" + def get_sbom1(): - return SBOM.from_json(sbom1_json) + return SBOM.from_json(sbom1_json) + sbom2_json = """{ "software": [ @@ -125,33 +127,40 @@ def get_sbom1(): ] }""" + def get_sbom2(): - return SBOM.from_json(sbom2_json) + return SBOM.from_json(sbom2_json) + sbom3 = None sbom4 = None + def get_config(): - return { - "system": { - "UUID": "6a0ee431-842f-4963-8867-ef0ef6998003", - "name": "", - "vendor": None, - "captureStart": 1689186121, - "captureEnd": 1689186146, - } - } + return { + "system": { + "UUID": "6a0ee431-842f-4963-8867-ef0ef6998003", + "name": "", + "vendor": None, + "captureStart": 1689186121, + "captureEnd": 1689186146, + } + } + def get_sbom3(): - with open( - pathlib.Path(__file__).parent / "../data/sample_sboms/helics_binaries_sbom.json", - "r", - ) as f: - return SBOM.from_json(f.read()) + with open( + pathlib.Path(__file__).parent / "../data/sample_sboms/helics_binaries_sbom.json", + "r", + ) as f: + return SBOM.from_json(f.read()) + def get_sbom4(): - with open(pathlib.Path(__file__).parent / "../data/sample_sboms/helics_libs_sbom.json", "r") as f: - return SBOM.from_json(f.read()) + with open( + pathlib.Path(__file__).parent / "../data/sample_sboms/helics_libs_sbom.json", "r" + ) as f: + return SBOM.from_json(f.read()) # Test Functions @@ -215,127 +224,134 @@ def test_cmdline_merge(): def test_merge_with_add_system_true(): - sbom1 = get_sbom1() - sbom2 = get_sbom2() - outfile_name = generate_filename("test_merge_with_add_system_true") - pm = get_plugin_manager() - output_writer = pm.get_plugin("surfactant.output.cytrics_writer") - input_sboms = [sbom1, sbom2] - config_file = get_config() - config_file["system"]["UUID"] = "6a0ee431-842f-4963-8867-ef0ef6998003" - with open(outfile_name, "w") as sbom_outfile: - merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True) - - with open(outfile_name, "r") as j: - generated_sbom = json.loads(j.read()) - assert generated_sbom["systems"] - assert generated_sbom["systems"][0]["UUID"] == config_file["system"]["UUID"] - - os.remove(os.path.abspath(outfile_name)) + sbom1 = get_sbom1() + sbom2 = get_sbom2() + outfile_name = generate_filename("test_merge_with_add_system_true") + pm = get_plugin_manager() + output_writer = pm.get_plugin("surfactant.output.cytrics_writer") + input_sboms = [sbom1, sbom2] + config_file = get_config() + config_file["system"]["UUID"] = "6a0ee431-842f-4963-8867-ef0ef6998003" + with open(outfile_name, "w") as sbom_outfile: + merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True) + + with open(outfile_name, "r") as j: + generated_sbom = json.loads(j.read()) + assert generated_sbom["systems"] + assert generated_sbom["systems"][0]["UUID"] == config_file["system"]["UUID"] + + os.remove(os.path.abspath(outfile_name)) def test_merge_with_add_system_false(): - sbom1 = get_sbom1() - sbom2 = get_sbom2() - outfile_name = generate_filename("test_merge_with_add_system_false") - pm = get_plugin_manager() - output_writer = pm.get_plugin("surfactant.output.cytrics_writer") - input_sboms = [sbom1, sbom2] - config_file = get_config() - config_file["system"]["UUID"] = "6a0ee431-842f-4963-8867-ef0ef6998003" - with open(outfile_name, "w") as sbom_outfile: - merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=False) - - with open(outfile_name, "r") as j: - generated_sbom = json.loads(j.read()) - assert not generated_sbom["systems"] - - os.remove(os.path.abspath(outfile_name)) + sbom1 = get_sbom1() + sbom2 = get_sbom2() + outfile_name = generate_filename("test_merge_with_add_system_false") + pm = get_plugin_manager() + output_writer = pm.get_plugin("surfactant.output.cytrics_writer") + input_sboms = [sbom1, sbom2] + config_file = get_config() + config_file["system"]["UUID"] = "6a0ee431-842f-4963-8867-ef0ef6998003" + with open(outfile_name, "w") as sbom_outfile: + merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=False) + + with open(outfile_name, "r") as j: + generated_sbom = json.loads(j.read()) + assert not generated_sbom["systems"] + + os.remove(os.path.abspath(outfile_name)) def test_merge_with_custom_system_relationship(): - sbom1 = get_sbom1() - sbom2 = get_sbom2() - outfile_name = generate_filename("test_merge_with_custom_system_relationship") - pm = get_plugin_manager() - output_writer = pm.get_plugin("surfactant.output.cytrics_writer") - input_sboms = [sbom1, sbom2] - config_file = get_config() - config_file["systemRelationship"] = "DependsOn" - with open(outfile_name, "w") as sbom_outfile: - merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True) - - with open(outfile_name, "r") as j: - generated_sbom = json.loads(j.read()) - for relationship in generated_sbom["relationships"]: - if relationship["xUUID"] == config_file["system"]["UUID"]: - assert relationship["relationship"] == "DependsOn" - - os.remove(os.path.abspath(outfile_name)) + sbom1 = get_sbom1() + sbom2 = get_sbom2() + outfile_name = generate_filename("test_merge_with_custom_system_relationship") + pm = get_plugin_manager() + output_writer = pm.get_plugin("surfactant.output.cytrics_writer") + input_sboms = [sbom1, sbom2] + config_file = get_config() + config_file["systemRelationship"] = "DependsOn" + with open(outfile_name, "w") as sbom_outfile: + merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True) + + with open(outfile_name, "r") as j: + generated_sbom = json.loads(j.read()) + for relationship in generated_sbom["relationships"]: + if relationship["xUUID"] == config_file["system"]["UUID"]: + assert relationship["relationship"] == "DependsOn" + + os.remove(os.path.abspath(outfile_name)) def test_merge_with_specified_system_uuid(): - sbom1 = get_sbom1() - sbom2 = get_sbom2() - outfile_name = generate_filename("test_merge_with_specified_system_uuid") - pm = get_plugin_manager() - output_writer = pm.get_plugin("surfactant.output.cytrics_writer") - input_sboms = [sbom1, sbom2] - config_file = get_config() - system_uuid = "123e4567-e89b-12d3-a456-426614174000" - with open(outfile_name, "w") as sbom_outfile: - merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True, system_uuid=system_uuid) + sbom1 = get_sbom1() + sbom2 = get_sbom2() + outfile_name = generate_filename("test_merge_with_specified_system_uuid") + pm = get_plugin_manager() + output_writer = pm.get_plugin("surfactant.output.cytrics_writer") + input_sboms = [sbom1, sbom2] + config_file = get_config() + system_uuid = "123e4567-e89b-12d3-a456-426614174000" + with open(outfile_name, "w") as sbom_outfile: + merge( + input_sboms, + sbom_outfile, + config_file, + output_writer, + add_system=True, + system_uuid=system_uuid, + ) - with open(outfile_name, "r") as j: - generated_sbom = json.loads(j.read()) - assert any(system["UUID"] == system_uuid for system in generated_sbom["systems"]) + with open(outfile_name, "r") as j: + generated_sbom = json.loads(j.read()) + assert any(system["UUID"] == system_uuid for system in generated_sbom["systems"]) - os.remove(os.path.abspath(outfile_name)) + os.remove(os.path.abspath(outfile_name)) def test_prevent_orphaned_system_uuid(): - sbom1 = get_sbom1() - sbom2 = get_sbom2() - outfile_name = generate_filename("test_prevent_orphaned_system_uuid") - pm = get_plugin_manager() - output_writer = pm.get_plugin("surfactant.output.cytrics_writer") - input_sboms = [sbom1, sbom2] - config_file = get_config() - # Get rid of the system UUID field from the config file - # This will make it try to generate a random UUID, but won't add it since add_system is False - del config_file["system"]["UUID"] - with open(outfile_name, "w") as sbom_outfile: - merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=False) - - with open(outfile_name, "r") as j: - generated_sbom = json.loads(j.read()) - assert not generated_sbom["systems"] - - os.remove(os.path.abspath(outfile_name)) + sbom1 = get_sbom1() + sbom2 = get_sbom2() + outfile_name = generate_filename("test_prevent_orphaned_system_uuid") + pm = get_plugin_manager() + output_writer = pm.get_plugin("surfactant.output.cytrics_writer") + input_sboms = [sbom1, sbom2] + config_file = get_config() + # Get rid of the system UUID field from the config file + # This will make it try to generate a random UUID, but won't add it since add_system is False + del config_file["system"]["UUID"] + with open(outfile_name, "w") as sbom_outfile: + merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=False) + + with open(outfile_name, "r") as j: + generated_sbom = json.loads(j.read()) + assert not generated_sbom["systems"] + + os.remove(os.path.abspath(outfile_name)) def test_add_random_system_uuid(): - sbom1 = get_sbom1() - sbom2 = get_sbom2() - outfile_name = generate_filename("test_prevent_orphaned_system_uuid") - pm = get_plugin_manager() - output_writer = pm.get_plugin("surfactant.output.cytrics_writer") - input_sboms = [sbom1, sbom2] - config_file = get_config() - # Get rid of the system UUID field from the config file - # This will make it try to generate a random UUID, but won't add it since add_system is False - original_config_system_UUID = config_file["system"]["UUID"] - del config_file["system"]["UUID"] - with open(outfile_name, "w") as sbom_outfile: - merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True) - - with open(outfile_name, "r") as j: - generated_sbom = json.loads(j.read()) - assert generated_sbom["systems"] - # Check that the UUID of the generated system is actually random - assert generated_sbom["systems"][0]["UUID"] != original_config_system_UUID - - os.remove(os.path.abspath(outfile_name)) + sbom1 = get_sbom1() + sbom2 = get_sbom2() + outfile_name = generate_filename("test_prevent_orphaned_system_uuid") + pm = get_plugin_manager() + output_writer = pm.get_plugin("surfactant.output.cytrics_writer") + input_sboms = [sbom1, sbom2] + config_file = get_config() + # Get rid of the system UUID field from the config file + # This will make it try to generate a random UUID, but won't add it since add_system is False + original_config_system_UUID = config_file["system"]["UUID"] + del config_file["system"]["UUID"] + with open(outfile_name, "w") as sbom_outfile: + merge(input_sboms, sbom_outfile, config_file, output_writer, add_system=True) + + with open(outfile_name, "r") as j: + generated_sbom = json.loads(j.read()) + assert generated_sbom["systems"] + # Check that the UUID of the generated system is actually random + assert generated_sbom["systems"][0]["UUID"] != original_config_system_UUID + + os.remove(os.path.abspath(outfile_name)) def generate_filename(name, ext=".json"):