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."""