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())
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()