Add a test for raising NotEnoughSharesError when a Retrieve object is created with an insufficient servermap. refs #1742

Signed-off-by: Daira Hopwood <david-sarah@jacaranda.org>
This commit is contained in:
Daira Hopwood 2013-05-15 04:25:42 +01:00
parent 7956e22d21
commit e821c9e23d

View File

@ -1330,6 +1330,23 @@ class Roundtrip(unittest.TestCase, testutil.ShouldFailMixin, PublishMixin):
d.addCallback(_remove_shares)
return d
def test_all_shares_vanished_new_servermap(self):
d = self.make_servermap()
def _remove_shares(servermap):
self._version = servermap.best_recoverable_version()
for shares in self._storage._peers.values()[2:]:
shares.clear()
return self.make_servermap()
d.addCallback(_remove_shares)
def _check(new_servermap):
d1 = self.shouldFail(NotEnoughSharesError,
"test_all_shares_vanished",
"ran out of servers",
self.do_download, new_servermap, version=self._version)
return d1
d.addCallback(_check)
return d
def test_no_servers(self):
sb2 = make_storagebroker(num_peers=0)
# if there are no servers, then a MODE_READ servermap should come