Add test for AttackTechnique

Issue with `_check_status` function since it tries to fetch from mongodb which doesn't exist in testing env
This commit is contained in:
Shreya 2020-07-18 19:10:34 +05:30
parent 740dc43727
commit 6456564cae
1 changed files with 27 additions and 30 deletions

View File

@ -1,7 +1,10 @@
import json
from unittest import TestCase from unittest import TestCase
from common.utils.attack_utils import ScanStatus from common.utils.attack_utils import ScanStatus
from monkey_island.cc.database import mongo
from . import AttackTechnique
from .pba_technique import PostBreachTechnique from .pba_technique import PostBreachTechnique
@ -13,27 +16,27 @@ class T9999(PostBreachTechnique):
pba_names = ["PBA Name"] pba_names = ["PBA Name"]
# config =\ config =\
# { {
# 'category': { 'category': {
# 'link': '', 'link': '',
# 'properties': { 'properties': {
# 'T9999': { 'T9999': {
# 'description': '', 'description': '',
# 'link': '', 'link': '',
# 'necessary': False, 'necessary': False,
# 'title': '', 'title': '',
# 'type': 'bool', 'type': 'bool',
# 'value': False # this field denotes whether technique is enabled or disabled in config 'value': False # this field denotes whether technique is enabled or disabled in config
# } }
# } }
# } }
# } }
# def set_config(value: bool): def set_config(value: bool):
# config['category']['properties']['T9999']['value'] = value config['category']['properties']['T9999']['value'] = value
# return config return config
param_list = [ param_list = [
@ -45,8 +48,7 @@ param_list = [
'status': 0, 'status': 0,
'title': 'Unscanned technique' 'title': 'Unscanned technique'
}, },
# set_config(True), # configuration set_config(True), # configuration
True, # configuration
ScanStatus.UNSCANNED.value # expected status ScanStatus.UNSCANNED.value # expected status
), ),
@ -58,8 +60,7 @@ param_list = [
'status': 1, 'status': 1,
'title': 'Scanned technique' 'title': 'Scanned technique'
}, },
# set_config(True), # configuration set_config(True), # configuration
True, # configuration
ScanStatus.SCANNED.value # expected status ScanStatus.SCANNED.value # expected status
), ),
@ -71,8 +72,7 @@ param_list = [
'status': 2, 'status': 2,
'title': 'Used technique' 'title': 'Used technique'
}, },
# set_config(True), # configuration set_config(True), # configuration
True, # configuration
ScanStatus.USED.value # expected status ScanStatus.USED.value # expected status
), ),
@ -84,8 +84,7 @@ param_list = [
'status': 0, 'status': 0,
'title': 'Disabled technique' 'title': 'Disabled technique'
}, },
# set_config(False), # configuration set_config(False), # configuration
False, # configuration
ScanStatus.DISABLED.value # expected status ScanStatus.DISABLED.value # expected status
) )
] ]
@ -95,6 +94,4 @@ class TestAttackTechnique(TestCase):
def test__check_status(self): def test__check_status(self):
for telem_data, config, expected_status in param_list: for telem_data, config, expected_status in param_list:
with self.subTest(msg=f"Checking if correct status is returned (status: {telem_data['message']})"): with self.subTest(msg=f"Checking if correct status is returned (status: {telem_data['message']})"):
# self.assertEqual(T9999._check_status(telem_data['status']), expected_status) self.assertEqual(T9999._check_status(telem_data['status']), expected_status)
self.assertEqual(T9999._check_status(telem_data['status'], config),
expected_status)