-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtest_attack_lookup.py
43 lines (32 loc) · 1.76 KB
/
test_attack_lookup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import unittest
from attack_lookup.mapping import AttackMapping
class AttackLookupTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.mapping = AttackMapping()
if not cls.mapping.load_data():
raise Exception("failed to load att&ck data")
def test_single_id(self):
self.assertEqual("Hijack Execution Flow", self.mapping.lookup("T1574"))
self.assertEqual("Hijack Execution Flow", self.mapping.lookup("t1574"))
self.assertEqual("Resource Development", self.mapping.lookup("TA0042"))
self.assertEqual("Resource Development", self.mapping.lookup("tA0042"))
def test_multiple_results(self):
self.assertEqual("Multiple possible values: T1583.001, T1584.001", self.mapping.lookup("Domains"))
def test_nothing(self):
self.assertTrue("No value found for" in self.mapping.lookup("nonexistent technique asdf"))
class AttackOfflineLookupTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.mapping = AttackMapping(offline=True)
if not cls.mapping.load_data():
raise Exception("failed to load att&ck data")
def test_single_id(self):
self.assertEqual("Hijack Execution Flow", self.mapping.lookup("T1574"))
self.assertEqual("Hijack Execution Flow", self.mapping.lookup("t1574"))
self.assertEqual("Resource Development", self.mapping.lookup("TA0042"))
self.assertEqual("Resource Development", self.mapping.lookup("tA0042"))
def test_multiple_results(self):
self.assertEqual("Multiple possible values: T1583.001, T1584.001", self.mapping.lookup("Domains"))
def test_nothing(self):
self.assertTrue("No value found for" in self.mapping.lookup("nonexistent technique asdf"))