Skip to content

Commit 4e55bbe

Browse files
committed
Added a failing tests to show multiple vulnerabilities are created for single advisory without aliases
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 0a0460b commit 4e55bbe

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#
2+
# Copyright (c) nexB Inc. and others. All rights reserved.
3+
# VulnerableCode is a trademark of nexB Inc.
4+
# SPDX-License-Identifier: Apache-2.0
5+
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
6+
# See https://github.com/nexB/vulnerablecode for support or download.
7+
# See https://aboutcode.org for more information about nexB OSS projects.
8+
#
9+
10+
from django.test import TestCase
11+
from packageurl import PackageURL
12+
from univers.versions import PypiVersion
13+
14+
from vulnerabilities.importer import AffectedPackage
15+
from vulnerabilities.importer import Reference
16+
from vulnerabilities.improve_runner import ImproveRunner
17+
from vulnerabilities.improvers.default import DefaultImprover
18+
from vulnerabilities.models import Advisory
19+
from vulnerabilities.models import Vulnerability
20+
21+
22+
class TestAdvisoryWihoutAlias(TestCase):
23+
def setUp(self):
24+
aff_pkg = [
25+
AffectedPackage(
26+
package=PackageURL(
27+
name="django",
28+
type="pypi",
29+
),
30+
fixed_version=PypiVersion("0.1.0"),
31+
)
32+
]
33+
refs = [
34+
Reference(
35+
url="test-url",
36+
reference_id="test-id",
37+
)
38+
]
39+
self.advisory = Advisory.objects.create(
40+
summary="summary",
41+
affected_packages=[pkg.to_dict() for pkg in aff_pkg],
42+
references=[ref.to_dict() for ref in refs],
43+
date_published="2020-01-01",
44+
date_collected="2020-01-01",
45+
)
46+
47+
def test_count_of_vulns(self):
48+
# Run the improver twice
49+
# We should get single vulnerability for same
50+
# advisory when ran through same improver
51+
ImproveRunner(DefaultImprover).run()
52+
ImproveRunner(DefaultImprover).run()
53+
self.assertEqual(Advisory.objects.count(), 1)
54+
self.assertEqual(Vulnerability.objects.count(), 1)

0 commit comments

Comments
 (0)