diff --git a/sandbox/grist/functions/info.py b/sandbox/grist/functions/info.py index 99ab6424..a230af30 100644 --- a/sandbox/grist/functions/info.py +++ b/sandbox/grist/functions/info.py @@ -740,12 +740,12 @@ class Response(object): """ Similar to the Response class from the `requests` library. """ - def __init__(self, content, status, statusText, headers, encoding): + def __init__(self, content, status, statusText, headers, encoding=None): self.content = content # raw bytes self.status_code = status # e.g. 404 self.reason = statusText # e.g. "Not Found" self.headers = CaseInsensitiveDict(headers) - self.encoding = encoding or self.apparent_encoding + self.encoding = encoding or self.apparent_encoding or "utf-8" @property def text(self): diff --git a/sandbox/grist/test_requests.py b/sandbox/grist/test_requests.py index d5960f6b..86c4cfd3 100644 --- a/sandbox/grist/test_requests.py +++ b/sandbox/grist/test_requests.py @@ -73,6 +73,13 @@ class TestResponse(unittest.TestCase): self.assertEqual(r.content, content) self.assertEqual(r.text, text) + def test_unknown_undetectable_encoding(self): + content = b'' + r = Response(content, 200, "OK", {}, encoding=None) + + # Not knowing the encoding should not break text + self.assertEqual(r.text, "") + class TestRequestsPostInterface(unittest.TestCase): def test_no_post_args(self):