Skip to content

Commit 9b8183e

Browse files
[issue-722] change return type of calculate_package_verification_code() to PackageVerificationCode
Signed-off-by: Armin Tänzer <[email protected]>
1 parent c62cead commit 9b8183e

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/spdx_tools/spdx/spdx_element_utils.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@
55

66
from beartype.typing import List, Union
77

8-
from spdx_tools.spdx.model import ChecksumAlgorithm, ExternalDocumentRef, File, Package, Snippet
8+
from spdx_tools.spdx.model import (
9+
ChecksumAlgorithm,
10+
ExternalDocumentRef,
11+
File,
12+
Package,
13+
PackageVerificationCode,
14+
Snippet,
15+
)
916

1017

1118
def get_full_element_spdx_id(
@@ -33,7 +40,7 @@ def get_full_element_spdx_id(
3340
return external_uri + "#" + local_id
3441

3542

36-
def calculate_package_verification_code(files: List[File]) -> str:
43+
def calculate_package_verification_code(files: List[File]) -> PackageVerificationCode:
3744
list_of_file_hashes = []
3845
for file in files:
3946
file_checksum_value = None
@@ -53,7 +60,8 @@ def calculate_package_verification_code(files: List[File]) -> str:
5360
list_of_file_hashes.sort()
5461
hasher = hashlib.new("sha1")
5562
hasher.update("".join(list_of_file_hashes).encode("utf-8"))
56-
return hasher.hexdigest()
63+
value = hasher.hexdigest()
64+
return PackageVerificationCode(value)
5765

5866

5967
def calculate_file_checksum(file_name: str, hash_algorithm=ChecksumAlgorithm.SHA1) -> str:

tests/spdx/test_checksum_calculation.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# SPDX-License-Identifier: Apache-2.0
44
import pytest
55

6-
from spdx_tools.spdx.model import Checksum, ChecksumAlgorithm, File
6+
from spdx_tools.spdx.model import Checksum, ChecksumAlgorithm, File, PackageVerificationCode
77
from spdx_tools.spdx.spdx_element_utils import calculate_file_checksum, calculate_package_verification_code
88

99

@@ -42,7 +42,7 @@ def test_verification_code_calculation_with_predefined_checksums(generate_test_f
4242
)
4343
verification_code = calculate_package_verification_code([file1, file2])
4444

45-
assert verification_code == "c6cb0949d7cd7439fce8690262a0946374824639"
45+
assert verification_code == PackageVerificationCode("c6cb0949d7cd7439fce8690262a0946374824639")
4646

4747

4848
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
5959
)
6060
verification_code = calculate_package_verification_code([file1, file2])
6161

62-
assert verification_code == "6f29d813abb63ee52a47dbcb691ea2e70f956328"
62+
assert verification_code == PackageVerificationCode("6f29d813abb63ee52a47dbcb691ea2e70f956328")
6363

6464

6565
def test_verification_code_calculation_with_wrong_file_location():

0 commit comments

Comments
 (0)