From 48b3380b2578bda4939b30403605538387ad6d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20T=C3=A4nzer?= Date: Wed, 12 Jul 2023 16:35:41 +0200 Subject: [PATCH] [issue-722] change return type of calculate_package_verification_code() to PackageVerificationCode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Armin Tänzer --- src/spdx_tools/spdx/spdx_element_utils.py | 14 +++++++++++--- tests/spdx/test_checksum_calculation.py | 6 +++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/spdx_tools/spdx/spdx_element_utils.py b/src/spdx_tools/spdx/spdx_element_utils.py index dcb0cf2e2..c3cb3f7fa 100644 --- a/src/spdx_tools/spdx/spdx_element_utils.py +++ b/src/spdx_tools/spdx/spdx_element_utils.py @@ -5,7 +5,14 @@ from beartype.typing import List, Union -from spdx_tools.spdx.model import ChecksumAlgorithm, ExternalDocumentRef, File, Package, Snippet +from spdx_tools.spdx.model import ( + ChecksumAlgorithm, + ExternalDocumentRef, + File, + Package, + PackageVerificationCode, + Snippet, +) def get_full_element_spdx_id( @@ -33,7 +40,7 @@ def get_full_element_spdx_id( return external_uri + "#" + local_id -def calculate_package_verification_code(files: List[File]) -> str: +def calculate_package_verification_code(files: List[File]) -> PackageVerificationCode: list_of_file_hashes = [] for file in files: file_checksum_value = None @@ -53,7 +60,8 @@ def calculate_package_verification_code(files: List[File]) -> str: list_of_file_hashes.sort() hasher = hashlib.new("sha1") hasher.update("".join(list_of_file_hashes).encode("utf-8")) - return hasher.hexdigest() + value = hasher.hexdigest() + return PackageVerificationCode(value) def calculate_file_checksum(file_name: str, hash_algorithm=ChecksumAlgorithm.SHA1) -> str: diff --git a/tests/spdx/test_checksum_calculation.py b/tests/spdx/test_checksum_calculation.py index 0aa4b3b85..0e45b11c9 100644 --- a/tests/spdx/test_checksum_calculation.py +++ b/tests/spdx/test_checksum_calculation.py @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 import pytest -from spdx_tools.spdx.model import Checksum, ChecksumAlgorithm, File +from spdx_tools.spdx.model import Checksum, ChecksumAlgorithm, File, PackageVerificationCode from spdx_tools.spdx.spdx_element_utils import calculate_file_checksum, calculate_package_verification_code @@ -42,7 +42,7 @@ def test_verification_code_calculation_with_predefined_checksums(generate_test_f ) verification_code = calculate_package_verification_code([file1, file2]) - assert verification_code == "c6cb0949d7cd7439fce8690262a0946374824639" + assert verification_code == PackageVerificationCode("c6cb0949d7cd7439fce8690262a0946374824639") def test_verification_code_calculation_with_calculated_checksums(generate_test_files): @@ -59,7 +59,7 @@ def test_verification_code_calculation_with_calculated_checksums(generate_test_f ) verification_code = calculate_package_verification_code([file1, file2]) - assert verification_code == "6f29d813abb63ee52a47dbcb691ea2e70f956328" + assert verification_code == PackageVerificationCode("6f29d813abb63ee52a47dbcb691ea2e70f956328") def test_verification_code_calculation_with_wrong_file_location():