From fb756b2d2959bad56fc8336fb5aa5aa0191590ab Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Fri, 26 Sep 2014 14:34:14 -0400 Subject: [PATCH] Fix #138: clear existing (local) ACL when saving ACL to server. --- gcloud/storage/bucket.py | 4 +++- gcloud/storage/key.py | 4 +++- gcloud/storage/test_bucket.py | 6 ++---- gcloud/storage/test_key.py | 6 ++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gcloud/storage/bucket.py b/gcloud/storage/bucket.py index 37691396db5e..585440782212 100644 --- a/gcloud/storage/bucket.py +++ b/gcloud/storage/bucket.py @@ -443,7 +443,9 @@ def save_acl(self, acl=None): if acl is None: return self - return self.patch_metadata({'acl': list(acl)}) + self.patch_metadata({'acl': list(acl)}) + self.reload_acl() + return self def clear_acl(self): """Remove all ACL rules from the bucket. diff --git a/gcloud/storage/key.py b/gcloud/storage/key.py index 2022ac5eccf1..722e3e393968 100644 --- a/gcloud/storage/key.py +++ b/gcloud/storage/key.py @@ -404,7 +404,9 @@ def save_acl(self, acl=None): if acl is None: return self - return self.patch_metadata({'acl': list(acl)}) + self.patch_metadata({'acl': list(acl)}) + self.reload_acl() + return self def clear_acl(self): """Remove all ACL rules from the key. diff --git a/gcloud/storage/test_bucket.py b/gcloud/storage/test_bucket.py index 15cc91d13ccc..c7969c7cd0e2 100644 --- a/gcloud/storage/test_bucket.py +++ b/gcloud/storage/test_bucket.py @@ -532,8 +532,7 @@ def test_save_acl_existing_set_new_passed(self): bucket = self._makeOne(connection, NAME, metadata) bucket.reload_acl() self.assertTrue(bucket.save_acl(new_acl) is bucket) - # See: https://github.com/GoogleCloudPlatform/gcloud-python/issues/138 - #self.assertEqual(list(bucket.acl), new_acl) + self.assertEqual(list(bucket.acl), new_acl) kw = connection._requested self.assertEqual(len(kw), 1) self.assertEqual(kw[0]['method'], 'PATCH') @@ -550,8 +549,7 @@ def test_clear_acl(self): bucket = self._makeOne(connection, NAME, metadata) bucket.reload_acl() self.assertTrue(bucket.clear_acl() is bucket) - # See: https://github.com/GoogleCloudPlatform/gcloud-python/issues/138 - #self.assertEqual(list(bucket.acl), []) + self.assertEqual(list(bucket.acl), []) kw = connection._requested self.assertEqual(len(kw), 1) self.assertEqual(kw[0]['method'], 'PATCH') diff --git a/gcloud/storage/test_key.py b/gcloud/storage/test_key.py index e261178bcbbd..28db03c400f3 100644 --- a/gcloud/storage/test_key.py +++ b/gcloud/storage/test_key.py @@ -509,8 +509,7 @@ def test_save_acl_existing_set_new_passed(self): key = self._makeOne(bucket, KEY, metadata) key.reload_acl() self.assertTrue(key.save_acl(new_acl) is key) - # See: https://github.com/GoogleCloudPlatform/gcloud-python/issues/138 - #self.assertEqual(list(bucket.acl), new_acl) + self.assertEqual(list(key.acl), new_acl) kw = connection._requested self.assertEqual(len(kw), 1) self.assertEqual(kw[0]['method'], 'PATCH') @@ -528,8 +527,7 @@ def test_clear_acl(self): key = self._makeOne(bucket, KEY, metadata) key.reload_acl() self.assertTrue(key.clear_acl() is key) - # See: https://github.com/GoogleCloudPlatform/gcloud-python/issues/138 - #self.assertEqual(list(key.acl), []) + self.assertEqual(list(key.acl), []) kw = connection._requested self.assertEqual(len(kw), 1) self.assertEqual(kw[0]['method'], 'PATCH')