diff --git a/keystoneclient/tests/unit/auth/test_identity_common.py b/keystoneclient/tests/unit/auth/test_identity_common.py index a9f2ba227..300b0a278 100644 --- a/keystoneclient/tests/unit/auth/test_identity_common.py +++ b/keystoneclient/tests/unit/auth/test_identity_common.py @@ -467,8 +467,7 @@ class GenericAuthPluginTests(utils.TestCase): text = uuid.uuid4().hex with mock.patch.object(self.session.session, 'request') as mocked: - mocked.return_value = utils.TestResponse({'status_code': 200, - 'text': text}) + mocked.return_value = utils.test_response(text=text) resp = self.session.get('prefix', endpoint_filter=self.ENDPOINT_FILTER) diff --git a/keystoneclient/tests/unit/test_https.py b/keystoneclient/tests/unit/test_https.py index 14c3cdcd2..4e8d260cf 100644 --- a/keystoneclient/tests/unit/test_https.py +++ b/keystoneclient/tests/unit/test_https.py @@ -17,10 +17,7 @@ from keystoneclient import httpclient from keystoneclient.tests.unit import utils -FAKE_RESPONSE = utils.TestResponse({ - "status_code": 200, - "text": '{"hi": "there"}', -}) +FAKE_RESPONSE = utils.test_response(json={'hi': 'there'}) REQUEST_URL = 'https://127.0.0.1:5000/hi' RESPONSE_BODY = '{"hi": "there"}' diff --git a/keystoneclient/tests/unit/test_session.py b/keystoneclient/tests/unit/test_session.py index 85d8399cd..ded925b1a 100644 --- a/keystoneclient/tests/unit/test_session.py +++ b/keystoneclient/tests/unit/test_session.py @@ -113,7 +113,7 @@ class SessionTests(utils.TestCase): session = client_session.Session(cert='cert.pem', timeout=5, verify='certs') - FAKE_RESP = utils.TestResponse({'status_code': 200, 'text': 'resp'}) + FAKE_RESP = utils.test_response(text='resp') RESP = mock.Mock(return_value=FAKE_RESP) with mock.patch.object(session.session, 'request', RESP) as mocked: @@ -622,7 +622,7 @@ class SessionAuthTests(utils.TestCase): requests_auth = object() - FAKE_RESP = utils.TestResponse({'status_code': 200, 'text': 'resp'}) + FAKE_RESP = utils.test_response(text='resp') RESP = mock.Mock(return_value=FAKE_RESP) with mock.patch.object(sess.session, 'request', RESP) as mocked: diff --git a/keystoneclient/tests/unit/utils.py b/keystoneclient/tests/unit/utils.py index e4dd85420..6e313a49b 100644 --- a/keystoneclient/tests/unit/utils.py +++ b/keystoneclient/tests/unit/utils.py @@ -17,6 +17,7 @@ import uuid import fixtures from oslo_serialization import jsonutils import requests +import requests_mock from requests_mock.contrib import fixture import six from six.moves.urllib import parse as urlparse @@ -127,32 +128,9 @@ if tuple(sys.version_info)[0:2] < (2, 7): TestCase.assertDictEqual = assertDictEqual -class TestResponse(requests.Response): - """Class used to wrap requests.Response. - - It also provides convenience to initialize with a dict. - """ - - def __init__(self, data): - self._text = None - super(TestResponse, self).__init__() - if isinstance(data, dict): - self.status_code = data.get('status_code', 200) - headers = data.get('headers') - if headers: - self.headers.update(headers) - # Fake the text attribute to streamline Response creation - # _content is defined by requests.Response - self._content = data.get('text') - else: - self.status_code = data - - def __eq__(self, other): - return self.__dict__ == other.__dict__ - - @property - def text(self): - return self.content +def test_response(**kwargs): + r = requests.Request(method='GET', url='http://localhost:5000').prepare() + return requests_mock.create_response(r, **kwargs) class DisableModuleFixture(fixtures.Fixture): diff --git a/keystoneclient/tests/unit/v2_0/utils.py b/keystoneclient/tests/unit/v2_0/utils.py index bc239528e..6532d71b5 100644 --- a/keystoneclient/tests/unit/v2_0/utils.py +++ b/keystoneclient/tests/unit/v2_0/utils.py @@ -13,8 +13,6 @@ from keystoneclient.tests.unit import client_fixtures from keystoneclient.tests.unit import utils -TestResponse = utils.TestResponse - class UnauthenticatedTestCase(utils.TestCase): """Class used as base for unauthenticated calls.""" diff --git a/keystoneclient/tests/unit/v3/test_access.py b/keystoneclient/tests/unit/v3/test_access.py index 82ed0fb2b..8e557ef3c 100644 --- a/keystoneclient/tests/unit/v3/test_access.py +++ b/keystoneclient/tests/unit/v3/test_access.py @@ -17,13 +17,14 @@ from oslo_utils import timeutils from keystoneclient import access from keystoneclient import fixture +from keystoneclient.tests.unit import utils as test_utils from keystoneclient.tests.unit.v3 import client_fixtures from keystoneclient.tests.unit.v3 import utils -TOKEN_RESPONSE = utils.TestResponse({ - "headers": client_fixtures.AUTH_RESPONSE_HEADERS -}) +TOKEN_RESPONSE = test_utils.test_response( + headers=client_fixtures.AUTH_RESPONSE_HEADERS +) UNSCOPED_TOKEN = client_fixtures.unscoped_token() DOMAIN_SCOPED_TOKEN = client_fixtures.domain_scoped_token() PROJECT_SCOPED_TOKEN = client_fixtures.project_scoped_token() diff --git a/keystoneclient/tests/unit/v3/test_service_catalog.py b/keystoneclient/tests/unit/v3/test_service_catalog.py index 0e7d55cc3..7fd444dbc 100644 --- a/keystoneclient/tests/unit/v3/test_service_catalog.py +++ b/keystoneclient/tests/unit/v3/test_service_catalog.py @@ -13,6 +13,7 @@ from keystoneclient import access from keystoneclient import exceptions from keystoneclient import fixture +from keystoneclient.tests.unit import utils as test_utils from keystoneclient.tests.unit.v3 import client_fixtures from keystoneclient.tests.unit.v3 import utils @@ -21,9 +22,9 @@ class ServiceCatalogTest(utils.TestCase): def setUp(self): super(ServiceCatalogTest, self).setUp() self.AUTH_RESPONSE_BODY = client_fixtures.auth_response_body() - self.RESPONSE = utils.TestResponse({ - "headers": client_fixtures.AUTH_RESPONSE_HEADERS - }) + self.RESPONSE = test_utils.test_response( + headers=client_fixtures.AUTH_RESPONSE_HEADERS + ) self.north_endpoints = {'public': 'http://glance.north.host/glanceapi/public', diff --git a/keystoneclient/tests/unit/v3/utils.py b/keystoneclient/tests/unit/v3/utils.py index fcb546e2f..bd1b97063 100644 --- a/keystoneclient/tests/unit/v3/utils.py +++ b/keystoneclient/tests/unit/v3/utils.py @@ -19,9 +19,6 @@ from keystoneclient.tests.unit import client_fixtures from keystoneclient.tests.unit import utils -TestResponse = utils.TestResponse - - def parameterize(ref): """Rewrites attributes to match the kwarg naming convention in client.