@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
 
     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