def __init__(self, methodName='runTest'): super(TestFileSourceCollector, self).__init__(methodName) key_transformer = StandardKeyTransformer() ip_key_transformer = lambda key, value, state: state.state_id + '_ip' aggregate_fun = lambda old_value, item: old_value + 1 filters = [CommentFilter('#'), SpacesFilter()] handlers = [StandardConfigSectionHandler(), SimpleKeyListHandler.create_with_known_key_list('=', ['key13', 'key666'], key_transformer), AggregateKeyValueHandler.create_with_known_key_list('=', ['key555', 'key999'], key_transformer, aggregate_fun, 0), AggregateKeyValueHandler.create_with_known_key_list('=', ['ip0', 'ip1', 'ip2', 'ip3', 'ip4'], ip_key_transformer, aggregate_fun, 0)] self._collector = FileSourceCollector(filters, handlers, OrderedDict())
def test_handle_aggegate_by_one_key(self): key_transformer = lambda key, value, state: 'ip' aggregate_fun = lambda old_value, item: old_value + 1 handler = AggregateKeyValueHandler.create_with_known_key_list('=', ['ip0', 'ip1', 'ip2', 'ip3', 'ip4'], key_transformer, aggregate_fun, 0) state = State(None, None, {}) result = handler.process('ip0=192.168.0.1', state) self.assertEqual((True, State(None, None, OrderedDict({'ip': 1}))), result) result = handler.process('ip1=192.168.1.1', result[1]) self.assertEqual((True, State(None, None, OrderedDict({'ip': 2}))), result) result = handler.process('ip2=192.168.5.1', result[1]) self.assertEqual((True, State(None, None, OrderedDict({'ip': 3}))), result) result = handler.process('ip9=192.168.5.5', result[1]) self.assertEqual((False, State(None, None, OrderedDict({'ip': 3}))), result)
def __init__(self, source_filename, db_file_path, logger): filters = [CommentFilter("#"), SpacesFilter()] standard_key_transformer = StandardKeyTransformer() ip_key_transformer = lambda key, state: "%(category)s.ip" % {"category": state.state_id} handlers = [ StandardConfigSectionHandler(), SimpleKeyValueHandler.create_with_known_key_predicate( "=", lambda key, state: state.state_id == "services", standard_key_transformer ), TransformKeyValueHandler.create_with_known_key_predicate( "=", lambda key, state: state.state_id == "users", standard_key_transformer, transform_user_fun ), AggregateKeyValueHandler.create_with_known_key_list( "=", ["ip0", "ip1", "ip2", "ip3", "ip4"], ip_key_transformer, lambda old_value, item: old_value + 1, 0 ), ] init_state = OrderedDict() encoding = "utf-8" self._collect_task = FileSourceCollectTask( self._source, filters, handlers, init_state, source_filename, encoding, db_file_path, logger )
def setUp(self): self._mox = Mox() self._main_logger = self._mox.CreateMock(Logger) self._storage_logger = self._mox.CreateMock(Logger) source_filename = os.path.abspath("tests/functional_tests/test.conf") self._db_manager.__enter__() filters = [CommentFilter("#"), SpacesFilter()] standard_key_transformer = StandardKeyTransformer() ip_key_transformer = lambda key, value, state: "{category:s}.ip".format(category=state.state_id) handlers = [ StandardConfigSectionHandler(), SimpleKeyValueHandler.create_with_known_key_predicate( "=", lambda key, state: state.state_id == "services", standard_key_transformer ), TransformKeyListHandler.create_with_known_key_predicate( "=", lambda key, state: state.state_id == "users", standard_key_transformer, transform_user_fun ), AggregateKeyValueHandler.create_with_known_key_list( "=", ["ip0", "ip1", "ip2", "ip3", "ip4"], ip_key_transformer, lambda old_value, item: old_value + 1, 0 ), SimpleKeyValueHandler.create_with_known_key_list( "=", ["use_local_mail", "use_remote_mail", "use_jabber"], standard_key_transformer ), SingleKeyHandler.create_with_known_key_list( "=", ["use_local_mail", "use_remote_mail", "use_jabber"], standard_key_transformer, "0" ), ] self._collect_task = FileSourceCollectTask( "some_source", filters, handlers, OrderedDict(), source_filename, "utf8", self._db_manager.db_filename, self._main_logger, )
def __init__(self, methodName='runTest'): super(TestAggregateKeyValueHandler, self).__init__(methodName) key_transformer = lambda key, value, state: key aggregate_fun = lambda old_value, item: old_value + 1 self._handler = AggregateKeyValueHandler.create_with_known_key_list('=', ['key13', 'key666'], key_transformer, aggregate_fun, 0)