2626
2727from django .test import TestCase
2828
29- from vulnerabilities .models import Vulnerability
30- from vulnerabilities .models import VulnerabilityReference
31- from vulnerabilities .models import Package
29+ from vulnerabilities .data_dump import archlinux_dump
3230from vulnerabilities .data_dump import debian_dump
3331from vulnerabilities .data_dump import ubuntu_dump
32+ from vulnerabilities .models import ImpactedPackage
33+ from vulnerabilities .models import Package
34+ from vulnerabilities .models import PackageReference
35+ from vulnerabilities .models import ResolvedPackage
36+ from vulnerabilities .models import Vulnerability
37+ from vulnerabilities .models import VulnerabilityReference
38+ from vulnerabilities .scraper import archlinux
3439from vulnerabilities .scraper import debian
3540from vulnerabilities .scraper import ubuntu
3641
@@ -85,3 +90,30 @@ def test_ubuntu_data_dump(self):
8590 reference = VulnerabilityReference .objects .filter (reference_id = 'CVE-2002-2439' )[0 ]
8691 self .assertEqual (reference .reference_id , 'CVE-2002-2439' )
8792 self .assertTrue (Package .objects .filter (name = 'gcc-4.6' )[0 ].name , 'gcc-4.6' )
93+
94+ def test_archlinux_data_dump (self ):
95+ """
96+ Scrape data from Archlinux' main tracker, save it
97+ in the database and verify entries.
98+ """
99+ with open (os .path .join (TEST_DATA , 'archlinux.json' )) as f :
100+ test_data = json .loads (f .read ())
101+
102+ archlinux_dump (test_data )
103+
104+ self .assertEqual (1 , Vulnerability .objects .count ())
105+ self .assertEqual (14 , VulnerabilityReference .objects .count ())
106+ self .assertEqual (8 , Package .objects .count ())
107+ self .assertEqual (8 , PackageReference .objects .count ())
108+ self .assertEqual (4 , ImpactedPackage .objects .count ())
109+ self .assertEqual (4 , ResolvedPackage .objects .count ())
110+
111+ self .assertTrue (Vulnerability .objects .get (summary = 'multiple issues' ))
112+
113+ self .assertTrue (VulnerabilityReference .objects .get (reference_id = 'CVE-2018-11360' ))
114+
115+ self .assertTrue (VulnerabilityReference .objects .get (reference_id = 'ASA-201805-24' ))
116+
117+ self .assertTrue (VulnerabilityReference .objects .get (reference_id = 'AVG-708' ))
118+
119+ self .assertEqual (Package .objects .filter (name = 'wireshark-cli' )[0 ].name , 'wireshark-cli' )
0 commit comments