Initial Builder
This commit is contained in:
1 parent
dd8b159ff5
commit
6e67bae676
6 files changed
+418
-121
No files matched your search
@@ -0,0 +1,34 @@
|
||||
import json
|
||||
import sqlite3
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
sys.path.insert(0,str(Path(__file__).resolve().parents[1]/'scripts'))
|
||||
from build import process_cve,process_nvd,process_osv,walk_cpe
|
||||
|
||||
class TestBuild(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.conn=sqlite3.connect(':memory:')
|
||||
self.conn.executescript((Path(__file__).resolve().parents[1]/'sql/schema.sql').read_text())
|
||||
def tearDown(self):
|
||||
self.conn.close()
|
||||
def test_cve(self):
|
||||
self.assertTrue(process_cve(self.conn,{'cveMetadata':{'cveId':'CVE-2026-12345','state':'PUBLISHED'}}))
|
||||
self.assertEqual(self.conn.execute('select state from vulnerabilities').fetchone()[0],'PUBLISHED')
|
||||
def test_osv_range_preserved(self):
|
||||
self.assertTrue(process_osv(self.conn,{'id':'GHSA-abcd-efgh-ijkl','aliases':['CVE-2026-12345'],
|
||||
'affected':[{'package':{'ecosystem':'PyPI','name':'foo'},'ranges':[{'type':'ECOSYSTEM','events':[{'introduced':'0'},{'fixed':'2.0'}]}]}]}))
|
||||
row=self.conn.execute('select ranges_json from affected_packages').fetchone()[0]
|
||||
self.assertIn('fixed',row)
|
||||
self.assertEqual(self.conn.execute('select count(*) from aliases').fetchone()[0],1)
|
||||
def test_nvd_ignores_and(self):
|
||||
self.assertTrue(process_nvd(self.conn,{'cve':{'id':'CVE-2026-12345','configurations':[
|
||||
{'nodes':[{'operator':'AND','cpeMatch':[{'criteria':'cpe:2.3:a:foo'}]}]}]}}))
|
||||
self.assertEqual(self.conn.execute('select count(*) from cpe_matches').fetchone()[0],0)
|
||||
def test_simple_nvd(self):
|
||||
self.assertTrue(process_nvd(self.conn,{'cve':{'id':'CVE-2026-12345','configurations':[
|
||||
{'nodes':[{'operator':'OR','cpeMatch':[{'criteria':'cpe:2.3:a:vendor:product:*:*:*:*:*:*:*:*','vulnerable':True}]}]}]}}))
|
||||
self.assertEqual(self.conn.execute('select count(*) from cpe_matches').fetchone()[0],1)
|
||||
|
||||
if __name__=='__main__': unittest.main()
|
||||
Reference in new issue
Block a user