def test_master_failure(self): LOG.debug("test_master_failure") client = stub_etcd.Client() client.add_read_exception(stub_etcd.EtcdKeyNotFound()) # Now become the master but fail client.add_write_exception(stub_etcd.EtcdException()) client.add_read_result(key="/bloop", value="value") client.add_read_result(key="/bloop", value=None, action="delete") # Now become the master but fail again client.add_write_exception(stub_etcd.EtcdException()) # Go back to the beginning again. client.add_read_result(key="/bloop", value="value") client.add_read_result(key="/bloop", value=None, action="delete") client.add_write_exception(None) client.add_write_exception(None) elector = election.Elector(client, "test_basic", "/bloop", interval=5, ttl=15) self._wait_and_stop(client, elector) # We are no longer the master, after error. self.assertFalse(elector.master())
def test_initial_read_exceptions(self): LOG.debug("test_initial_read_exceptions") client = stub_etcd.Client() client.add_read_exception(stub_etcd.EtcdException()) client.add_read_exception(stub_etcd.EtcdConnectionFailed()) client.add_read_exception(stub_etcd.EtcdClusterIdChanged()) client.add_read_exception(stub_etcd.EtcdEventIndexCleared()) elector = election.Elector(client, "test_basic", "/bloop", interval=5, ttl=15) self._wait_and_stop(client, elector)