Skip to content

Commit

Permalink
Fix remaining failing unit tests #138
Browse files Browse the repository at this point in the history
Signed-off-by: tdruez <tdruez@nexb.com>
  • Loading branch information
tdruez committed Aug 2, 2024
1 parent 692cfef commit 4d6ca9c
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 15 deletions.
11 changes: 5 additions & 6 deletions product_portfolio/importers.py
Original file line number Diff line number Diff line change
Expand Up @@ -664,7 +664,7 @@ def import_package(self, package_data):
# Check if the Package already exists in the local Dataspace
try:
package = Package.objects.scope(self.user.dataspace).get(**unique_together_lookups)
self.existing["package"].append(package)
self.existing["package"].append(str(package))
except (ObjectDoesNotExist, MultipleObjectsReturned):
package = None

Expand All @@ -677,7 +677,7 @@ def import_package(self, package_data):
reference_object = qs.first()
try:
package = copy_object(reference_object, user_dataspace, self.user, update=False)
self.created["package"].append(package)
self.created["package"].append(str(package))
except IntegrityError as error:
self.errors["package"].append(str(error))

Expand All @@ -694,7 +694,7 @@ def import_package(self, package_data):
except ValidationError as errors:
self.errors["package"].append(str(errors))
return
self.created["package"].append(package)
self.created["package"].append(str(package))

ProductPackage.objects.get_or_create(
product=self.product,
Expand All @@ -706,8 +706,7 @@ def import_package(self, package_data):
"created_by": self.user,
},
)

package_uid = package_data.get("package_uid")
package_uid = package_data.get("package_uid") or package.uuid
self.package_uid_mapping[package_uid] = package

def import_dependency(self, dependency_data):
Expand Down Expand Up @@ -739,4 +738,4 @@ def import_dependency(self, dependency_data):
self.errors["dependency"].append(str(errors))
return

self.created["dependency"].append(dependency)
self.created["dependency"].append(str(dependency.dependency_uid))
11 changes: 6 additions & 5 deletions product_portfolio/tests/test_importers.py
Original file line number Diff line number Diff line change
Expand Up @@ -983,15 +983,16 @@ def test_product_portfolio_import_packages_from_scancodeio_importer(
product=self.product1,
)
created, existing, errors = importer.save()
created_package = created.get("package")[0]
self.assertEqual(purl, created_package.package_url)
created_package_package_url = created.get("package")[0]
created_package = self.product1.packages.get()
self.assertEqual("bsd-new", created_package.license_expression)
self.assertEqual(created_package.package_url, created_package_package_url)
self.assertEqual({}, existing)
self.assertEqual([purl], [package.package_url for package in self.product1.packages.all()])
self.assertEqual({}, errors)

created_dependency = created.get("dependency")[0]
self.assertEqual(dependency_uid, created_dependency.dependency_uid)
created_dependency_uid = created.get("dependency")[0]
created_dependency = self.product1.dependencies.get()
self.assertEqual(dependency_uid, created_dependency_uid)
self.assertEqual("pkg:pypi/aboutcode-toolkit@10", created_dependency.declared_dependency)
self.assertEqual("aboutcode-toolkit==10", created_dependency.extracted_requirement)
self.assertEqual("install", created_dependency.scope)
Expand Down
19 changes: 15 additions & 4 deletions product_portfolio/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2816,8 +2816,13 @@ def test_product_portfolio_import_manifest_view(self, mock_submit):
self.client.post(url, data=data, follow=True)
scan.assert_called_once()

@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.fetch_project_dependencies")
@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.fetch_project_packages")
def test_product_portfolio_import_packages_from_scancodeio_view(self, mock_fetch_packages):
def test_product_portfolio_import_packages_from_scancodeio_view(
self,
mock_fetch_packages,
mock_fetch_dependencies,
):
self.client.login(username=self.super_user.username, password="secret")
mock_fetch_packages.return_value = [
{
Expand All @@ -2828,6 +2833,12 @@ def test_product_portfolio_import_packages_from_scancodeio_view(self, mock_fetch
"primary_language": "Java",
}
]
mock_fetch_dependencies.return_value = [
{
"purl": "pkg:pypi/aboutcode-toolkit@10",
}
]

scancodeproject = ScanCodeProject.objects.create(
product=self.product1,
dataspace=self.product1.dataspace,
Expand Down Expand Up @@ -2875,12 +2886,12 @@ def test_product_portfolio_import_packages_from_scancodeio_view(self, mock_fetch
self.assertEqual("Load Packages from SBOMs", notif.verb)
self.assertEqual(self.product1, notif.action_object)
self.assertEqual(self.super_user, notif.recipient)
self.assertEqual("- Imported 1 package.", notif.description)
expected_message = "- Imported 1 package.\n- 1 dependency error occurred during import."
self.assertEqual(expected_message, notif.description)

scancodeproject.refresh_from_db()
self.assertEqual("success", scancodeproject.status)
expected = ["- Imported 1 package."]
self.assertEqual(expected, scancodeproject.import_log)
self.assertEqual(expected_message.split("\n"), scancodeproject.import_log)

@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.find_project")
def test_product_portfolio_pull_project_data_from_scancodeio_view(self, mock_find_project):
Expand Down

0 comments on commit 4d6ca9c

Please sign in to comment.