Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ testing =
pytest-rerunfailures

docs =
Sphinx >= 4.3.0
Sphinx == 5.3.0
sphinx_rtd_theme >= 0.5.1
docutils < 0.17
doc8
Expand Down
11 changes: 8 additions & 3 deletions src/packagedcode/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -869,11 +869,16 @@ def get_license_detections_and_expression(self):
if not self.extracted_license_statement:
return [], None

return get_license_detections_and_expression(
extracted_license_statement=self.extracted_license_statement,
if self.datasource_id:
default_relation_license=get_default_relation_license(
datasource_id=self.datasource_id,
),
)
else:
default_relation_license = 'AND'

return get_license_detections_and_expression(
extracted_license_statement=self.extracted_license_statement,
default_relation_license=default_relation_license
)


Expand Down
17 changes: 17 additions & 0 deletions tests/packagedcode/test_package_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,3 +225,20 @@ def test_package_adder(package_uid, resource, codebase):
for package_uid in for_packages:
normalized_package_uid = purl_with_fake_uuid(package_uid)
assert normalized_package_uid == test_package_uid

def test_create_package_not_handled_by_packagedcode(self):
extracted_license_statement = [
'gpl',
'GNU General Public License version 2.0 (GPLv2)',
]
package = PackageData(
type='sourceforge',
name='openstunts',
copyright='Copyright (c) openstunts project',
extracted_license_statement=extracted_license_statement,
)
# Test generated fields
assert package.purl == 'pkg:sourceforge/openstunts'
assert package.holder == 'openstunts project'
assert package.declared_license_expression == 'gpl-1.0-plus AND gpl-2.0'
assert package.declared_license_expression_spdx == 'GPL-1.0-or-later AND GPL-2.0-only'