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:
@@ -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()
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user