Fixed deprecated type and encoding test and encoding bug

Binary payloads were being decoded into unicode improperly.

Change-Id: I1aa60c8f2a04e1cc37391d5d3eca98253c3d333a
This commit is contained in:
Chellygel
2015-03-17 15:50:54 -05:00
parent 2a27f57f59
commit 01256d0377
4 changed files with 17 additions and 13 deletions

View File

@@ -94,7 +94,7 @@ class _HTTPClient(object):
headers.update(self._default_headers)
resp = self._session.get(href, headers=headers)
self._check_status_code(resp)
return resp.text
return resp.content
def _delete(self, href, json=None):
headers = dict()

View File

@@ -241,8 +241,11 @@ class Secret(SecretFormatter):
payload_url = self._secret_ref + '/payload'
else:
payload_url = self._secret_ref + 'payload'
self._payload = self._api._get_raw(payload_url, headers)
payload = self._api._get_raw(payload_url, headers)
if self.payload_content_type == u'text/plain':
self._payload = payload.decode('UTF-8')
else:
self._payload = payload
@immutable_after_save
def store(self):

View File

@@ -275,7 +275,7 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
self.assertEqual(self.entity_payload_href, n.last_request.url)
def test_should_fetch_metadata_to_get_payload(self):
content_types_dict = {'default': 'application/octet-stream'}
content_types_dict = {'default': 'text/plain'}
data = self.secret.get_dict(self.entity_href,
content_types_dict=content_types_dict)
@@ -284,7 +284,7 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
request_headers={'Accept': 'application/json'},
json=data)
request_headers = {'Accept': 'application/octet-stream'}
request_headers = {'Accept': 'text/plain'}
decryption_response = self.responses.get(
self.entity_payload_href,
request_headers=request_headers,
@@ -320,13 +320,13 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
Manually setting the payload_content_type is deprecated and will be
removed in a future release.
"""
decrypted = 'decrypted text here'
decrypted = b'decrypted text here'
request_headers = {'Accept': 'application/octet-stream'}
m = self.responses.get(self.entity_payload_href,
request_headers=request_headers,
text=decrypted)
content=decrypted)
secret = self.manager.get(
secret_ref=self.entity_href,
@@ -346,12 +346,12 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
request_headers={'Accept': 'application/json'},
json=json)
decrypted = 'decrypted text here'
decrypted = b'decrypted text here'
request_headers = {'Accept': 'application/octet-stream'}
decryption_response = self.responses.get(
self.entity_payload_href,
request_headers=request_headers,
text=decrypted)
content=decrypted)
secret = self.manager.get(secret_ref=self.entity_href)
secret_payload = secret.payload

View File

@@ -234,7 +234,7 @@ class SecretsTestCase(base.TestCase):
'payload_content_encoding': 'base64'}
})
@testcase.attr('positive')
def test_secret_create_defaults_valid_types_and_encoding(
def test_secret_create_deprecated_types_and_encoding(
self,
payload_content_type,
payload_content_encoding):
@@ -249,10 +249,11 @@ class SecretsTestCase(base.TestCase):
get_resp = self.behaviors.get_secret(
secret_ref,
payload_content_type=test_model.payload_content_type)
if test_model.payload_content_encoding == 'base64':
self.assertEqual(test_model.payload,
str(base64.b64encode(get_resp.payload)))
self.assertEqual(
base64.b64decode(test_model.payload),
get_resp.payload
)
else:
self.assertEqual(test_model.payload, str(get_resp.payload))