diff --git a/gcloud/storage/test__helpers.py b/gcloud/storage/test__helpers.py index 8734f1ffb093..431fd9bc9b1e 100644 --- a/gcloud/storage/test__helpers.py +++ b/gcloud/storage/test__helpers.py @@ -62,16 +62,9 @@ def test_reload(self): self.assertEqual(derived._changes, set()) def test__patch_property(self): - connection = _Connection({'foo': 'Foo'}) - derived = self._derivedClass(connection, '/path')() + derived = self._derivedClass()() derived._patch_property('foo', 'Foo') - derived.patch() - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/path') - self.assertEqual(kw[0]['data'], {'foo': 'Foo'}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(derived._properties, {'foo': 'Foo'}) def test_patch(self): connection = _Connection({'foo': 'Foo'}) diff --git a/gcloud/storage/test_blob.py b/gcloud/storage/test_blob.py index 086b65a6d1ec..4c3d38dcbaef 100644 --- a/gcloud/storage/test_blob.py +++ b/gcloud/storage/test_blob.py @@ -702,19 +702,13 @@ def test_cache_control_getter(self): def test_cache_control_setter(self): BLOB_NAME = 'blob-name' CACHE_CONTROL = 'no-cache' - after = {'cacheControl': CACHE_CONTROL} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.cache_control, None) blob.cache_control = CACHE_CONTROL - blob.patch() self.assertEqual(blob.cache_control, CACHE_CONTROL) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], {'cacheControl': CACHE_CONTROL}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_component_count(self): BUCKET = object() @@ -748,20 +742,13 @@ def test_content_disposition_getter(self): def test_content_disposition_setter(self): BLOB_NAME = 'blob-name' CONTENT_DISPOSITION = 'Attachment; filename=example.jpg' - after = {'contentDisposition': CONTENT_DISPOSITION} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.content_disposition, None) blob.content_disposition = CONTENT_DISPOSITION - blob.patch() self.assertEqual(blob.content_disposition, CONTENT_DISPOSITION) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'contentDisposition': CONTENT_DISPOSITION}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_content_encoding_getter(self): BLOB_NAME = 'blob-name' @@ -775,20 +762,13 @@ def test_content_encoding_getter(self): def test_content_encoding_setter(self): BLOB_NAME = 'blob-name' CONTENT_ENCODING = 'gzip' - after = {'contentEncoding': CONTENT_ENCODING} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.content_encoding, None) blob.content_encoding = CONTENT_ENCODING - blob.patch() self.assertEqual(blob.content_encoding, CONTENT_ENCODING) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'contentEncoding': CONTENT_ENCODING}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_content_language_getter(self): BLOB_NAME = 'blob-name' @@ -802,20 +782,13 @@ def test_content_language_getter(self): def test_content_language_setter(self): BLOB_NAME = 'blob-name' CONTENT_LANGUAGE = 'pt-BR' - after = {'contentLanguage': CONTENT_LANGUAGE} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.content_language, None) blob.content_language = CONTENT_LANGUAGE - blob.patch() self.assertEqual(blob.content_language, CONTENT_LANGUAGE) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'contentLanguage': CONTENT_LANGUAGE}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_content_type_getter(self): BLOB_NAME = 'blob-name' @@ -829,20 +802,13 @@ def test_content_type_getter(self): def test_content_type_setter(self): BLOB_NAME = 'blob-name' CONTENT_TYPE = 'image/jpeg' - after = {'contentType': CONTENT_TYPE} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.content_type, None) blob.content_type = CONTENT_TYPE - blob.patch() self.assertEqual(blob.content_type, CONTENT_TYPE) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'contentType': CONTENT_TYPE}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_crc32c_getter(self): BLOB_NAME = 'blob-name' @@ -856,20 +822,13 @@ def test_crc32c_getter(self): def test_crc32c_setter(self): BLOB_NAME = 'blob-name' CRC32C = 'DEADBEEF' - after = {'crc32c': CRC32C} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.crc32c, None) blob.crc32c = CRC32C - blob.patch() self.assertEqual(blob.crc32c, CRC32C) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'crc32c': CRC32C}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_etag(self): BLOB_NAME = 'blob-name' @@ -920,20 +879,13 @@ def test_md5_hash_getter(self): def test_md5_hash_setter(self): BLOB_NAME = 'blob-name' MD5_HASH = 'DEADBEEF' - after = {'md5Hash': MD5_HASH} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.md5_hash, None) blob.md5_hash = MD5_HASH - blob.patch() self.assertEqual(blob.md5_hash, MD5_HASH) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'md5Hash': MD5_HASH}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_media_link(self): BLOB_NAME = 'blob-name' @@ -956,20 +908,13 @@ def test_metadata_getter(self): def test_metadata_setter(self): BLOB_NAME = 'blob-name' METADATA = {'foo': 'Foo'} - after = {'metadata': METADATA} - connection = _Connection(after) + connection = _Connection() bucket = _Bucket(connection) blob = self._makeOne(BLOB_NAME, bucket=bucket) + self.assertEqual(blob.metadata, None) blob.metadata = METADATA - blob.patch() self.assertEqual(blob.metadata, METADATA) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/name/o/%s' % BLOB_NAME) - self.assertEqual(kw[0]['data'], - {'metadata': METADATA}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_metageneration(self): BUCKET = object() diff --git a/gcloud/storage/test_bucket.py b/gcloud/storage/test_bucket.py index d5c5bca4d12b..1de52a5e55b2 100644 --- a/gcloud/storage/test_bucket.py +++ b/gcloud/storage/test_bucket.py @@ -616,17 +616,12 @@ def test_location_getter(self): def test_location_setter(self): NAME = 'name' - connection = _Connection({'location': 'AS'}) + connection = _Connection() bucket = self._makeOne(NAME, connection) + self.assertEqual(bucket.location, None) bucket.location = 'AS' - bucket.patch() self.assertEqual(bucket.location, 'AS') - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['data'], {'location': 'AS'}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_lifecycle_rules_getter(self): NAME = 'name' @@ -642,21 +637,13 @@ def test_lifecycle_rules_setter(self): NAME = 'name' LC_RULE = {'action': {'type': 'Delete'}, 'condition': {'age': 42}} rules = [LC_RULE] - after = {'lifecycle': {'rule': rules}} - connection = _Connection(after) + connection = _Connection() bucket = self._makeOne(NAME, connection) self.assertEqual(bucket.lifecycle_rules, []) - bucket.lifecycle_rules = rules - bucket.patch() self.assertEqual(bucket.lifecycle_rules, rules) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['data'], after) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_cors_getter(self): NAME = 'name' @@ -683,21 +670,13 @@ def test_cors_setter(self): 'origin': ['127.0.0.1'], 'responseHeader': ['Content-Type'], } - DATA = {'cors': [CORS_ENTRY]} - connection = _Connection(DATA) + connection = _Connection() bucket = self._makeOne(NAME, connection) self.assertEqual(bucket.cors, []) - bucket.cors = [CORS_ENTRY] - bucket.patch() self.assertEqual(bucket.cors, [CORS_ENTRY]) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['data'], DATA) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_get_logging_w_prefix(self): NAME = 'name' @@ -709,99 +688,49 @@ def test_get_logging_w_prefix(self): 'logObjectPrefix': LOG_PREFIX, }, } - resp_to_reload = before - connection = _Connection(resp_to_reload) - bucket = self._makeOne(NAME, connection) - bucket.reload() + connection = _Connection() + bucket = self._makeOne(NAME, connection, properties=before) info = bucket.get_logging() self.assertEqual(info['logBucket'], LOG_BUCKET) self.assertEqual(info['logObjectPrefix'], LOG_PREFIX) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'GET') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['query_params'], {'projection': 'noAcl'}) + self.assertEqual(len(connection._requested), 0) def test_enable_logging_defaults(self): NAME = 'name' LOG_BUCKET = 'logs' before = {'logging': None} - resp_to_reload = before - resp_to_enable_logging = { - 'logging': {'logBucket': LOG_BUCKET, 'logObjectPrefix': ''}, - } - connection = _Connection(resp_to_reload, resp_to_enable_logging, - resp_to_enable_logging) + connection = _Connection() bucket = self._makeOne(NAME, connection, properties=before) - bucket.reload() self.assertTrue(bucket.get_logging() is None) bucket.enable_logging(LOG_BUCKET) info = bucket.get_logging() - bucket.patch() self.assertEqual(info['logBucket'], LOG_BUCKET) self.assertEqual(info['logObjectPrefix'], '') - kw = connection._requested - self.assertEqual(len(kw), 2) - self.assertEqual(kw[0]['method'], 'GET') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['query_params'], {'projection': 'noAcl'}) - self.assertEqual(kw[1]['method'], 'PATCH') - self.assertEqual(kw[1]['path'], '/b/%s' % NAME) - self.assertEqual(kw[1]['data'], resp_to_enable_logging) - self.assertEqual(kw[1]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_enable_logging_explicit(self): NAME = 'name' LOG_BUCKET = 'logs' LOG_PFX = 'pfx' before = {'logging': None} - resp_to_reload = before - resp_to_enable_logging = { - 'logging': {'logBucket': LOG_BUCKET, 'logObjectPrefix': LOG_PFX}, - } - connection = _Connection(resp_to_reload, - resp_to_enable_logging, - resp_to_enable_logging) + connection = _Connection() bucket = self._makeOne(NAME, connection, properties=before) - bucket.reload() self.assertTrue(bucket.get_logging() is None) bucket.enable_logging(LOG_BUCKET, LOG_PFX) - bucket.patch() info = bucket.get_logging() self.assertEqual(info['logBucket'], LOG_BUCKET) self.assertEqual(info['logObjectPrefix'], LOG_PFX) - kw = connection._requested - self.assertEqual(len(kw), 2) - self.assertEqual(kw[0]['method'], 'GET') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['query_params'], {'projection': 'noAcl'}) - self.assertEqual(kw[1]['method'], 'PATCH') - self.assertEqual(kw[1]['path'], '/b/%s' % NAME) - self.assertEqual(kw[1]['data'], resp_to_enable_logging) - self.assertEqual(kw[1]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_disable_logging(self): NAME = 'name' before = {'logging': {'logBucket': 'logs', 'logObjectPrefix': 'pfx'}} - resp_to_reload = before - resp_to_disable_logging = {'logging': None} - connection = _Connection(resp_to_reload, resp_to_disable_logging, - resp_to_disable_logging) + connection = _Connection() bucket = self._makeOne(NAME, connection, properties=before) - bucket.reload() self.assertTrue(bucket.get_logging() is not None) bucket.disable_logging() - bucket.patch() self.assertTrue(bucket.get_logging() is None) - kw = connection._requested - self.assertEqual(len(kw), 2) - self.assertEqual(kw[0]['method'], 'GET') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['query_params'], {'projection': 'noAcl'}) - self.assertEqual(kw[1]['method'], 'PATCH') - self.assertEqual(kw[1]['path'], '/b/%s' % NAME) - self.assertEqual(kw[1]['data'], {'logging': None}) - self.assertEqual(kw[1]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_metageneration(self): METAGENERATION = 42 @@ -869,15 +798,10 @@ def test_time_created_unset(self): def test_versioning_enabled_getter_missing(self): NAME = 'name' - connection = _Connection({}) + connection = _Connection() bucket = self._makeOne(NAME, connection) - bucket.reload() self.assertEqual(bucket.versioning_enabled, False) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'GET') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['query_params'], {'projection': 'noAcl'}) + self.assertEqual(len(connection._requested), 0) def test_versioning_enabled_getter(self): NAME = 'name' @@ -890,67 +814,42 @@ def test_versioning_enabled_getter(self): def test_versioning_enabled_setter(self): NAME = 'name' - before = {'versioning': {'enabled': False}} - after = {'versioning': {'enabled': True}} - connection = _Connection(after) - bucket = self._makeOne(NAME, connection, properties=before) + connection = _Connection() + bucket = self._makeOne(NAME, connection) self.assertFalse(bucket.versioning_enabled) bucket.versioning_enabled = True - bucket.patch() self.assertTrue(bucket.versioning_enabled) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['data'], {'versioning': {'enabled': True}}) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(len(connection._requested), 0) def test_configure_website_defaults(self): NAME = 'name' - patched = {'website': {'mainPageSuffix': None, - 'notFoundPage': None}} - connection = _Connection(patched) + UNSET = {'website': {'mainPageSuffix': None, + 'notFoundPage': None}} + connection = _Connection() bucket = self._makeOne(NAME, connection) bucket.configure_website() - bucket.patch() - self.assertEqual(bucket._properties, patched) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['data'], patched) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(bucket._properties, UNSET) + self.assertEqual(len(connection._requested), 0) def test_configure_website_explicit(self): NAME = 'name' - patched = {'website': {'mainPageSuffix': 'html', - 'notFoundPage': '404.html'}} - connection = _Connection(patched) + WEBSITE_VAL = {'website': {'mainPageSuffix': 'html', + 'notFoundPage': '404.html'}} + connection = _Connection() bucket = self._makeOne(NAME, connection) bucket.configure_website('html', '404.html') - bucket.patch() - self.assertEqual(bucket._properties, patched) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['data'], patched) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(bucket._properties, WEBSITE_VAL) + self.assertEqual(len(connection._requested), 0) def test_disable_website(self): NAME = 'name' - patched = {'website': {'mainPageSuffix': None, - 'notFoundPage': None}} - connection = _Connection(patched) + UNSET = {'website': {'mainPageSuffix': None, + 'notFoundPage': None}} + connection = _Connection() bucket = self._makeOne(NAME, connection) bucket.disable_website() - bucket.patch() - self.assertEqual(bucket._properties, patched) - kw = connection._requested - self.assertEqual(len(kw), 1) - self.assertEqual(kw[0]['method'], 'PATCH') - self.assertEqual(kw[0]['path'], '/b/%s' % NAME) - self.assertEqual(kw[0]['data'], patched) - self.assertEqual(kw[0]['query_params'], {'projection': 'full'}) + self.assertEqual(bucket._properties, UNSET) + self.assertEqual(len(connection._requested), 0) def test_make_public_defaults(self): from gcloud.storage.acl import _ACLEntity