예제 #1
0
class CheckerProcessTestCase(unittest.TestCase, DBTestCaseMixin):
    def setUp(self):
        config = ConfigObj(config_path)['CORE']
        self.db_host = config['DATABASE']['HOST']
        self.db_port = config['DATABASE']['PORT']
        self.db_name = config['DATABASE']['DB_NAME']
        self.check_delay =  config['DAEMON']['CHECK_DELAY']
        self.init_db_data(self.db_host, self.db_port, self.db_name)
        self.db_wrapper = MongoDBWrapper(self.db_host, int(self.db_port), self.db_name)
        self.team = '6'

    def setup_process_with_no_checks(self):
        self.checkers = []
        self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)

    def setup_process_with_service_check(self):
        service_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleServiceCheck'][0]
        self.checkers = [
            ActiveCheck(service_check['id'], SampleServiceCheck)
        ]
        self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)

    def setup_process_with_inject_check(self):
        inject_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleInjectCheck'][0]
        self.checkers =[
            ActiveCheck(inject_check['id'], SampleInjectCheck)
        ]
        self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)

    def setup_process_with_attacker_check(self):
        attacker_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleAttackerCheck' and obj['team_id'] == self.team][0]
        self.checkers =[
            ActiveCheck(attacker_check['id'], SampleAttackerCheck)
        ]
        self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)

    def setup_process_with_all_check_types(self):
        service_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleServiceCheck'][0]
        inject_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleInjectCheck'][0]
        attacker_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleAttackerCheck' and obj['team_id'] == self.team][0]
        self.checkers = [
            ActiveCheck(service_check['id'], SampleServiceCheck),
            ActiveCheck(inject_check['id'], SampleInjectCheck),
            ActiveCheck(attacker_check['id'], SampleAttackerCheck)
        ]
        self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)

    def tearDown(self):
        if self.process.is_alive():
            self.process.shutdown_event.set()
            self.process.join(5)
            self.process.terminate()
        self.drop_db_data()
예제 #2
0
 def setup_process_with_all_check_types(self):
     service_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleServiceCheck'][0]
     inject_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleInjectCheck'][0]
     attacker_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleAttackerCheck' and obj['team_id'] == self.team][0]
     self.checkers = [
         ActiveCheck(service_check['id'], SampleServiceCheck),
         ActiveCheck(inject_check['id'], SampleInjectCheck),
         ActiveCheck(attacker_check['id'], SampleAttackerCheck)
     ]
     self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)
예제 #3
0
 def setup_process_with_inject_check(self):
     inject_check = [obj for obj in self.data['active_checks'] if obj['class_name'] == 'SampleInjectCheck'][0]
     self.checkers =[
         ActiveCheck(inject_check['id'], SampleInjectCheck)
     ]
     self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)
예제 #4
0
 def setup_process_with_no_checks(self):
     self.checkers = []
     self.process = CheckerProcess(self.team, self.checkers, self.db_host, int(self.db_port), self.db_name, self.check_delay)