Skip to content

Commit 55b87ae

Browse files
committed
test: verify latest advisory is updated on new advisory insertion
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent d671ebd commit 55b87ae

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

vulnerabilities/tests/pipes/test_advisory.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@
1818

1919
from vulnerabilities import models
2020
from vulnerabilities.importer import AdvisoryData
21+
from vulnerabilities.importer import AdvisoryDataV2
2122
from vulnerabilities.importer import AffectedPackage
23+
from vulnerabilities.importer import AffectedPackageV2
2224
from vulnerabilities.importer import PackageCommitPatchData
2325
from vulnerabilities.importer import Reference
2426
from vulnerabilities.models import AdvisoryAlias
2527
from vulnerabilities.models import AdvisoryReference
2628
from vulnerabilities.models import AdvisorySeverity
29+
from vulnerabilities.models import AdvisoryV2
2730
from vulnerabilities.models import AdvisoryWeakness
2831
from vulnerabilities.models import PackageCommitPatch
2932
from vulnerabilities.pipes.advisory import get_or_create_advisory_aliases
@@ -33,6 +36,8 @@
3336
from vulnerabilities.pipes.advisory import get_or_create_advisory_weaknesses
3437
from vulnerabilities.pipes.advisory import get_or_create_aliases
3538
from vulnerabilities.pipes.advisory import import_advisory
39+
from vulnerabilities.pipes.advisory import insert_advisory_v2
40+
from vulnerabilities.tests.pipelines import TestLogger
3641
from vulnerabilities.utils import compute_content_id
3742

3843

@@ -257,3 +262,76 @@ def test_get_or_create_advisory_commit(advisory_commit):
257262
assert isinstance(commit, PackageCommitPatch)
258263
assert commit.commit_hash in [c.commit_hash for c in advisory_commit]
259264
assert commit.vcs_url in [c.vcs_url for c in advisory_commit]
265+
266+
267+
class TestLatestAdvisoryV2(TestCase):
268+
def setUp(self):
269+
self.logger = TestLogger()
270+
self.advisory1 = AdvisoryDataV2(
271+
summary="Test advisory old",
272+
aliases=["CVE-2025-0001"],
273+
references=[],
274+
severities=[],
275+
weaknesses=[],
276+
affected_packages=[
277+
AffectedPackageV2(
278+
package=PackageURL.from_string("pkg:npm/foobar"),
279+
affected_version_range=VersionRange.from_string("vers:npm/>3.2.1|<4.0.0"),
280+
fixed_version_range=VersionRange.from_string("vers:npm/4.0.0"),
281+
introduced_by_commit_patches=[],
282+
fixed_by_commit_patches=[],
283+
),
284+
],
285+
patches=[],
286+
advisory_id="GHSA-1234",
287+
url="https://example.com/advisory",
288+
)
289+
290+
self.advisory2 = AdvisoryDataV2(
291+
summary="Test advisory new",
292+
aliases=["CVE-2025-0001"],
293+
references=[],
294+
severities=[],
295+
weaknesses=[],
296+
affected_packages=[
297+
AffectedPackageV2(
298+
package=PackageURL.from_string("pkg:npm/foobar"),
299+
affected_version_range=VersionRange.from_string("vers:npm/>3.2.1|<4.0.0"),
300+
fixed_version_range=VersionRange.from_string("vers:npm/4.0.0"),
301+
introduced_by_commit_patches=[],
302+
fixed_by_commit_patches=[],
303+
),
304+
AffectedPackageV2(
305+
package=PackageURL.from_string("pkg:npm/foobar"),
306+
affected_version_range=None,
307+
fixed_version_range=None,
308+
introduced_by_commit_patches=[],
309+
fixed_by_commit_patches=[
310+
PackageCommitPatchData(
311+
vcs_url="https://foobar.vcs/",
312+
commit_hash="982f801f",
313+
),
314+
],
315+
),
316+
],
317+
patches=[],
318+
advisory_id="GHSA-1234",
319+
url="https://example.com/advisory",
320+
)
321+
322+
insert_advisory_v2(
323+
advisory=self.advisory1,
324+
pipeline_id="test_pipeline_v2",
325+
logger=self.logger.write,
326+
)
327+
328+
def test_latest_advisory_update_on_advisory_insert(self):
329+
adv_old = AdvisoryV2.objects.get(avid="test_pipeline_v2/GHSA-1234", is_latest=True)
330+
insert_advisory_v2(
331+
advisory=self.advisory2,
332+
pipeline_id="test_pipeline_v2",
333+
logger=self.logger.write,
334+
)
335+
adv_new = AdvisoryV2.objects.get(avid="test_pipeline_v2/GHSA-1234", is_latest=True)
336+
self.assertEqual("Test advisory old", adv_old.summary)
337+
self.assertEqual("Test advisory new", adv_new.summary)

0 commit comments

Comments
 (0)