@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