File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -327,7 +327,11 @@ def spdx_package_to_package_data(spdx_package):
327327 for checksum in spdx_package .checksums
328328 }
329329
330- declared_license_expression_spdx = spdx_package .license_concluded
330+ if spdx_package .license_concluded not in spdx .EMPTY :
331+ declared_license_expression_spdx = spdx_package .license_concluded
332+ else :
333+ declared_license_expression_spdx = spdx_package .license_declared
334+
331335 declared_expression = ""
332336 if declared_license_expression_spdx :
333337 declared_expression = convert_spdx_expression (declared_license_expression_spdx )
@@ -350,9 +354,7 @@ def spdx_package_to_package_data(spdx_package):
350354 }
351355
352356 return {
353- key : value
354- for key , value in package_data .items ()
355- if value not in [None , "" , "NOASSERTION" ]
357+ key : value for key , value in package_data .items () if value not in spdx .EMPTY
356358 }
357359
358360
Original file line number Diff line number Diff line change 4747 "https://github.com/spdx/spdx-spec/raw/development/v2.2/schemas/spdx-schema.json"
4848)
4949
50+ EMPTY = [None , "" , "NOASSERTION" ]
51+
5052"""
5153Generate SPDX Documents.
5254Spec documentation: https://spdx.github.io/spdx-spec/v2.3/
Original file line number Diff line number Diff line change 1+ {
2+ "spdxVersion" : " SPDX-2.3" ,
3+ "dataLicense" : " CC0-1.0" ,
4+ "SPDXID" : " SPDXRef-DOCUMENT" ,
5+ "name" : " analysis" ,
6+ "documentNamespace" : " https://scancode.io/spdxdocs/abc" ,
7+ "creationInfo" : {
8+ "created" : " 2000-01-01T01:02:03Z" ,
9+ "creators" : [
10+ " Tool: ABC"
11+ ],
12+ "licenseListVersion" : " 3.27"
13+ },
14+ "packages" : [
15+ {
16+ "SPDXID" : " SPDXRef-Package-abc" ,
17+ "name" : " abc" ,
18+ "downloadLocation" : " NOASSERTION" ,
19+ "licenseInfoFromFiles" : [
20+ " NOASSERTION"
21+ ],
22+ "licenseConcluded" : " NOASSERTION" ,
23+ "licenseDeclared" : " (GPL-2.0-only AND LGPL-2.1-only)" ,
24+ "copyrightText" : " NOASSERTION" ,
25+ "versionInfo" : " 1.0"
26+ }
27+ ],
28+ "documentDescribes" : [
29+ " SPDXRef-Package-abc"
30+ ]
31+ }
Original file line number Diff line number Diff line change @@ -250,6 +250,21 @@ def test_scanpipe_pipes_resolve_spdx_packages(self):
250250 packages_data = resolve .resolve_spdx_packages (input_location )
251251 self .assertEqual (4 , len (packages_data ))
252252
253+ def test_scanpipe_pipes_resolve_spdx_packages_license_fields (self ):
254+ input_location = self .data / "spdx" / "license-fields.spdx.json"
255+ packages_data = resolve .resolve_spdx_packages (input_location )
256+ expected = [
257+ {
258+ "package_uid" : "SPDXRef-Package-abc" ,
259+ "name" : "abc" ,
260+ "declared_license_expression" : "gpl-2.0 AND lgpl-2.1" ,
261+ "declared_license_expression_spdx" : "(GPL-2.0-only AND LGPL-2.1-only)" ,
262+ "extracted_license_statement" : "(GPL-2.0-only AND LGPL-2.1-only)" ,
263+ "version" : "1.0" ,
264+ }
265+ ]
266+ self .assertEqual (expected , packages_data )
267+
253268 def test_scanpipe_pipes_resolve_spdx_dependencies (self ):
254269 input_location = self .data / "spdx" / "SPDXJSONExample-v2.3.spdx.json"
255270 dependencies_data = resolve .resolve_spdx_dependencies (input_location )
You can’t perform that action at this time.
0 commit comments