|
| 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