Example #1
0
 def test_request_raises_on_connection_error(self, open_url_mock):
     open_url_mock.side_effect = ConnectionError('Unknown connection error')
     client = ManifoldApiClient('token-123')
     with self.assertRaises(ApiError) as context:
         client.request('test', 'endpoint')
     self.assertEqual('Error connecting to https://api.test.manifold.co/v1/endpoint: Unknown connection error',
                      str(context.exception))
Example #2
0
 def test_request_sends_default_headers(self, open_url_mock):
     mock_fixture(open_url_mock, data='hello')
     client = ManifoldApiClient('token-123')
     client.request('test', 'endpoint')
     open_url_mock.assert_called_with('https://api.test.manifold.co/v1/endpoint',
                                      headers={'Accept': '*/*', 'Authorization': 'Bearer token-123'},
                                      http_agent='python-manifold-ansible-1.0.0')
Example #3
0
 def test_request_raises_on_ssl_error(self, open_url_mock):
     open_url_mock.side_effect = SSLValidationError('SSL Error')
     client = ManifoldApiClient('token-123')
     with self.assertRaises(ApiError) as context:
         client.request('test', 'endpoint')
     self.assertEqual('Error validating the server\'s certificate for https://api.test.manifold.co/v1/endpoint: '
                      'SSL Error',
                      str(context.exception))
Example #4
0
 def test_request_raises_on_bad_url(self, open_url_mock):
     open_url_mock.side_effect = URLError('URL is invalid')
     client = ManifoldApiClient('token-123')
     with self.assertRaises(ApiError) as context:
         client.request('test', 'endpoint')
     self.assertEqual('Failed lookup url for https://api.test.manifold.co/v1/endpoint : <url'
                      'open error URL is invalid>',
                      str(context.exception))
Example #5
0
 def test_request_raises_on_incorrect_json(self, open_url_mock):
     mock_fixture(open_url_mock, data='noJson', headers={'content-type': "application/json"})
     client = ManifoldApiClient('token-123')
     with self.assertRaises(ApiError) as context:
         client.request('test', 'endpoint')
     self.assertEqual('JSON response can\'t be parsed while requesting https://api.test.manifold.co/v1/endpoint:\n'
                      'noJson',
                      str(context.exception))
Example #6
0
 def test_request_passes_arbitrary_parameters(self, open_url_mock):
     mock_fixture(open_url_mock, data='hello')
     client = ManifoldApiClient('token-123')
     client.request('test', 'endpoint', use_proxy=False, timeout=5)
     open_url_mock.assert_called_with('https://api.test.manifold.co/v1/endpoint',
                                      headers={'Accept': '*/*', 'Authorization': 'Bearer token-123'},
                                      http_agent='python-manifold-ansible-1.0.0',
                                      use_proxy=False, timeout=5)
Example #7
0
 def test_request_processes_parameterized_headers(self, open_url_mock):
     mock_fixture(open_url_mock, data='hello')
     client = ManifoldApiClient('token-123')
     client.request('test', 'endpoint', headers={'X-HEADER': 'MANIFOLD'})
     open_url_mock.assert_called_with('https://api.test.manifold.co/v1/endpoint',
                                      headers={'Accept': '*/*', 'Authorization': 'Bearer token-123',
                                               'X-HEADER': 'MANIFOLD'},
                                      http_agent='python-manifold-ansible-1.0.0')
Example #8
0
 def test_request_raises_on_status_500(self, open_url_mock):
     open_url_mock.side_effect = HTTPError('https://api.test.manifold.co/v1/endpoint',
                                           500, 'Server error', {}, six.StringIO('ERROR'))
     client = ManifoldApiClient('token-123')
     with self.assertRaises(ApiError) as context:
         client.request('test', 'endpoint')
     self.assertEqual('Server returned: HTTP Error 500: Server error while requesting '
                      'https://api.test.manifold.co/v1/endpoint:\nERROR',
                      str(context.exception))
Example #9
0
 def test_request_streams_text(self, open_url_mock):
     mock_fixture(open_url_mock, data='hello', headers={'content-type': "text/plain"})
     client = ManifoldApiClient('token-123')
     self.assertEqual('hello', client.request('test', 'endpoint'))
Example #10
0
 def test_request_decodes_json(self, open_url_mock):
     mock_fixture(open_url_mock, fixture='https://api.marketplace.manifold.co/v1/resources')
     client = ManifoldApiClient('token-123')
     self.assertIsInstance(client.request('marketplace', 'resources'), list)