8000 [issue-305, review] reformat, type hints, fix typos, error messages · spdx/tools-python@347051a · GitHub
[go: up one dir, main page]

Skip to content

Commit 347051a

Browse files
committed
[issue-305, review] reformat, type hints, fix typos, error messages
Signed-off-by: Meret Behrens <meret.behrens@tngtech.com>
1 parent c8851d8 commit 347051a

10 files changed

+52
-49
lines changed

src/parser/json/annotation_parser.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,8 @@ def parse_all_annotations(self, input_doc_dict: Dict) -> List[Annotation]:
3434
self.parse_annotations_from_object(annotations, [input_doc_dict])
3535
reviews: List[Dict] = input_doc_dict.get("revieweds", [])
3636
for review in reviews:
37-
annotations = append_parsed_field_or_log_error(self.logger, annotations, review,
38-
lambda x: self.parse_review(x,
39-
spdx_id=input_doc_dict.get(
40-
"SPDXID")))
41-
37+
annotations = append_parsed_field_or_log_error(
38+
self.logger, annotations, review, lambda x: self.parse_review(x, spdx_id=input_doc_dict.get("SPDXID")))
4239
packages: List[Dict] = input_doc_dict.get("packages", [])
4340
self.parse_annotations_from_object(annotations, packages)
4441
files: List[Dict] = input_doc_dict.get("files", [])
@@ -54,8 +51,9 @@ def parse_annotations_from_object(self, annotations: List[Annotation], element_l
5451
element_spdx_id: Optional[str] = element.get("SPDXID")
5552
element_annotations: List[Dict] = element.get("annotations", [])
5653
annotations.extend(parse_field_or_log_error(self.logger, element_annotations,
57-
lambda y: self.parse_annotation(y, spdx_id=element_spdx_id),
58-
[], True))
54+
55+
lambda y: self.parse_annotation(y, spdx_id=element_spdx_id),
56+
[], True))
5957

6058
def parse_annotation(self, annotation_dict: Dict, spdx_id: Optional[str] = None) -> Annotation:
6159
logger = Logger()
@@ -75,8 +73,8 @@ def parse_annotation(self, annotation_dict: Dict, spdx_id: Optional[str] = None)
7573
raise_parsing_error_if_logger_has_messages(logger, "Annotation")
7674
annotation_dict = construct_or_raise_parsing_error(Annotation,
7775
dict(spdx_id=spdx_id, annotation_type=annotation_type,
78-
annotator=annotator, annotation_date=annotation_date,
79-
annotation_comment=annotation_comment))
76+
annotator=annotator, annotation_date=annotation_date,
77+
annotation_comment=annotation_comment))
8078

8179
return annotation_dict
8280

src/parser/json/checksum_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def parse_checksum(checksum_dict: Dict) -> Checksum:
3030
try:
3131
checksum_algorithm = ChecksumAlgorithm[algorithm]
3232
except KeyError:
33-
logger.append(f"Invalid Algorithm for checksum: {algorithm}")
33+
logger.append(f"Invalid ChecksumAlgorithm: {algorithm}")
3434
checksum_algorithm = None
3535
checksum_value: Optional[str] = checksum_dict.get("checksumValue")
3636
raise_parsing_error_if_logger_has_messages(logger, "Checksum")

src/parser/json/dict_parsing_functions.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# See the License for the specific language governing permissions and
1010
# limitations under the License.
1111
from datetime import datetime
12-
from typing import Any, Callable, Dict, List, Union
12+
from typing import Any, Callable, Dict, List, Union, Optional
1313

1414
from src.model.spdx_no_assertion import SpdxNoAssertion
1515
from src.model.spdx_none import SpdxNone
@@ -74,15 +74,17 @@ def raise_parsing_error_if_logger_has_messages(logger: Logger, parsed_object_nam
7474
else:
7575
raise SPDXParsingError(logger.get_messages())
7676

77-
def parse_field_or_no_assertion_or_none(field: str, method_for_field: Callable=lambda x: x) -> Any:
77+
78+
def parse_field_or_no_assertion_or_none(field: Optional[str], method_for_field: Callable = lambda x: x) -> Any:
7879
if field == SpdxNoAssertion().__str__():
7980
return SpdxNoAssertion()
8081
elif field == SpdxNone().__str__():
8182
return SpdxNone()
8283
else:
8384
return method_for_field(field)
8485

85-
def parse_field_or_no_assertion(field: str, method_for_field: Callable = lambda x: x) -> Any:
86+
87+
def parse_field_or_no_assertion(field: Optional[str], method_for_field: Callable = lambda x: x) -> Any:
8688
if field == SpdxNoAssertion().__str__():
8789
return SpdxNoAssertion()
8890
else:
@@ -94,6 +96,7 @@ def parse_list_of_elements(list_of_elements: List[Dict], method_to_parse_element
9496
logger = Logger()
9597
parsed_elements = []
9698
for element_dict in list_of_elements:
97-
parsed_elements = append_parsed_field_or_log_error(logger, parsed_elements, element_dict, method_to_parse_element)
99+
parsed_elements = append_parsed_field_or_log_error(logger, parsed_elements, element_dict,
100+
method_to_parse_element)
98101
raise_parsing_error_if_logger_has_messages(logger)
99102
return parsed_elements

src/parser/json/package_parser.py

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,29 +63,23 @@ def parse_package(self, package_dict: Dict) -> Package:
6363
lambda x: x, True)
6464
homepage: Optional[str] = package_dict.get("homepage")
6565
license_comments: Optional[str] = package_dict.get("licenseComments")
66-
license_concluded = parse_field_or_log_error(logger, package_dict.get("licenseConcluded"),
67-
lambda x: parse_field_or_no_assertion_or_none(x,
68-
self.license_expression_parser.parse_license_expression),
69-
None)
66+
license_concluded = parse_field_or_log_error(
67+
logger, package_dict.get("licenseConcluded"),
68+
lambda x: parse_field_or_no_assertion_or_none(x, self.license_expression_parser.parse_license_expression),
69+
None)
7070

7171
license_declared: Optional[Union[LicenseExpression, SpdxNoAssertion, SpdxNone]] = parse_field_or_log_error(
7272
logger, package_dict.get("licenseDeclared"),
7373
lambda x: parse_field_or_no_assertion_or_none(x, self.license_expression_parser.parse_license_expression))
7474

75-
license_info_from_file: Optional[
76-
Union[List[LicenseExpression], SpdxNoAssertion, SpdxNone]] = parse_field_or_log_error(logger,
77-
package_dict.get(
78-
"licenseInfoFromFiles"),
79-
lambda
80-
x: parse_field_or_no_assertion_or_none(
81-
x,
82-
self.license_expression_parser.parse_license_expressions))
83-
originator: Optional[Union[Actor, SpdxNoAssertion]] = parse_field_or_log_error(logger,
84-
package_dict.get("originator"),
85-
lambda
86-
x: parse_field_or_no_assertion(
87-
x,
88-
self.actor_parser.parse_actor))
75+
license_info_from_file: Optional[Union[List[LicenseExpression], SpdxNoAssertion, SpdxNone]] = \
76+
parse_field_or_log_error(
77+
logger, package_dict.get("licenseInfoFromFiles"),
78+
lambda x: parse_field_or_no_assertion_or_none(x,
79+
self.license_expression_parser.parse_license_expressions))
80+
originator: Optional[Union[Actor, SpdxNoAssertion]] = parse_field_or_log_error(
81+
logger, package_dict.get("originator"),
82+
lambda x: parse_field_or_no_assertion(x, self.actor_parser.parse_actor))
8983
package_file_name: Optional[str] = package_dict.get("packageFileName")
9084

9185
package_verification_code: Optional[
@@ -155,7 +149,7 @@ def parse_external_ref_category(external_ref_category_str: str) -> ExternalPacka
155149
external_ref_category = ExternalPackageRefCategory[
156150
json_str_to_enum_name(external_ref_category_str)]
157151
except KeyError:
158-
raise SPDXParsingError([f"Invalid Category for ExternalPackageRef {external_ref_category_str}"])
152+
raise SPDXParsingError([f"Invalid ExternalPackageRefCategory: {external_ref_category_str}"])
159153

160154
return external_ref_category
161155

src/parser/json/relationship_parser.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,9 @@ def parse_all_relationships(self, input_doc_dict: Dict) -> List[Relationship]:
4141

4242
package_dicts: List[Dict] = input_doc_dict.get("packages", [])
4343

44-
relationships.extend(
45-
parse_field_or_log_error(self.logger, package_dicts, lambda x: self.parse_has_files(package_dicts=x,
46-
existing_relationships=relationships),
47-
[]))
44+
relationships.extend(parse_field_or_log_error(
45+
self.logger, package_dicts,
46+
lambda x: self.parse_has_files(package_dicts=x, existing_relationships=relationships), []))
4847

4948
file_dicts: List[Dict] = input_doc_dict.get("files", [])
5049

@@ -144,13 +143,13 @@ def get_all_relationships_without_comments(existing_relationships: List[Relation
144143
def invert_relationship(self, relationship: Relationship) -> Relationship:
145144
return Relationship(related_spdx_element_id=relationship.spdx_element_id,
146145
spdx_element_id=relationship.related_spdx_element_id,
147-
relationship_type=self.invvert_relationship_types[relationship.relationship_type],
146+
relationship_type=self.invert_relationship_types[relationship.relationship_type],
148147
comment=relationship.comment)
149148

150-
invvert_relationship_types = {RelationshipType.DESCRIBES: RelationshipType.DESCRIBED_BY,
151-
RelationshipType.DESCRIBED_BY: RelationshipType.DESCRIBES,
152-
RelationshipType.CONTAINS: RelationshipType.CONTAINED_BY,
153-
RelationshipType.CONTAINED_BY: RelationshipType.CONTAINS}
149+
invert_relationship_types = {RelationshipType.DESCRIBES: RelationshipType.DESCRIBED_BY,
150+
RelationshipType.DESCRIBED_BY: RelationshipType.DESCRIBES,
151+
RelationshipType.CONTAINS: RelationshipType.CONTAINED_BY,
152+
RelationshipType.CONTAINED_BY: RelationshipType.CONTAINS}
154153

155154
@staticmethod
156155
def parse_file_dependencies(file_dicts: List[Dict]) -> List[

tests/parser/test_checksum_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def test_parse_invalid_checksum():
4141
checksum_parser.parse_checksum(checksum_dict)
4242

4343
TestCase().assertCountEqual(err.value.get_messages(),
44-
["Error while parsing Checksum: ['Invalid Algorithm for checksum: SHA']"])
44+
["Error while parsing Checksum: ['Invalid ChecksumAlgorithm: SHA']"])
4545

4646

4747
def test_parse_incomplete_checksum():

tests/parser/test_creation_info_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from src.parser.json.creation_info_parser import CreationInfoParser
2222

2323

24-
def test_pares_creation_info():
24+
def test_parse_creation_info():
2525
creation_info_parser = CreationInfoParser()
2626
doc_dict = {
2727
"spdxVersion": "2.3",

tests/parser/test_file_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def test_parse_invalid_files():
107107
TestCase().assertCountEqual(err.value.get_messages(), [
108108
"Error while constructin 1241 g File: ['SetterError File: type of argument " '"checksums" must be a list; got NoneType instead: None\']',
109109
'Error while constructing File: [\'SetterError File: type of argument "name" ' "must be str; got NoneType instead: None']",
110-
'Error while parsing File: ["Error while parsing Checksum: [\'Invalid Algorithm for checksum: MD\']"]'])
110+
'Error while parsing File: ["Error while parsing Checksum: [\'Invalid ChecksumAlgorithm: MD\']"]'])
111111

112112

113113
def test_parse_file_types():

tests/parser/test_package_parser.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ def test_parse_invalid_package():
156156
package_parser.parse_package(package_dict)
157157

158158
TestCase().assertCountEqual(err.value.get_messages(), [
159-
'Error while parsing Package: ["Error while parsing Checksum: [\'Invalid Algorithm for checksum: SHA\']"]'])
159+
'Error while parsing Package: ["Error while parsing Checksum: [\'Invalid ChecksumAlgorithm: SHA\']"]'])
160160

161161

162162
def test_parse_packages():
@@ -184,7 +184,7 @@ def test_parse_packages():
184184

185185
TestCase().assertCountEqual(err.value.get_messages(),
186186
['Error while parsing Package: ["Error while parsing Checksum: '
187-
'[\'Invalid Algorithm for checksum: SHA\']"]',
187+
'[\'Invalid ChecksumAlgorithm: SHA\']"]',
188188
"Error while constructing Package: ['SetterError Package: type of argument "
189189
'"name" must be str; got int instead: 5\']'])
190190

@@ -200,3 +200,12 @@ def test_parse_external_ref():
200200

201201
TestCase().assertCountEqual(err.value.get_messages(), [
202202
"Error while constructing ExternalPackageRef: ['SetterError " 'ExternalPackageRef: type of argument "category" must be ' "src.model.package.ExternalPackageRefCategory; got NoneType instead: None', " '\'SetterError ExternalPackageRef: type of argument "locator" must be str; ' "got NoneType instead: None']"])
203+
204+
def test_parse_invalid_external_package_ref_category():
205+
package_parser = PackageParser()
206+
external_package_ref_category = "TEST"
207+
208+
with pytest.raises(SPDXParsingError) as err:
209+
package_parser.parse_external_ref_category(external_package_ref_category)
210+
211+
TestCase().assertCountEqual(err.value.get_messages(), ["Invalid ExternalPackageRefCategory: TEST"])

tests/parser/test_relationship_parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,13 @@ def test_parse_has_files_without_duplicating_relationships():
129129
"hasFiles": ["SPDXRef-File1", "SPDXRef-File2"]
130130
}]
131131
}
132-
created_relationships = [
132+
existing_relationships = [
133133
Relationship(spdx_element_id="SPDXRef-Package", relationship_type=RelationshipType.CONTAINS,
134134
related_spdx_element_id="SPDXRef-File1", comment="This relationship has a comment."),
135135
Relationship(spdx_element_id="SPDXRef-File2", relationship_type=RelationshipType.CONTAINED_BY,
136136
related_spdx_element_id="SPDXRef-Package")]
137137

138138
relationships = relationship_parser.parse_has_files(document_dict.get("packages"),
139-
existing_relationships=created_relationships)
139+
existing_relationships=existing_relationships)
140140

141141
assert len(relationships) == 0

0 commit comments

Comments
 (0)
0