diff --git a/vulnerabilities/data_dump.py b/vulnerabilities/data_dump.py index 561c91bb2..06b3a9ce1 100644 --- a/vulnerabilities/data_dump.py +++ b/vulnerabilities/data_dump.py @@ -34,12 +34,12 @@ def debian_dump(extract_data): Save data scraped from Debian' security tracker. """ for data in extract_data: - vulnerability = Vulnerability.objects.create( + vulnerability = Vulnerability.objects.update_or_create( summary=data.get('description', ''), ) VulnerabilityReference.objects.create( vulnerability=vulnerability, - reference_id=data.get('vulnerability_id', ''), + reference_id=data.get('vulnerability_id', '') ) package = Package.objects.create( name=data.get('package_name', ''), @@ -61,7 +61,7 @@ def ubuntu_dump(html): ) VulnerabilityReference.objects.create( vulnerability=vulnerability, - reference_id=data.get('cve_id'), + reference_id=data.get('cve_id') ) package = Package.objects.create( name=data.get('package_name'), diff --git a/vulnerabilities/tests/test_data/debian.json b/vulnerabilities/tests/test_data/debian.json index 843d43842..4c8723dcd 100644 --- a/vulnerabilities/tests/test_data/debian.json +++ b/vulnerabilities/tests/test_data/debian.json @@ -31,11 +31,11 @@ "urgency": "medium", "fixed_version": "1.50-1.1"}}}, -"CVE-2009-2459": - {"scope": "un-remote", - "debianbug": 537254, - "description": "Multiple unspecified vulnerabilities in mimeTeX.", - "releases": +"CVE-2009-2459": + {"scope": "un-remote", + "debianbug": 537254, + "description": "Multiple unspecified vulnerabilities in mimeTeX.", + "releases": {"stretch": {"status": "resolved", "repositories": {"stretch": "1.74-1"}, @@ -102,4 +102,5 @@ } } } - } \ No newline at end of file + } + diff --git a/vulnerabilities/tests/test_data_dump.py b/vulnerabilities/tests/test_data_dump.py index d538ab88f..30f68a744 100644 --- a/vulnerabilities/tests/test_data_dump.py +++ b/vulnerabilities/tests/test_data_dump.py @@ -63,8 +63,10 @@ def test_debian_data_dump(self): self.assertTrue(Vulnerability.objects.get( summary='Multiple stack-based buffer overflows in mimetex.cgi in mimeTeX')) - self.assertTrue(Vulnerability.objects.get( + self.assertFalse(Vulnerability.objects.get( summary='Multiple unspecified vulnerabilities in mimeTeX.')) + self.assertTrue(Vulnerability.objects.get( + scope='punni')) self.assertTrue(VulnerabilityReference.objects.get(reference_id='CVE-2009-2458'))