From 817c3042c5ec76d76a665440b64d221a2ff99c08 Mon Sep 17 00:00:00 2001 From: Andrew Gorcester Date: Thu, 22 Jul 2021 17:11:09 -0700 Subject: [PATCH 1/2] fix: downloading no longer marks metadata fields as 'changed' --- google/cloud/storage/blob.py | 14 +++++++------- tests/unit/test_blob.py | 2 ++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/google/cloud/storage/blob.py b/google/cloud/storage/blob.py index 81e7e103f..74d1488af 100644 --- a/google/cloud/storage/blob.py +++ b/google/cloud/storage/blob.py @@ -875,11 +875,11 @@ def _extract_headers_from_download(self, response): :class requests.models.Response :param response: The server response from downloading a non-chunked file """ - self.content_encoding = response.headers.get("Content-Encoding", None) - self.content_type = response.headers.get("Content-Type", None) - self.cache_control = response.headers.get("Cache-Control", None) - self.storage_class = response.headers.get("X-Goog-Storage-Class", None) - self.content_language = response.headers.get("Content-Language", None) + self._properties["contentEncoding"] = response.headers.get("Content-Encoding", None) + self._properties[_CONTENT_TYPE_FIELD] = response.headers.get("Content-Type", None) + self._properties["cacheControl"] = response.headers.get("Cache-Control", None) + self._properties["storageClass"] = response.headers.get("X-Goog-Storage-Class", None) + self._properties["contentLanguage"] = response.headers.get("Content-Language", None) self._properties["etag"] = response.headers.get("ETag", None) self._properties["generation"] = response.headers.get("X-goog-generation", None) self._properties["metageneration"] = response.headers.get( @@ -896,8 +896,8 @@ def _extract_headers_from_download(self, response): method, digest = match.groups() digests[method] = digest - self.crc32c = digests.get("crc32c", None) - self.md5_hash = digests.get("md5", None) + self._properties["crc32c"] = digests.get("crc32c", None) + self._properties["md5Hash"] = digests.get("md5", None) def _do_download( self, diff --git a/tests/unit/test_blob.py b/tests/unit/test_blob.py index 41934be33..f74e6e111 100644 --- a/tests/unit/test_blob.py +++ b/tests/unit/test_blob.py @@ -1090,6 +1090,7 @@ def test__extract_headers_from_download_gzipped(self): self.assertEqual(blob.etag, "kittens") self.assertEqual(blob.generation, 42) self.assertEqual(blob.metageneration, 4) + self.assertEqual(blob._changes, set()) def test__extract_headers_from_download_empty(self): blob_name = "blob-name" @@ -1120,6 +1121,7 @@ def test__extract_headers_from_download_empty(self): self.assertEqual(blob.etag, "kittens") self.assertEqual(blob.generation, 42) self.assertEqual(blob.metageneration, 4) + self.assertEqual(blob._changes, set()) def test__extract_headers_from_download_w_hash_response_header_none(self): blob_name = "blob-name" From ebad8cb06c323e6a4acded12bacfb57758f18a97 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Fri, 23 Jul 2021 00:13:59 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/master/packages/owl-bot/README.md --- google/cloud/storage/blob.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/google/cloud/storage/blob.py b/google/cloud/storage/blob.py index 74d1488af..1d283ee30 100644 --- a/google/cloud/storage/blob.py +++ b/google/cloud/storage/blob.py @@ -875,11 +875,19 @@ def _extract_headers_from_download(self, response): :class requests.models.Response :param response: The server response from downloading a non-chunked file """ - self._properties["contentEncoding"] = response.headers.get("Content-Encoding", None) - self._properties[_CONTENT_TYPE_FIELD] = response.headers.get("Content-Type", None) + self._properties["contentEncoding"] = response.headers.get( + "Content-Encoding", None + ) + self._properties[_CONTENT_TYPE_FIELD] = response.headers.get( + "Content-Type", None + ) self._properties["cacheControl"] = response.headers.get("Cache-Control", None) - self._properties["storageClass"] = response.headers.get("X-Goog-Storage-Class", None) - self._properties["contentLanguage"] = response.headers.get("Content-Language", None) + self._properties["storageClass"] = response.headers.get( + "X-Goog-Storage-Class", None + ) + self._properties["contentLanguage"] = response.headers.get( + "Content-Language", None + ) self._properties["etag"] = response.headers.get("ETag", None) self._properties["generation"] = response.headers.get("X-goog-generation", None) self._properties["metageneration"] = response.headers.get(