Commit 2bf0efc6 authored by PidgeyL's avatar PidgeyL
Browse files

unittest update

parent 5b2a66b9
Loading
Loading
Loading
Loading

test/test_API.py

0 → 100644
+63 −0
Original line number Diff line number Diff line
import unittest

import datetime
import json

from urllib.request import urlopen

from lib.DatabaseLayer2 import DatabaseLayer # TODO: Rename
from lib.Objects        import CAPEC, CWE, CPE, CVE, Impact, Access

class TestAPI(unittest.TestCase):
    # Unittest functions
    def setUp(self):
        self.db = DatabaseLayer(_db="cvedb_test")
        self.capec1 = CAPEC(id="10000", name="test_capec",
                       summary="no summary",
                       prerequisites="No prerequisites",
                       solutions="There's no solution",
                       weaknesses=["10000"])
        self.cwe1 = CWE(id="10000", name="test_cwe",
                        description="test cwe", status="testing",
                        weakness='Testing')
        self.cpe1 = CPE(id="cpe:/a:test:test1", title="Test CPE 1",
                        references=[])
        self.cpe2 = CPE(id="cpe:2.3:a:test:test2", title="Test CPE 2",
                        references=[])
        self.cve1 = CVE(id="CVE-0001-0001", cvss=0.1,
                        summary="Test Vulnerability",
                        vulnerable_configuration=[self.cpe1, self.cpe2],
                        published=datetime.datetime(2017,1,1),
                        impact=Impact("None", "None", "None"),
                        access=Access("Low", "None", "Local"),
                        cwe=self.cwe1)

        self.db.CAPEC.upsert(self.capec1)
        self.db.CWE.upsert(self.cwe1)
        self.db.CPE.upsert([self.cpe1, self.cpe2])
        self.db.CVE.upsert(self.cve1)

    def tearDown(self):
        del self.db
        del self.capec1
        del self.cwe1
        del self.cpe1
        del self.cpe2
        del self.cve1

    # Testing Functions
    def response_check(self, url, expected):
        url = 'http://localhost:5000/api/%s'%url
        data = json.loads((urlopen(url).read()).decode('utf8'))
        print(data)
        self.assertEqual(expected, data)

    def test_api_capec(self):
         expected = {"id": "10000",
                     "name": "test_capec",
                     "prerequisites": "No prerequisites",
                     "related_weakness": [ "10000" ],
                     "solutions": "There's no solution",   
                     "summary": "no summary"}
         self.response_check("capec/10000", expected)
+7 −8
Original line number Diff line number Diff line
@@ -154,13 +154,13 @@ class TestDatabase(unittest.TestCase):


    def test_insert_cve(self):
        self.db.CVE.upsert(self.cve)
        self.db.CVE.upsert(self.cve1)
        result = self.db.CVE.get(self.cve1.id)
        assert self.cve1.id      == result.id
        assert self.cve1.summary == result.summary
        assert self.cve1.cvss    == result.cvss

class TestDatabase(unittest.TestCase):
class TestDatabaseLayer(unittest.TestCase):
    # Unittest functions
    def setUp(self):
        self.db = DatabaseLayer(_db="cvedb_test")
@@ -184,6 +184,11 @@ class TestDatabase(unittest.TestCase):
                        access=Access("Low", "None", "Local"),
                        cwe=self.cwe1)

        self.db.CAPEC.upsert(self.capec1)
        self.db.CWE.upsert(self.cwe1)
        self.db.CPE.upsert([self.cpe1, self.cpe2])
        self.db.CVE.upsert(self.cve1)

    def tearDown(self):
        del self.db
        del self.capec1
@@ -192,13 +197,7 @@ class TestDatabase(unittest.TestCase):
        del self.cpe2
        del self.cve1


    def test_reconstruction_cve(self):
        self.db.CAPEC.upsert(self.capec1)
        self.db.CWE.upsert(self.cwe1)
        self.db.CPE.upsert([self.cpe1, self.cpe2])
        self.db.CVE.upsert(self.cve1)

        result = self.db.CVE.get(self.cve1.id)

        assert self.cve1.cwe.name == result.cwe.name