From 566c583bbfe0b5a4e46af7ac53765a1340d11fc0 Mon Sep 17 00:00:00 2001 From: DR695H Date: Mon, 26 Aug 2019 17:20:30 -0400 Subject: improved unicode encoding for the string in py2 and py3 Issue-ID: TEST-184 Signed-off-by: DR695H Change-Id: I3f6bd36fd5be7b4c143696adf6bb8f9d5f69ebc7 --- robotframework-onap/ONAPLibrary/RequestsHelper.py | 7 ++++-- .../tests/ONAPLibrary/RequestsHelperTests.py | 28 ++++++++++++++++++---- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/robotframework-onap/ONAPLibrary/RequestsHelper.py b/robotframework-onap/ONAPLibrary/RequestsHelper.py index f3a0ad5..ec0ef2d 100644 --- a/robotframework-onap/ONAPLibrary/RequestsHelper.py +++ b/robotframework-onap/ONAPLibrary/RequestsHelper.py @@ -90,9 +90,12 @@ class RequestsHelper(object): @staticmethod def _format_md5(md5_input): - if md5_input is not None and isinstance(md5_input, str): + string_input = md5_input + if md5_input is not None: + if isinstance(md5_input, str): + string_input = md5_input.encode('utf-8') md5 = hashlib.md5() - md5.update(md5_input.encode('utf-8')) + md5.update(string_input) return Base64Keywords().base64_encode(md5.hexdigest()) else: return None diff --git a/robotframework-onap/tests/ONAPLibrary/RequestsHelperTests.py b/robotframework-onap/tests/ONAPLibrary/RequestsHelperTests.py index 29a0584..11d3cfe 100644 --- a/robotframework-onap/tests/ONAPLibrary/RequestsHelperTests.py +++ b/robotframework-onap/tests/ONAPLibrary/RequestsHelperTests.py @@ -44,7 +44,27 @@ class RequestsHelperTests(TestCase): def test_post(self): with requests_mock.mock() as m: rh = RequestsHelper() - m.get('http://test.com/', text='data') - resp = rh.get_request(alias="alias", endpoint="http://test.com", data_path="/", sdc_user="test123", - accept="application/json", content_type="application/json", files="test/123") - self.assertEqual("data", resp.text) \ No newline at end of file + m.post('http://test.com/', text='data') + resp = rh.post_request(alias="alias", endpoint="http://test.com", data_path="/", sdc_user="test123", + accept="application/json", content_type="application/json", files={'file':"test/123"}) + self.assertEqual("data", resp.text) + + def test_md5_string(self): + with requests_mock.mock() as m: + rh = RequestsHelper() + m.post('http://test.com/', text='data', additional_matcher=self._match_md5_request_header) + resp = rh.post_request(alias="alias", endpoint="http://test.com", data_path="/", sdc_user="test123", + accept="application/json", content_type="text/string", data="test/123") + self.assertEqual("data", resp.text) + + def test_md5_bytes(self): + with requests_mock.mock() as m: + rh = RequestsHelper() + m.post('http://test.com/', text='data', additional_matcher=self._match_md5_request_header) + resp = rh.post_request(alias="alias", endpoint="http://test.com", data_path="/", sdc_user="test123", + accept="application/json", content_type="text/string", data=b"test/123") + self.assertEqual("data", resp.text) + + @staticmethod + def _match_md5_request_header(request): + return (request.headers.get('Content-MD5', None)) is not None -- cgit 1.2.3-korg