def test_key_set_with_predicate(self):
        self._fill_map()

        self.assertEqual(self.map.key_set(SqlPredicate("this == 'value-1'")), ["key-1"])
 def test_execute_on_entries_with_predicate(self):
     # TODO: EntryProcessor must be defined on the server
     with self.assertRaises(HazelcastSerializationError):
         self.map.execute_on_entries(EntryProcessor(), predicate=SqlPredicate())
示例#3
0
    def test_values_with_predicate(self):
        self._fill_map()

        self.assertEqual(self.map.values(SqlPredicate("this == 'value-1'")),
                         ["value-1"])
    def test_entry_set_with_predicate(self):
        self._fill_map()

        self.assertEqual(self.map.entry_set(SqlPredicate("this == 'value-1'")), [("key-1", "value-1")])
if __name__ == '__main__':
    logging.basicConfig(
        format='%(asctime)s%(msecs)03d [%(name)s] %(levelname)s: %(message)s',
        datefmt="%H:%M%:%S,")
    logging.getLogger().setLevel(logging.INFO)
    logger = logging.getLogger("main")

    # Start the Hazelcast Client and connect to an already running Hazelcast Cluster on 127.0.0.1
    config = ClientConfig()
    portable_factory = {User.CLASS_ID: User}
    config.serialization_config.add_portable_factory(User.FACTORY_ID,
                                                     portable_factory)
    hz = hazelcast.HazelcastClient(config)
    # Get a Distributed Map called "users"
    users = hz.get_map("users")
    # Add some users to the Distributed Map
    generate_users(users)
    # Create a Predicate from a String (a SQL like Where clause)
    sqlQuery = SqlPredicate("active AND age BETWEEN 18 AND 21)")
    # Creating the same Predicate as above but with a builder
    criteriaQuery = and_(is_equal_to("active", True),
                         is_between("age", 18, 21))
    # Get result collections using the two different Predicates
    result1 = users.values(sqlQuery).result()
    result2 = users.values(criteriaQuery).result()
    # Print out the results
    print(result1)
    print(result2)
    # Shutdown this Hazelcast Client
    hz.shutdown()