Skip to content

Commit 6b38d32

Browse files
committed
Add unit test #295
Signed-off-by: tdruez <[email protected]>
1 parent 3be839d commit 6b38d32

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

product_portfolio/tests/test_importers.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,6 +1121,49 @@ def test_product_portfolio_import_packages_from_scio_importer_multiple_package_o
11211121
self.assertEqual({}, existing)
11221122
self.assertEqual({}, errors)
11231123

1124+
@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.fetch_project_dependencies")
1125+
@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.fetch_project_packages")
1126+
def test_product_portfolio_import_packages_from_scio_importer_look_for_existing_package(
1127+
self, mock_fetch_packages, mock_fetch_dependencies
1128+
):
1129+
purl = "pkg:maven/org.apache.activemq/[email protected]"
1130+
filename = "activemq-camel.zip"
1131+
download_url = "https://download.url/activemq-camel.zip"
1132+
package1 = make_package(self.dataspace, package_url=purl)
1133+
package2 = make_package(self.dataspace, package_url=purl, filename=filename)
1134+
1135+
package_data = {
1136+
"type": "maven",
1137+
"namespace": "org.apache.activemq",
1138+
"name": "activemq-camel",
1139+
"version": "5.11.0",
1140+
"purl": purl,
1141+
}
1142+
mock_fetch_packages.return_value = [package_data]
1143+
mock_fetch_dependencies.return_value = []
1144+
1145+
importer = ImportPackageFromScanCodeIO(
1146+
user=self.super_user,
1147+
project_uuid=uuid.uuid4(),
1148+
product=self.product1,
1149+
)
1150+
1151+
# Check if the Package already exists in the local Dataspace
1152+
# Using exact match first: purl + download_url + filename
1153+
package = importer.look_for_existing_package(package_data)
1154+
self.assertEqual(package1, package)
1155+
1156+
# 2 packages are matched, cannot defined the one that should be used
1157+
package1.update(download_url=download_url)
1158+
package = importer.look_for_existing_package(package_data)
1159+
self.assertIsNone(package)
1160+
1161+
# If the package data does not include a download_url value:
1162+
# Attemp to find an existing package using purl-only match.
1163+
package2.delete()
1164+
package = importer.look_for_existing_package(package_data)
1165+
self.assertEqual(package1, package)
1166+
11241167
@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.fetch_project_dependencies")
11251168
@mock.patch("dejacode_toolkit.scancodeio.ScanCodeIO.fetch_project_packages")
11261169
def test_product_portfolio_import_packages_from_scio_importer_duplicate_dependency(

0 commit comments

Comments
 (0)