From 17bb17d66c572c262ecf9a1cf25221a2727843e0 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Tue, 4 Feb 2014 03:53:23 +0100 Subject: [PATCH] Python3: httpretty.last_request().body is now bytes In Python 3, we must decode it before using it. Change-Id: I473ba7b9732555ef5f9011a50d8684260e1f7f71 --- keystoneclient/tests/test_http.py | 2 +- keystoneclient/tests/utils.py | 8 ++++++-- keystoneclient/tests/v2_0/test_auth.py | 6 +++++- keystoneclient/tests/v3/test_auth.py | 6 +++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/keystoneclient/tests/test_http.py b/keystoneclient/tests/test_http.py index a5110a4ab..c6f96c2bc 100644 --- a/keystoneclient/tests/test_http.py +++ b/keystoneclient/tests/test_http.py @@ -116,7 +116,7 @@ class ClientTest(utils.TestCase): cl.post("/hi", body=[1, 2, 3]) self.assertEqual(httpretty.last_request().method, 'POST') - self.assertEqual(httpretty.last_request().body, '[1, 2, 3]') + self.assertEqual(httpretty.last_request().body, b'[1, 2, 3]') self.assertRequestHeaderEqual('X-Auth-Token', 'token') self.assertRequestHeaderEqual('Content-Type', 'application/json') diff --git a/keystoneclient/tests/utils.py b/keystoneclient/tests/utils.py index 1836a0461..173acfa0e 100644 --- a/keystoneclient/tests/utils.py +++ b/keystoneclient/tests/utils.py @@ -65,11 +65,15 @@ class TestCase(testtools.TestCase): httpretty.register_uri(method, url, **kwargs) def assertRequestBodyIs(self, body=None, json=None): + last_request_body = httpretty.last_request().body + if six.PY3: + last_request_body = last_request_body.decode('utf-8') + if json: - val = jsonutils.loads(httpretty.last_request().body) + val = jsonutils.loads(last_request_body) self.assertEqual(json, val) elif body: - self.assertEqual(body, httpretty.last_request().body) + self.assertEqual(body, last_request_body) def assertQueryStringIs(self, qs=''): """Verify the QueryString matches what is expected. diff --git a/keystoneclient/tests/v2_0/test_auth.py b/keystoneclient/tests/v2_0/test_auth.py index 98a3380e7..dae339a91 100644 --- a/keystoneclient/tests/v2_0/test_auth.py +++ b/keystoneclient/tests/v2_0/test_auth.py @@ -16,6 +16,7 @@ import datetime import json import httpretty +import six from keystoneclient import exceptions from keystoneclient.openstack.common import jsonutils @@ -170,7 +171,10 @@ class AuthenticateAgainstKeystoneTests(utils.TestCase): cl = client.Client(auth_url=self.TEST_URL, token=fake_token) - body = jsonutils.loads(httpretty.last_request().body) + body = httpretty.last_request().body + if six.PY3: + body = body.decode('utf-8') + body = jsonutils.loads(body) self.assertEqual(body['auth']['token']['id'], fake_token) resp, body = cl.get(fake_url) diff --git a/keystoneclient/tests/v3/test_auth.py b/keystoneclient/tests/v3/test_auth.py index 9c0297064..4a10f7440 100644 --- a/keystoneclient/tests/v3/test_auth.py +++ b/keystoneclient/tests/v3/test_auth.py @@ -13,6 +13,7 @@ # under the License. import httpretty +import six from keystoneclient import exceptions from keystoneclient.openstack.common import jsonutils @@ -237,7 +238,10 @@ class AuthenticateAgainstKeystoneTests(utils.TestCase): cl = client.Client(auth_url=self.TEST_URL, token=fake_token) - body = jsonutils.loads(httpretty.last_request().body) + body = httpretty.last_request().body + if six.PY3: + body = body.decode('utf-8') + body = jsonutils.loads(body) self.assertEqual(body['auth']['identity']['token']['id'], fake_token) resp, body = cl.get(fake_url)