Example #1
0
    def start(self):
        self.master = self.manager.start('master')
        self.slave = self.manager.start('slave', self.master)
        self.slave2 = self.manager.start('slave2', self.master)

        hosts = ['127.0.0.1:{0}'.format(self.master)]

        self.pool = Pool(hosts=hosts)
Example #2
0
    def test_update_hosts(self):
        """ensures the self.pool is aware of the slaves after updating"""
        hosts = [
            '127.0.0.1:{0}'.format(self.master),
            '127.0.0.1:{0}'.format(self.slave)
        ]

        pool = Pool(hosts=hosts)

        assert len(pool._slave_pool) == 1
Example #3
0
 def get_pool(self, connection_kwargs=None, max_connections=10, timeout=20):
     hosts = [
         '127.0.0.1:{0}'.format(self.master),
         '127.0.0.1:{0}'.format(self.slave)
     ]
     connection_kwargs = connection_kwargs or {}
     pool = Pool(hosts=hosts,
                 max_connections=max_connections,
                 timeout=timeout,
                 **connection_kwargs)
     return pool
Example #4
0
    def test_find_slave(self):
        # tests that we auto discover the 2nd slave
        hosts = [
            '127.0.0.1:{0}'.format(self.master),
            '127.0.0.1:{0}'.format(self.slave)
        ]

        pool = Pool(hosts=hosts)

        assert len(pool._hosts) == 3, pool._hosts
        assert len(pool._slave_pool) == 2
Example #5
0
    def test_promotion_on_failure(self):
        pool = Pool(hosts=['127.0.0.1:{0}'.format(self.master)])
        r = redis.StrictRedis(connection_pool=pool)

        r.set('test', 1)
        r.get('test2')

        self.manager.stop('master')

        redis.StrictRedis('localhost', self.slave)

        # promote slave to master
        self.manager.promote(self.slave)
        self.master = self.slave

        with self.assertRaises(redis.ConnectionError):
            r.get('test2')

        r.get('test2')
        self.pool = pool
        self.r = r