def test_map_only_runs_on_required_nodes(self, RedisClient): redis = create_cluster({ 'engine': 'nydus.db.backends.redis.Redis', 'router': 'nydus.db.routers.keyvalue.PartitionRouter', 'hosts': { 0: {'db': 0}, 1: {'db': 1}, } }) with redis.map() as conn: conn.set('a', 0) conn.set('b', 1) # ensure this was actually called through the pipeline self.assertFalse(RedisClient().set.called) self.assertEquals(RedisClient().pipeline.call_count, 1) RedisClient().pipeline.assert_called_with() self.assertEquals(RedisClient().pipeline().set.call_count, 2) RedisClient().pipeline().set.assert_any_call('a', 0) RedisClient().pipeline().set.assert_any_call('b', 1) self.assertEquals(RedisClient().pipeline().execute.call_count, 1) RedisClient().pipeline().execute.assert_called_with()
def test_pipelined_map(self): redis = create_cluster({ 'engine': 'nydus.db.backends.redis.Redis', 'router': 'nydus.db.routers.redis.PartitionRouter', 'hosts': { 0: { 'db': 5 }, 1: { 'db': 6 }, 2: { 'db': 7 }, 3: { 'db': 8 }, 4: { 'db': 9 }, } }) chars = ('a', 'b', 'c', 'd', 'e', 'f') with redis.map() as conn: [conn.set(c, i) for i, c in enumerate(chars)] res = [conn.get(c) for c in chars] self.assertEqual(range(len(chars)), [int(r._wrapped) for r in res])
def test_map_only_runs_on_required_nodes(self, RedisClient): redis = create_cluster({ 'engine': 'nydus.db.backends.redis.Redis', 'router': 'nydus.db.routers.redis.PartitionRouter', 'hosts': { 0: { 'db': 0 }, 1: { 'db': 1 }, } }) with redis.map() as conn: conn.set('a', 0) conn.set('b', 1) # ensure this was actually called through the pipeline self.assertFalse(RedisClient().set.called) self.assertEquals(RedisClient().pipeline.call_count, 1) RedisClient().pipeline.assert_called_with() self.assertEquals(RedisClient().pipeline().set.call_count, 2) RedisClient().pipeline().set.assert_any_call('a', 0) RedisClient().pipeline().set.assert_any_call('b', 1) self.assertEquals(RedisClient().pipeline().execute.call_count, 1) RedisClient().pipeline().execute.assert_called_with()
def test_map_does_pipeline(self, StrictRedisClient): redis = create_cluster({ 'backend': 'nydus.db.backends.redis.StrictRedis', 'router': 'nydus.db.routers.keyvalue.PartitionRouter', 'hosts': { 0: {'db': 0}, 1: {'db': 1}, } }) with redis.map() as conn: conn.set('a', 0) conn.set('d', 1) # ensure this was actually called through the pipeline self.assertFalse(StrictRedisClient().set.called) self.assertEquals(StrictRedisClient().pipeline.call_count, 2) StrictRedisClient().pipeline.assert_called_with() self.assertEquals(StrictRedisClient().pipeline().set.call_count, 2) StrictRedisClient().pipeline().set.assert_any_call('a', 0) StrictRedisClient().pipeline().set.assert_any_call('d', 1) self.assertEquals(StrictRedisClient().pipeline().execute.call_count, 2) StrictRedisClient().pipeline().execute.assert_called_with()
def test_pipelined_map(self): redis = create_cluster({ 'engine': 'nydus.db.backends.redis.Redis', 'router': 'nydus.db.routers.keyvalue.PartitionRouter', 'hosts': { 0: {'db': 5}, 1: {'db': 6}, 2: {'db': 7}, 3: {'db': 8}, 4: {'db': 9}, } }) chars = ('a', 'b', 'c', 'd', 'e', 'f') with redis.map() as conn: [conn.set(c, i) for i, c in enumerate(chars)] res = [conn.get(c) for c in chars] self.assertEqual(range(len(chars)), [int(r._wrapped) for r in res])