diff options
author | Danny Hermes <daniel.j.hermes@gmail.com> | 2016-08-09 16:11:31 -0700 |
---|---|---|
committer | Nathaniel Manista <nathaniel@google.com> | 2016-08-09 16:11:31 -0700 |
commit | b1a17432731344d2e44b1ef78ab52f2202bee703 (patch) | |
tree | e33fc782d0cec5629223b9f222bba7e8b79f5254 /tests | |
parent | 0fd8c61d93711e23a31f07c613f042caa0c0b6ee (diff) | |
download | oauth2client-b1a17432731344d2e44b1ef78ab52f2202bee703.tar.gz |
Using transport helper for calling http.request() (#586)
This assumes (for now) that http is an instance of
httplib.Http.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/contrib/test_metadata.py | 14 | ||||
-rw-r--r-- | tests/test_client.py | 17 | ||||
-rw-r--r-- | tests/test_transport.py | 40 |
3 files changed, 65 insertions, 6 deletions
diff --git a/tests/contrib/test_metadata.py b/tests/contrib/test_metadata.py index 5af4ab9..6907f39 100644 --- a/tests/contrib/test_metadata.py +++ b/tests/contrib/test_metadata.py @@ -28,13 +28,23 @@ DATA = {'foo': 'bar'} EXPECTED_URL = ( 'http://metadata.google.internal/computeMetadata/v1/instance' '/service-accounts/default') -EXPECTED_KWARGS = dict(headers=_metadata.METADATA_HEADERS) +EXPECTED_KWARGS = { + 'headers': _metadata.METADATA_HEADERS, + 'body': None, + 'connection_type': None, + 'method': 'GET', + 'redirections': 5, +} def request_mock(status, content_type, content): response = http_mock.ResponseMock( {'status': status, 'content-type': content_type}) - return mock.Mock(return_value=(response, content.encode('utf-8'))) + request_method = mock.Mock( + return_value=(response, content.encode('utf-8'))) + # Make sure the mock doesn't have a request attr. + del request_method.request + return request_method class TestMetadata(unittest2.TestCase): diff --git a/tests/test_client.py b/tests/test_client.py index 79727d8..c3597da 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -1220,6 +1220,8 @@ class BasicCredentialsTests(unittest2.TestCase): None, None, None) credentials.store = store http_request = mock.Mock() + # Make sure the mock doesn't have a request attr. + del http_request.request http_request.return_value = response, content with self.assertRaises( @@ -1228,9 +1230,10 @@ class BasicCredentialsTests(unittest2.TestCase): self.assertEqual(exc_manager.exception.args, (error_msg,)) self.assertEqual(exc_manager.exception.status, response.status) - http_request.assert_called_once_with(None, body=gen_body.return_value, - headers=gen_headers.return_value, - method='POST') + http_request.assert_called_once_with( + None, method='POST', body=gen_body.return_value, + headers=gen_headers.return_value, redirections=5, + connection_type=None) call1 = mock.call('Refreshing access_token') failure_template = 'Failed to retrieve access token: %s' @@ -1286,6 +1289,8 @@ class BasicCredentialsTests(unittest2.TestCase): revoke_uri=oauth2client.GOOGLE_REVOKE_URI) credentials.store = store http_request = mock.Mock() + # Make sure the mock doesn't have a request attr. + del http_request.request http_request.return_value = response, content token = u's3kr3tz' @@ -1306,7 +1311,9 @@ class BasicCredentialsTests(unittest2.TestCase): store.delete.assert_not_called() revoke_uri = oauth2client.GOOGLE_REVOKE_URI + '?token=' + token - http_request.assert_called_once_with(revoke_uri) + http_request.assert_called_once_with( + revoke_uri, method='GET', body=None, headers=None, + redirections=5, connection_type=None) logger.info.assert_called_once_with('Revoking token') @@ -1353,6 +1360,8 @@ class BasicCredentialsTests(unittest2.TestCase): None, None, None, None, None, None, None, token_info_uri=oauth2client.GOOGLE_TOKEN_INFO_URI) http_request = mock.Mock() + # Make sure the mock doesn't have a request attr. + del http_request.request http_request.return_value = response, content token = u's3kr3tz' diff --git a/tests/test_transport.py b/tests/test_transport.py index f783ed2..fdf1f73 100644 --- a/tests/test_transport.py +++ b/tests/test_transport.py @@ -136,3 +136,43 @@ class Test_wrap_http_for_auth(unittest2.TestCase): self.assertIsNone(result) self.assertNotEqual(http.request, orig_req_method) self.assertIs(http.request.credentials, credentials) + + +class Test_request(unittest2.TestCase): + + uri = 'http://localhost' + method = 'POST' + body = 'abc' + redirections = 3 + + def test_with_request_attr(self): + http = mock.Mock() + mock_result = object() + mock_request = mock.Mock(return_value=mock_result) + http.request = mock_request + + result = transport.request(http, self.uri, method=self.method, + body=self.body, + redirections=self.redirections) + self.assertIs(result, mock_result) + # Verify mock. + mock_request.assert_called_once_with(self.uri, method=self.method, + body=self.body, + redirections=self.redirections, + headers=None, + connection_type=None) + + def test_with_callable_http(self): + mock_result = object() + http = mock.Mock(return_value=mock_result) + del http.request # Make sure the mock doesn't have a request attr. + + result = transport.request(http, self.uri, method=self.method, + body=self.body, + redirections=self.redirections) + self.assertIs(result, mock_result) + # Verify mock. + http.assert_called_once_with(self.uri, method=self.method, + body=self.body, + redirections=self.redirections, + headers=None, connection_type=None) |