diff --git a/src/allmydata/client.py b/src/allmydata/client.py index bcab46027..71fd6f620 100644 --- a/src/allmydata/client.py +++ b/src/allmydata/client.py @@ -371,9 +371,15 @@ class Client(node.Node, testutil.PollMixin): return watcher.list_recent_retrieve() def list_active_helper_statuses(self): - helper = self.getServiceNamed("helper") + try: + helper = self.getServiceNamed("helper") + except KeyError: + return [] return helper.get_active_upload_statuses() def list_recent_helper_statuses(self): - helper = self.getServiceNamed("helper") + try: + helper = self.getServiceNamed("helper") + except KeyError: + return [] return helper.get_recent_upload_statuses() diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py index 1aa682a59..e25b4fb23 100644 --- a/src/allmydata/test/test_system.py +++ b/src/allmydata/test/test_system.py @@ -1347,8 +1347,13 @@ class SystemTest(testutil.SignalMixin, testutil.PollMixin, unittest.TestCase): d.addCallback(_got_helper_status_json) # and check that client[3] (which uses a helper but does not run one - # itself) doesn't explode when you ask for its helper status with - # t=json + # itself) doesn't explode when you ask for its status + d.addCallback(lambda res: getPage(self.helper_webish_url + "status/")) + def _got_non_helper_status(res): + self.failUnless("Upload and Download Status" in res) + d.addCallback(_got_non_helper_status) + + # or for helper status with t=json d.addCallback(lambda res: getPage(self.helper_webish_url + "helper_status?t=json")) def _got_non_helper_status_json(res):