Change Http action result content encoding

Sometimes action result is present not in "utf-8", it cases
to "UnicodeDecodeError: 'utf8' codec can't decode byte" so
need to pass proper encoding format in serialiser and deserialiser
if it is different from default, but it should be resolved in
general as a fix for another bug (#1676411).

As a hotfix for linked bug, encoding was changed in the
run Http action method directly.

Also default encoding value in the FakeHTTPResponse was changed
from 'utf8' to 'utf-8' like in official python request lib docs.

Change-Id: I0ab9ec84c0973f362b57ab82248f27768a984678
Closes-Bug: #1667415
This commit is contained in:
Anastasia Kuznetsova 2017-03-23 17:15:59 +04:00
parent fd41c0d375
commit 02038aa533
1 changed files with 16 additions and 0 deletions

View File

@ -155,6 +155,22 @@ class ActionExecutionTestsV2(base.TestCase):
output = json.loads(body['output'])
self.assertEqual(404, output['result']['status'])
@test.attr(type='sanity')
@test.related_bug('1667415')
@decorators.idempotent_id('3c73de7a-4af0-4657-90d6-d7ebd3c7da18')
def test_run_action_std_http_non_utf8_response(self):
resp, body = self.client.create_action_execution(
{
'name': 'std.http',
'input':
'{"url": "https://www.google.co.il/search?q=testTest"}'
}
)
self.assertEqual(201, resp.status)
output = json.loads(body['output'])
self.assertEqual(200, output['result']['status'])
@test.attr(type='sanity')
@decorators.idempotent_id('d98586bf-fdc4-44f6-9837-700d35b5f889')
def test_create_action_execution(self):