Initial Builder

This commit is contained in:
root committed 2026-11-11 22:14:44 +01:00
1 parent dd8b159ff5
commit 6e67bae676
6 files changed
+418 -121

No files matched your search

+34
View File
@@ -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()