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