9 from apiclient.http import RequestMockBuilder
10 from httplib import responses as HTTP_RESPONSES
12 if not mimetypes.inited:
15 class ArvadosApiClientTest(unittest.TestCase):
18 # The apiclient library has support for mocking requests for
19 # testing, but it doesn't extend to the discovery document
20 # itself. Point it at a known stable discovery document for now.
21 # FIXME: Figure out a better way to stub this out.
22 cls.orig_api_host = arvados.config.get('ARVADOS_API_HOST')
23 arvados.config.settings()['ARVADOS_API_HOST'] = 'qr1hi.arvadosapi.com'
25 'arvados.humans.list': (None, json.dumps(
26 {'items_available': 0, 'items': []})),
28 req_builder = RequestMockBuilder(mock_responses)
29 cls.api = arvados.api('v1', False, requestBuilder=req_builder)
32 def tearDownClass(cls):
33 if cls.orig_api_host is None:
34 del arvados.config.settings()['ARVADOS_API_HOST']
36 arvados.config.settings()['ARVADOS_API_HOST'] = cls.orig_api_host
37 # Prevent other tests from using our mocked API client.
38 arvados.uncache_api('v1')
40 def test_basic_list(self):
41 answer = self.api.humans().list(
42 filters=[['uuid', 'is', None]]).execute()
43 self.assertEqual(answer['items_available'], len(answer['items']))
46 if __name__ == '__main__':