diff options
Diffstat (limited to 'tests/contrib/test_metadata.py')
-rw-r--r-- | tests/contrib/test_metadata.py | 83 |
1 files changed, 32 insertions, 51 deletions
diff --git a/tests/contrib/test_metadata.py b/tests/contrib/test_metadata.py index cd48f0a..7f11d04 100644 --- a/tests/contrib/test_metadata.py +++ b/tests/contrib/test_metadata.py @@ -14,103 +14,84 @@ import datetime import json -import unittest +import httplib2 import mock from six.moves import http_client +import unittest2 from oauth2client.contrib import _metadata -from tests import http_mock - PATH = 'instance/service-accounts/default' DATA = {'foo': 'bar'} EXPECTED_URL = ( 'http://metadata.google.internal/computeMetadata/v1/instance' '/service-accounts/default') +EXPECTED_KWARGS = dict(headers=_metadata.METADATA_HEADERS) def request_mock(status, content_type, content): - headers = {'status': status, 'content-type': content_type} - http = http_mock.HttpMock(headers=headers, - data=content.encode('utf-8')) - return http + return mock.MagicMock(return_value=( + httplib2.Response( + {'status': status, 'content-type': content_type} + ), + content.encode('utf-8') + )) -class TestMetadata(unittest.TestCase): +class TestMetadata(unittest2.TestCase): def test_get_success_json(self): - http = request_mock( + http_request = request_mock( http_client.OK, 'application/json', json.dumps(DATA)) self.assertEqual( - _metadata.get(http, PATH), + _metadata.get(http_request, PATH), DATA ) - - # Verify mocks. - self.assertEqual(http.requests, 1) - self.assertEqual(http.uri, EXPECTED_URL) - self.assertEqual(http.method, 'GET') - self.assertIsNone(http.body) - self.assertEqual(http.headers, _metadata.METADATA_HEADERS) + http_request.assert_called_once_with(EXPECTED_URL, **EXPECTED_KWARGS) def test_get_success_string(self): - http = request_mock( + http_request = request_mock( http_client.OK, 'text/html', '<p>Hello World!</p>') self.assertEqual( - _metadata.get(http, PATH), + _metadata.get(http_request, PATH), '<p>Hello World!</p>' ) - - # Verify mocks. - self.assertEqual(http.requests, 1) - self.assertEqual(http.uri, EXPECTED_URL) - self.assertEqual(http.method, 'GET') - self.assertIsNone(http.body) - self.assertEqual(http.headers, _metadata.METADATA_HEADERS) + http_request.assert_called_once_with(EXPECTED_URL, **EXPECTED_KWARGS) def test_get_failure(self): - http = request_mock( + http_request = request_mock( http_client.NOT_FOUND, 'text/html', '<p>Error</p>') - with self.assertRaises(http_client.HTTPException): - _metadata.get(http, PATH) + with self.assertRaises(httplib2.HttpLib2Error): + _metadata.get(http_request, PATH) - # Verify mocks. - self.assertEqual(http.requests, 1) - self.assertEqual(http.uri, EXPECTED_URL) - self.assertEqual(http.method, 'GET') - self.assertIsNone(http.body) - self.assertEqual(http.headers, _metadata.METADATA_HEADERS) + http_request.assert_called_once_with(EXPECTED_URL, **EXPECTED_KWARGS) @mock.patch( 'oauth2client.client._UTCNOW', return_value=datetime.datetime.min) def test_get_token_success(self, now): - http = request_mock( + http_request = request_mock( http_client.OK, 'application/json', json.dumps({'access_token': 'a', 'expires_in': 100}) ) - token, expiry = _metadata.get_token(http=http) + token, expiry = _metadata.get_token(http_request=http_request) self.assertEqual(token, 'a') self.assertEqual( expiry, datetime.datetime.min + datetime.timedelta(seconds=100)) - # Verify mocks. + http_request.assert_called_once_with( + EXPECTED_URL + '/token', + **EXPECTED_KWARGS + ) now.assert_called_once_with() - self.assertEqual(http.requests, 1) - self.assertEqual(http.uri, EXPECTED_URL + '/token') - self.assertEqual(http.method, 'GET') - self.assertIsNone(http.body) - self.assertEqual(http.headers, _metadata.METADATA_HEADERS) def test_service_account_info(self): - http = request_mock( + http_request = request_mock( http_client.OK, 'application/json', json.dumps(DATA)) - info = _metadata.get_service_account_info(http) + info = _metadata.get_service_account_info(http_request) self.assertEqual(info, DATA) - # Verify mock. - self.assertEqual(http.requests, 1) - self.assertEqual(http.uri, EXPECTED_URL + '/?recursive=True') - self.assertEqual(http.method, 'GET') - self.assertIsNone(http.body) - self.assertEqual(http.headers, _metadata.METADATA_HEADERS) + http_request.assert_called_once_with( + EXPECTED_URL + '/?recursive=True', + **EXPECTED_KWARGS + ) |