Skip to content

Commit de5a504

Browse files
committed
Add support for using package_url as a field lookup
Signed-off-by: tdruez <tdruez@nexb.com>
1 parent 3ca21c2 commit de5a504

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

scanpipe/models.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2943,6 +2943,13 @@ def only_package_url_fields(self):
29432943
"""
29442944
return self.only("uuid", *PACKAGE_URL_FIELDS)
29452945

2946+
def filter(self, *args, **kwargs):
2947+
"""Add support for using ``package_url`` as a field lookup."""
2948+
if purl_str := kwargs.pop("package_url", None):
2949+
return super().filter(*args, **kwargs).for_package_url(purl_str)
2950+
2951+
return super().filter(*args, **kwargs)
2952+
29462953

29472954
class AbstractPackage(models.Model):
29482955
"""These fields should be kept in line with `packagedcode.models.PackageData`."""

scanpipe/tests/test_models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1806,6 +1806,8 @@ def test_scanpipe_discovered_package_queryset_for_package_url(self):
18061806
for purl, expected_count in inputs:
18071807
qs = DiscoveredPackage.objects.for_package_url(purl)
18081808
self.assertEqual(expected_count, qs.count(), msg=purl)
1809+
qs2 = DiscoveredPackage.objects.filter(package_url=purl)
1810+
self.assertEqual(expected_count, qs2.count(), msg=purl)
18091811

18101812
def test_scanpipe_discovered_package_queryset_vulnerable(self):
18111813
p1 = DiscoveredPackage.create_from_data(self.project1, package_data1)

0 commit comments

Comments
 (0)