improved unicode encoding for the string in py2 and py3 06/94306/3
authorDR695H <dr695h@att.com>
Mon, 26 Aug 2019 21:20:30 +0000 (17:20 -0400)
committerDR695H <dr695h@att.com>
Mon, 26 Aug 2019 21:33:37 +0000 (17:33 -0400)
Issue-ID: TEST-184
Signed-off-by: DR695H <dr695h@att.com>
Change-Id: I3f6bd36fd5be7b4c143696adf6bb8f9d5f69ebc7

robotframework-onap/ONAPLibrary/RequestsHelper.py
robotframework-onap/tests/ONAPLibrary/RequestsHelperTests.py

index f3a0ad5..ec0ef2d 100644 (file)
@@ -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
index 29a0584..11d3cfe 100644 (file)
@@ -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