コード例 #1
0
ファイル: tests.py プロジェクト: diorahman/nydus
 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])
コード例 #2
0
ファイル: tests.py プロジェクト: patricklucas/nydus
    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()
コード例 #3
0
ファイル: tests.py プロジェクト: diorahman/nydus
    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()
コード例 #4
0
ファイル: tests.py プロジェクト: patricklucas/nydus
 def build_cluster(self, connection=FlakeyConnection, router=RetryableRouter):
     return create_cluster({
         'engine': connection,
         'router': router,
         'hosts': {
             0: {'resp': 'bar'},
         }
     })
コード例 #5
0
ファイル: tests.py プロジェクト: patricklucas/nydus
 def test_create_cluster(self):
     c = create_cluster({
         'engine': DummyConnection,
         'router': DummyRouter,
         'hosts': {
             0: {'resp': 'bar'},
         }
     })
     self.assertEquals(len(c), 1)
コード例 #6
0
 def _create_cluster(self, hosts):
     #create a consistent Hashing cluster
     logger.info('creating a cache cluster for hosts %s', hosts)
     cluster = create_cluster({
         'engine': 'nydus.db.backends.redis.Redis',
         'router': 'nydus.db.routers.keyvalue.ConsistentHashingRouter',
         'hosts': hosts,
     })
     return cluster
コード例 #7
0
 def test_create_cluster(self):
     c = create_cluster({
         'engine': DummyConnection,
         'router': DummyRouter,
         'hosts': {
             0: {
                 'resp': 'bar'
             },
         }
     })
     self.assertEquals(len(c), 1)
コード例 #8
0
ファイル: tests.py プロジェクト: tschellenbach/nydus
 def setUp(self):
     from nydus.db import create_cluster
     engine = 'nydus.db.backends.redis.Redis'
     router = 'nydus.db.routers.redis.PrefixPartitionRouter'
     nydus_config = dict(engine=engine, router=router, hosts={
         'default': {'db': 0, 'host': 'localhost', 'port': 6380, 'fail_silently': False},
         'simple_cache': {'db': 0, 'host': 'localhost', 'port': 6380, 'fail_silently': True},
         'app_critical': {'db': 0, 'host': 'localhost', 'port': 6380, 'fail_silently': False},
     })
     redis = create_cluster(nydus_config)
     self.redis = redis
コード例 #9
0
 def build_cluster(self,
                   connection=FlakeyConnection,
                   router=RetryableRouter):
     return create_cluster({
         'engine': connection,
         'router': router,
         'hosts': {
             0: {
                 'resp': 'bar'
             },
         }
     })
コード例 #10
0
ファイル: tests.py プロジェクト: patricklucas/nydus
 def get_cluster(self, router):
     cluster = create_cluster({
         'engine': 'nydus.db.backends.thoonk.Thoonk',
         'router': router,
         'hosts': {
             0: {'db': 5},
             1: {'db': 6},
             2: {'db': 7},
             3: {'db': 8},
             4: {'db': 9},
         }
     })
     self.flush_custer(cluster)
     return cluster
コード例 #11
0
ファイル: tests.py プロジェクト: patricklucas/nydus
 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])