def test1receive_atom_min_bin_elements_not_reached(self): """This test verifies, that no statistic evaluation is performed, until the minimal amount of bin elements is reached.""" description = "Test1MatchValueAverageChangeDetector" start_time = 57600 match_element1 = MatchElement(self.cron_job1, b"%d" % start_time, start_time, None) match_value_average_change_detector = MatchValueAverageChangeDetector(self.aminer_config, [ self.stream_printer_event_handler], None, [match_element1.get_path()], 3, start_time, False, 'Default') self.analysis_context.register_component(match_value_average_change_detector, description) # create oldBin log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 1000), start_time + 1000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 1000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 2000), start_time + 2000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 2000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) # compare Data match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 10000), start_time + 10000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 10000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 20000), start_time + 20000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 20000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) self.assertEqual(self.output_stream.getvalue(), '')
def test5more_values(self): """This test case proves the functionality, when using more than one path.""" description = "Test5MatchValueAverageChangeDetector" start_time = time.time() match_element1 = MatchElement(self.cron_job1, b"%d" % start_time, start_time, None) match_element2 = MatchElement(self.cron_job2, b"%d" % start_time, start_time, None) match_value_average_change_detector = MatchValueAverageChangeDetector( self.aminer_config, [self.stream_printer_event_handler], None, [ match_element1.get_path(), match_element2.get_path()], 2, start_time, False, 'Default') self.analysis_context.register_component(match_value_average_change_detector, description) # create oldBin log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 1000), start_time + 1000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 1000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) # create oldBin for ME2 log_atom = LogAtom(match_element2.get_match_object(), ParserMatch(match_element2), start_time, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element2 = MatchElement(self.cron_job2, b"%d" % (start_time + 1000), start_time + 1000, None) log_atom = LogAtom( match_element2.get_match_object(), ParserMatch(match_element2), start_time + 1000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) # compare data match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 10000), start_time + 10000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 10000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 20000), start_time + 20000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 20000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) self.assertEqual(self.output_stream.getvalue(), '') # compare data with ME2 match_element2 = MatchElement(self.cron_job2, b"%d" % (start_time + 11000), start_time + 11000, None) log_atom = LogAtom( match_element2.get_match_object(), ParserMatch(match_element2), start_time + 11000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element2 = MatchElement(self.cron_job2, b"%d" % (start_time + 22000), start_time + 22000, None) log_atom = LogAtom( match_element2.get_match_object(), ParserMatch(match_element2), start_time + 22000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) self.assertEqual(self.output_stream.getvalue(), self.__expected_string2 % ( datetime.fromtimestamp(start_time + 22000).strftime("%Y-%m-%d %H:%M:%S"), match_value_average_change_detector.__class__.__name__, description, 4, start_time + 15000, start_time + 500, start_time + 16500, start_time + 500))
def test3receive_atom_statistically_ok(self): """This test case focuses on receiving an atom and being in the statistically acceptable area.""" description = "Test3MatchValueAverageChangeDetector" start_time = 57600 match_element1 = MatchElement(self.cron_job1, "%s" % start_time, start_time, []) match_value_average_change_detector = MatchValueAverageChangeDetector( self.aminer_config, [self.stream_printer_event_handler], 'time', [match_element1.get_path()], 3, start_time, False, 'Default') self.analysis_context.register_component( match_value_average_change_detector, description) # create oldBin log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, "%s" % (start_time + 1000), start_time + 1000, []) log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time + 1000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, "%s" % (start_time + 2000), start_time + 2000, []) log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time + 2000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) # compare Data match_element1 = MatchElement(self.cron_job1, "%s" % (start_time + 11000), start_time + 11000, []) log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time + 11000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, "%s" % (start_time + 12000), start_time + 12000, []) log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time + 12000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, "%s" % (start_time + 13000), start_time + 13000, []) log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time + 13000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) self.assertEqual(self.output_stream.getvalue(), '')
def test4receiveAtomStatisticallyOutOfRange(self): """This test case focuses on receiving an atom and being over the statistically acceptable area.""" description = "Test4MatchValueAverageChangeDetector" start_time = time.time() match_element1 = MatchElement(self.cron_job1, b"%d" % start_time, start_time, None) match_value_average_change_detector = MatchValueAverageChangeDetector( self.aminer_config, [self.stream_printer_event_handler], None, [match_element1.get_path()], 3, start_time, False, 'Default') self.analysis_context.register_component(match_value_average_change_detector, description) # create oldBin log_atom = LogAtom(match_element1.get_match_object(), ParserMatch(match_element1), start_time, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 1000), start_time + 1000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 1000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 2000), start_time + 2000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 2000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) # compare Data match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 10000), start_time + 10000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 10000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 20000), start_time + 20000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 20000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) match_element1 = MatchElement(self.cron_job1, b"%d" % (start_time + 30000), start_time + 30000, None) log_atom = LogAtom( match_element1.get_match_object(), ParserMatch(match_element1), start_time + 30000, match_value_average_change_detector) match_value_average_change_detector.receive_atom(log_atom) self.assertEqual(self.output_stream.getvalue(), self.__expected_string % ( datetime.fromtimestamp(start_time + 30000).strftime("%Y-%m-%d %H:%M:%S"), match_value_average_change_detector.__class__.__name__, description, 6, start_time + 20000, start_time + 1000))
def test3get_match_object(self): """Test if get_match_string returns None.""" match_element = MatchElement(self.path, self.match_string, self.match_object, None) self.assertEqual(match_element.get_match_object(), self.match_object)