X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d14dd75b263d8f999603b66d23f74667d36a2412..513c30b5c5c2b3dd72894667eb0e51e24c9d4182:/sdk/python/tests/arvados_testutil.py diff --git a/sdk/python/tests/arvados_testutil.py b/sdk/python/tests/arvados_testutil.py index d138e5964a..71c9b178e7 100644 --- a/sdk/python/tests/arvados_testutil.py +++ b/sdk/python/tests/arvados_testutil.py @@ -43,6 +43,12 @@ def mock_responses(body, *codes, **headers): return mock.patch('httplib2.Http.request', side_effect=queue_with(( (fake_httplib2_response(code, **headers), body) for code in codes))) +def mock_api_responses(api_client, body, codes, headers={}): + return mock.patch.object(api_client._http, 'request', side_effect=queue_with(( + (fake_httplib2_response(code, **headers), body) for code in codes))) + +def str_keep_locator(s): + return '{}+{}'.format(hashlib.md5(s).hexdigest(), len(s)) class FakeCurl: @classmethod @@ -79,7 +85,8 @@ class FakeCurl: self._headerfunction("HTTP/1.1 {} Status".format(self._resp_code)) for k, v in self._resp_headers.iteritems(): self._headerfunction(k + ': ' + str(v)) - self._writer(self._resp_body) + if type(self._resp_body) is not bool: + self._writer(self._resp_body) def close(self): pass @@ -122,8 +129,7 @@ class MockStreamReader(object): def __init__(self, name='.', *data): self._name = name self._data = ''.join(data) - self._data_locators = ['{}+{}'.format(hashlib.md5(d).hexdigest(), - len(d)) for d in data] + self._data_locators = [str_keep_locator(d) for d in data] self.num_retries = 0 def name(self): @@ -141,7 +147,8 @@ class ApiClientMock(object): service_host=None, service_port=None, service_ssl_flag=False, - additional_services=[]): + additional_services=[], + read_only=False): if api_mock is None: api_mock = self.api_client_mock() body = { @@ -153,6 +160,7 @@ class ApiClientMock(object): 'service_port': service_port or 65535-i, 'service_ssl_flag': service_ssl_flag, 'service_type': service_type, + 'read_only': read_only, } for i in range(0, count)] + additional_services } self._mock_api_call(api_mock.keep_services().accessible, status, body)