From c303061e9f08bca947ba3ab518c7dc6f9ec4c9f2 Mon Sep 17 00:00:00 2001 From: w3lld1 <42353747+w3lld1@users.noreply.github.com> Date: Wed, 29 Jul 2026 01:36:58 +0200 Subject: [PATCH] fix: return no advisory for unknown IDs Signed-off-by: w3lld1 <42353747+w3lld1@users.noreply.github.com> --- vulnerabilities/models.py | 5 ++++- .../tests/test_same_avid_different_content_id.py | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/vulnerabilities/models.py b/vulnerabilities/models.py index 826d35a54..952f3ce86 100644 --- a/vulnerabilities/models.py +++ b/vulnerabilities/models.py @@ -2926,7 +2926,10 @@ def to_dict(self): class AdvisoryV2QuerySet(BaseQuerySet): def latest_for_avid(self, avid: str): - return self.get(avid=avid, is_latest=True) + try: + return self.get(avid=avid, is_latest=True) + except self.model.DoesNotExist: + return None def latest_per_avid(self): return self.filter(is_latest=True) diff --git a/vulnerabilities/tests/test_same_avid_different_content_id.py b/vulnerabilities/tests/test_same_avid_different_content_id.py index 6e60ab4c3..ae8900953 100644 --- a/vulnerabilities/tests/test_same_avid_different_content_id.py +++ b/vulnerabilities/tests/test_same_avid_different_content_id.py @@ -55,6 +55,14 @@ def test_latest_for_avid_returns_latest_by_date_collected( assert result.id != older.id +@pytest.mark.django_db +def test_latest_for_avid_returns_none_when_advisory_does_not_exist(django_assert_num_queries): + with django_assert_num_queries(1): + result = AdvisoryV2.objects.latest_for_avid("pysec/PYSEC-3000-0") + + assert result is None + + @pytest.mark.django_db def test_latest_for_avid_tie_breaks_by_id(advisory_factory, django_assert_num_queries): avid = "source/ADV-2"