From 455aa4be640685d33a5de0b6afa86e8f05c94d53 Mon Sep 17 00:00:00 2001 From: Oittaa Date: Tue, 14 Dec 2021 13:33:45 +0100 Subject: [PATCH] If content is `None`, save it as `b""` --- gcp_storage_emulator/handlers/objects.py | 2 +- tests/test_server.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcp_storage_emulator/handlers/objects.py b/gcp_storage_emulator/handlers/objects.py index cb6cee0..0c627ca 100644 --- a/gcp_storage_emulator/handlers/objects.py +++ b/gcp_storage_emulator/handlers/objects.py @@ -263,7 +263,7 @@ def upload_partial(request, response, storage, *args, **kwargs): response["Range"] = "bytes=0-{}".format(m_dict["end"]) return else: - data = request.data + data = request.data or b"" obj = _checksums(data, obj) obj["size"] = str(len(data)) diff --git a/tests/test_server.py b/tests/test_server.py index 3c37494..c14b061 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -772,6 +772,14 @@ def test_resumable_upload_large_file(self): self.assertEqual(len(fetched_content), len(content)) self.assertEqual(fetched_content, content) + def test_empty_blob(self): + bucket = self._client.create_bucket("testbucket") + bucket.blob("empty_blob").open("w").close() + + blob = bucket.get_blob("empty_blob") + fetched_content = blob.download_as_bytes() + self.assertEqual(fetched_content, b"") + class HttpEndpointsTest(ServerBaseCase): """Tests for the HTTP endpoints defined by server.HANDLERS."""