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)
예제 #3
0
 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)