Skip to content

Commit 67c461d

Browse files
committed
Fix tests
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 219cb94 commit 67c461d

9 files changed

Lines changed: 30 additions & 28 deletions

File tree

vulnerabilities/improvers/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
enhance_with_metasploit as enhance_with_metasploit_v2,
2828
)
2929
from vulnerabilities.pipelines.v2_improvers import flag_ghost_packages as flag_ghost_packages_v2
30+
from vulnerabilities.pipelines.v2_improvers import (
31+
group_advisories_for_packages as group_advisories_for_packages_v2,
32+
)
3033
from vulnerabilities.pipelines.v2_improvers import mark_unfurl_version_range
3134
from vulnerabilities.pipelines.v2_improvers import reference_collect_commits
3235
from vulnerabilities.pipelines.v2_improvers import relate_severities
@@ -71,5 +74,6 @@
7174
compute_package_risk.ComputePackageRiskPipeline,
7275
compute_package_version_rank.ComputeVersionRankPipeline,
7376
populate_vulnerability_summary_pipeline.PopulateVulnerabilitySummariesPipeline,
77+
group_advisories_for_packages_v2.GroupAdvisoriesForPackages,
7478
]
7579
)

vulnerabilities/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3624,7 +3624,7 @@ def with_is_vulnerable(self):
36243624
ImpactedPackage.objects.filter(
36253625
affecting_packages__pk=OuterRef("pk"),
36263626
advisory__is_latest=True,
3627-
advisory___all_impacts_unfurled=True,
3627+
advisory___all_impacts_unfurled_at__isnull=False,
36283628
)
36293629
)
36303630
)

vulnerabilities/pipelines/v2_improvers/mark_unfurl_version_range.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99

1010
from collections import defaultdict
1111
from datetime import timedelta
12-
from django.utils import timezone
1312

1413
from django.db import transaction
1514
from django.db.models import Exists
1615
from django.db.models import Min
1716
from django.db.models import OuterRef
1817
from django.db.models import Q
18+
from django.utils import timezone
1919

2020
from vulnerabilities.models import AdvisoryV2
2121
from vulnerabilities.models import ImpactedPackage

vulnerabilities/pipes/export.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def package_prefetched_qs(checkpoint):
2626
Prefetch(
2727
"affected_in_impacts",
2828
queryset=ImpactedPackage.objects.filter(
29-
advisory__is_latest=True, advisory___all_impacts_unfurled=True
29+
advisory__is_latest=True, advisory___all_impacts_unfurled_at__isnull=False
3030
)
3131
.only("advisory_id")
3232
.prefetch_related(
@@ -39,7 +39,7 @@ def package_prefetched_qs(checkpoint):
3939
Prefetch(
4040
"fixed_in_impacts",
4141
queryset=ImpactedPackage.objects.filter(
42-
advisory__is_latest=True, advisory___all_impacts_unfurled=True
42+
advisory__is_latest=True, advisory___all_impacts_unfurled_at__isnull=False
4343
)
4444
.only("advisory_id")
4545
.prefetch_related(

vulnerabilities/tests/pipelines/exporters/test_federate_vulnerabilities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
import tempfile
1212
from datetime import datetime
1313
from datetime import timedelta
14-
from datetime import timezone
1514
from pathlib import Path
1615
from unittest.mock import patch
1716

1817
from django.test import TestCase
18+
from django.utils import timezone
1919
from git import Repo
2020
from packageurl import PackageURL
2121
from univers.version_range import VersionRange

vulnerabilities/tests/pipelines/v2_improvers/test_compute_advisory_todo_v2.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10-
import json
1110
from collections.abc import Mapping
1211
from datetime import datetime
13-
from datetime import timezone
1412

1513
from django.test import TestCase
14+
from django.utils import timezone
1615
from packageurl import PackageURL
1716
from univers.version_range import VersionRange
1817

vulnerabilities/tests/pipelines/v2_improvers/test_compute_package_risk_v2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99
from datetime import datetime
10-
from datetime import timezone
1110
from decimal import Decimal
1211

1312
import pytest
13+
from django.utils import timezone
1414

1515
from vulnerabilities.models import AdvisorySeverity
1616
from vulnerabilities.models import AdvisoryV2

vulnerabilities/tests/pipelines/v2_improvers/test_mark_all_impacts_unfurled.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test_marks_only_fully_successful_advisories(
5151
date_collected="2025-07-01T00:00:00Z",
5252
precedence=1,
5353
is_latest=True,
54-
_all_impacts_unfurled_successfully=False,
54+
_all_impacts_unfurled_successfully_at=None,
5555
)
5656

5757
ImpactedPackage.objects.create(
@@ -71,7 +71,7 @@ def test_marks_only_fully_successful_advisories(
7171
date_collected="2025-07-01T00:00:00Z",
7272
precedence=1,
7373
is_latest=True,
74-
_all_impacts_unfurled_successfully=False,
74+
_all_impacts_unfurled_successfully_at=None,
7575
)
7676

7777
ImpactedPackage.objects.create(
@@ -112,7 +112,7 @@ def test_marks_only_fully_attempted_advisories(
112112
date_collected="2025-07-01T00:00:00Z",
113113
precedence=1,
114114
is_latest=True,
115-
_all_impacts_unfurled_successfully=False,
115+
_all_impacts_unfurled_successfully_at=None,
116116
)
117117

118118
ImpactedPackage.objects.create(
@@ -138,7 +138,7 @@ def test_marks_only_fully_attempted_advisories(
138138
date_collected="2025-07-01T00:00:00Z",
139139
precedence=1,
140140
is_latest=True,
141-
_all_impacts_unfurled_successfully=False,
141+
_all_impacts_unfurled_successfully_at=None,
142142
)
143143

144144
ImpactedPackage.objects.create(
@@ -171,7 +171,7 @@ def test_attempted_advisories_are_chunked_in_batches_of_100(
171171

172172
advisories = []
173173

174-
for i in range(2500):
174+
for i in range(250):
175175
adv = AdvisoryV2.objects.create(
176176
datasource_id="ghsa",
177177
advisory_id=str(i),
@@ -182,7 +182,7 @@ def test_attempted_advisories_are_chunked_in_batches_of_100(
182182
date_collected="2025-07-01T00:00:00Z",
183183
precedence=1,
184184
is_latest=True,
185-
_all_impacts_unfurled_successfully=False,
185+
_all_impacts_unfurled_successfully_at=None,
186186
)
187187

188188
advisories.append(adv)
@@ -205,9 +205,9 @@ def test_attempted_advisories_are_chunked_in_batches_of_100(
205205
second_call_ids = mock_complete_advisories_import.call_args_list[1][1]["advisory_ids"]
206206
third_call_ids = mock_complete_advisories_import.call_args_list[2][1]["advisory_ids"]
207207

208-
assert len(first_call_ids) == 1000
209-
assert len(second_call_ids) == 1000
210-
assert len(third_call_ids) == 500
208+
assert len(first_call_ids) == 100
209+
assert len(second_call_ids) == 100
210+
assert len(third_call_ids) == 50
211211

212212

213213
@pytest.mark.django_db
@@ -228,7 +228,7 @@ def test_returns_only_advisories_with_all_successful_impacts(self):
228228
date_collected="2025-07-01T00:00:00Z",
229229
precedence=1,
230230
is_latest=True,
231-
_all_impacts_unfurled_successfully=False,
231+
_all_impacts_unfurled_successfully_at=None,
232232
)
233233

234234
ImpactedPackage.objects.create(
@@ -252,7 +252,7 @@ def test_returns_only_advisories_with_all_successful_impacts(self):
252252
date_collected="2025-07-01T00:00:00Z",
253253
precedence=1,
254254
is_latest=True,
255-
_all_impacts_unfurled_successfully=False,
255+
_all_impacts_unfurled_successfully_at=None,
256256
)
257257

258258
ImpactedPackage.objects.create(
@@ -284,7 +284,7 @@ def test_returns_only_advisories_with_all_successful_impacts(self):
284284
date_collected="2025-07-01T00:00:00Z",
285285
precedence=1,
286286
is_latest=True,
287-
_all_impacts_unfurled_successfully=False,
287+
_all_impacts_unfurled_successfully_at=None,
288288
)
289289

290290
ImpactedPackage.objects.create(
@@ -308,7 +308,7 @@ def test_returns_only_advisories_with_all_successful_impacts(self):
308308
date_collected="2025-07-01T00:00:00Z",
309309
precedence=1,
310310
is_latest=True,
311-
_all_impacts_unfurled_successfully=False,
311+
_all_impacts_unfurled_successfully_at=None,
312312
)
313313

314314
ImpactedPackage.objects.create(
@@ -354,7 +354,7 @@ def test_returns_only_advisories_with_all_impacts_attempted(self):
354354
date_collected="2025-07-01T00:00:00Z",
355355
precedence=1,
356356
is_latest=True,
357-
_all_impacts_unfurled_successfully=False,
357+
_all_impacts_unfurled_successfully_at=None,
358358
)
359359

360360
ImpactedPackage.objects.create(
@@ -383,7 +383,7 @@ def test_returns_only_advisories_with_all_impacts_attempted(self):
383383
date_collected="2025-07-01T00:00:00Z",
384384
precedence=1,
385385
is_latest=True,
386-
_all_impacts_unfurled_successfully=False,
386+
_all_impacts_unfurled_successfully_at=None,
387387
)
388388

389389
ImpactedPackage.objects.create(
@@ -411,7 +411,7 @@ def test_returns_only_advisories_with_all_impacts_attempted(self):
411411
date_collected="2025-07-01T00:00:00Z",
412412
precedence=1,
413413
is_latest=True,
414-
_all_impacts_unfurled_successfully=False,
414+
_all_impacts_unfurled_successfully_at=None,
415415
)
416416

417417
ImpactedPackage.objects.create(
@@ -439,7 +439,7 @@ def test_returns_only_advisories_with_all_impacts_attempted(self):
439439
date_collected="2025-07-01T00:00:00Z",
440440
precedence=1,
441441
is_latest=True,
442-
_all_impacts_unfurled_successfully=False,
442+
_all_impacts_unfurled_successfully_at=None,
443443
)
444444

445445
ImpactedPackage.objects.create(

vulnerabilities/tests/test_api_v3.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10-
from datetime import timezone
11-
1210
from django.urls import reverse
11+
from django.utils import timezone
1312
from packageurl import PackageURL
1413
from rest_framework import status
1514
from rest_framework.test import APIClient
@@ -70,7 +69,7 @@ def test_packages_post_without_details(self):
7069
def test_packages_post_with_details(self):
7170
url = reverse("package-v3-list")
7271

73-
with self.assertNumQueries(12):
72+
with self.assertNumQueries(13):
7473
response = self.client.post(
7574
url,
7675
data={

0 commit comments

Comments
 (0)