Skip to content

Commit

Permalink
Removing _PropertyMixin.properties public property.
Browse files Browse the repository at this point in the history
The blob/bucket metadata was never actually accessed via
the public properties `properties`.
  • Loading branch information
dhermes committed Mar 30, 2015
1 parent 5d86096 commit 85aea83
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 53 deletions.
11 changes: 1 addition & 10 deletions gcloud/storage/_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,6 @@ def __init__(self, name=None):
self._properties = {}
self._changes = set()

@property
def properties(self):
"""Return a copy of properties.
:rtype: dict
:returns: Copy of properties.
"""
return self._properties.copy()

@property
def batch(self):
"""Return a context manager which defers/batches updates.
Expand Down Expand Up @@ -155,7 +146,7 @@ def _scalar_property(fieldname):
"""
def _getter(self):
"""Scalar property getter."""
return self.properties[fieldname]
return self._properties[fieldname]

def _setter(self, value):
"""Scalar property setter."""
Expand Down
28 changes: 14 additions & 14 deletions gcloud/storage/blob.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ def download_to_filename(self, filename):

mtime = time.mktime(
datetime.datetime.strptime(
self.properties['updated'],
self._properties['updated'],
'%Y-%m-%dT%H:%M:%S.%fz').timetuple()
)
os.utime(file_obj.name, (mtime, mtime))
Expand Down Expand Up @@ -489,7 +489,7 @@ def component_count(self):
:rtype: integer
"""
return self.properties['componentCount']
return self._properties['componentCount']

@property
def etag(self):
Expand All @@ -500,7 +500,7 @@ def etag(self):
:rtype: string
"""
return self.properties['etag']
return self._properties['etag']

@property
def generation(self):
Expand All @@ -510,7 +510,7 @@ def generation(self):
:rtype: integer
"""
return self.properties['generation']
return self._properties['generation']

@property
def id(self):
Expand All @@ -520,7 +520,7 @@ def id(self):
:rtype: string
"""
return self.properties['id']
return self._properties['id']

md5_hash = _scalar_property('md5Hash')
"""MD5 hash for this object.
Expand All @@ -539,7 +539,7 @@ def media_link(self):
:rtype: string
"""
return self.properties['mediaLink']
return self._properties['mediaLink']

@property
def metadata(self):
Expand All @@ -549,7 +549,7 @@ def metadata(self):
:rtype: dict
"""
return copy.deepcopy(self.properties['metadata'])
return copy.deepcopy(self._properties['metadata'])

@metadata.setter
def metadata(self, value):
Expand All @@ -569,7 +569,7 @@ def metageneration(self):
:rtype: integer
"""
return self.properties['metageneration']
return self._properties['metageneration']

@property
def owner(self):
Expand All @@ -580,7 +580,7 @@ def owner(self):
:rtype: dict
:returns: mapping of owner's role/ID.
"""
return self.properties['owner'].copy()
return self._properties['owner'].copy()

@property
def self_link(self):
Expand All @@ -590,7 +590,7 @@ def self_link(self):
:rtype: string
"""
return self.properties['selfLink']
return self._properties['selfLink']

@property
def size(self):
Expand All @@ -600,7 +600,7 @@ def size(self):
:rtype: integer
"""
return self.properties['size']
return self._properties['size']

@property
def storage_class(self):
Expand All @@ -612,7 +612,7 @@ def storage_class(self):
:rtype: string
:returns: Currently one of "STANDARD", "DURABLE_REDUCED_AVAILABILITY"
"""
return self.properties['storageClass']
return self._properties['storageClass']

@property
def time_deleted(self):
Expand All @@ -624,7 +624,7 @@ def time_deleted(self):
:returns: timestamp in RFC 3339 format, or None if the object
has a "live" version.
"""
return self.properties.get('timeDeleted')
return self._properties.get('timeDeleted')

@property
def updated(self):
Expand All @@ -635,7 +635,7 @@ def updated(self):
:rtype: string
:returns: timestamp in RFC 3339 format.
"""
return self.properties['updated']
return self._properties['updated']


class _UploadConfig(object):
Expand Down
22 changes: 11 additions & 11 deletions gcloud/storage/bucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ def cors(self):
:returns: A sequence of mappings describing each CORS policy.
"""
return [copy.deepcopy(policy)
for policy in self.properties.get('cors', ())]
for policy in self._properties.get('cors', ())]

@cors.setter
def cors(self, entries):
Expand Down Expand Up @@ -499,7 +499,7 @@ def etag(self):
:rtype: string
"""
return self.properties['etag']
return self._properties['etag']

@property
def id(self):
Expand All @@ -509,7 +509,7 @@ def id(self):
:rtype: string
"""
return self.properties['id']
return self._properties['id']

@property
def lifecycle_rules(self):
Expand Down Expand Up @@ -555,7 +555,7 @@ def get_logging(self):
(if logging is enabled), or None (if not).
"""
self.reload()
info = self.properties.get('logging')
info = self._properties.get('logging')
if info is not None:
return info.copy()

Expand Down Expand Up @@ -590,7 +590,7 @@ def metageneration(self):
:rtype: integer
"""
return self.properties['metageneration']
return self._properties['metageneration']

@property
def owner(self):
Expand All @@ -601,7 +601,7 @@ def owner(self):
:rtype: dict
:returns: mapping of owner's role/ID.
"""
return self.properties['owner'].copy()
return self._properties['owner'].copy()

@property
def project_number(self):
Expand All @@ -611,7 +611,7 @@ def project_number(self):
:rtype: integer
"""
return self.properties['projectNumber']
return self._properties['projectNumber']

@property
def self_link(self):
Expand All @@ -621,7 +621,7 @@ def self_link(self):
:rtype: string
"""
return self.properties['selfLink']
return self._properties['selfLink']

@property
def storage_class(self):
Expand All @@ -633,7 +633,7 @@ def storage_class(self):
:rtype: string
:returns: Currently one of "STANDARD", "DURABLE_REDUCED_AVAILABILITY"
"""
return self.properties['storageClass']
return self._properties['storageClass']

@property
def time_created(self):
Expand All @@ -644,7 +644,7 @@ def time_created(self):
:rtype: string
:returns: timestamp in RFC 3339 format.
"""
return self.properties['timeCreated']
return self._properties['timeCreated']

@property
def versioning_enabled(self):
Expand All @@ -656,7 +656,7 @@ def versioning_enabled(self):
:rtype: boolean
:returns: True if enabled, else False.
"""
versioning = self.properties.get('versioning', {})
versioning = self._properties.get('versioning', {})
return versioning.get('enabled', False)

@versioning_enabled.setter
Expand Down
14 changes: 1 addition & 13 deletions gcloud/storage/test__helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,6 @@ def test_batch(self):
self.assertEqual(kw[0]['data'], {'foo': 'Qux', 'bar': 'Baz'})
self.assertEqual(kw[0]['query_params'], {'projection': 'full'})

def test_properties_no_fetch(self):
connection = _Connection({'foo': 'Foo'})
derived = self._derivedClass(connection, '/path')()
self.assertEqual(derived.properties, {})
derived.reload()
self.assertEqual(derived.properties, {'foo': 'Foo'})
kw = connection._requested
self.assertEqual(len(kw), 1)
self.assertEqual(kw[0]['method'], 'GET')
self.assertEqual(kw[0]['path'], '/path')
self.assertEqual(kw[0]['query_params'], {'projection': 'noAcl'})

def test_reload(self):
connection = _Connection({'foo': 'Foo'})
derived = self._derivedClass(connection, '/path')()
Expand Down Expand Up @@ -175,7 +163,7 @@ def test_getter(self):

class Test(object):
def __init__(self, **kw):
self.properties = kw.copy()
self._properties = kw.copy()
do_re_mi = self._callFUT('solfege')

test = Test(solfege='Latido')
Expand Down
4 changes: 2 additions & 2 deletions gcloud/storage/test_blob.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def test_ctor_explicit(self):
self.assertTrue(blob.bucket is bucket)
self.assertTrue(blob.connection is connection)
self.assertEqual(blob.name, BLOB_NAME)
self.assertEqual(blob.properties, properties)
self.assertEqual(blob._properties, properties)
self.assertFalse(blob._acl.loaded)
self.assertTrue(blob._acl.blob is blob)

Expand Down Expand Up @@ -294,7 +294,7 @@ def test_download_to_filename(self):
mtime = os.path.getmtime(f.name)
updatedTime = time.mktime(
datetime.datetime.strptime(
blob.properties['updated'],
blob._properties['updated'],
'%Y-%m-%dT%H:%M:%S.%fz').timetuple()
)
self.assertEqual(wrote, b'abcdef')
Expand Down
6 changes: 3 additions & 3 deletions gcloud/storage/test_bucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -887,7 +887,7 @@ def test_configure_website_defaults(self):
bucket = self._makeOne(NAME, connection)
bucket.configure_website()
bucket.patch()
self.assertEqual(bucket.properties, patched)
self.assertEqual(bucket._properties, patched)
kw = connection._requested
self.assertEqual(len(kw), 1)
self.assertEqual(kw[0]['method'], 'PATCH')
Expand All @@ -903,7 +903,7 @@ def test_configure_website_explicit(self):
bucket = self._makeOne(NAME, connection)
bucket.configure_website('html', '404.html')
bucket.patch()
self.assertEqual(bucket.properties, patched)
self.assertEqual(bucket._properties, patched)
kw = connection._requested
self.assertEqual(len(kw), 1)
self.assertEqual(kw[0]['method'], 'PATCH')
Expand All @@ -919,7 +919,7 @@ def test_disable_website(self):
bucket = self._makeOne(NAME, connection)
bucket.disable_website()
bucket.patch()
self.assertEqual(bucket.properties, patched)
self.assertEqual(bucket._properties, patched)
kw = connection._requested
self.assertEqual(len(kw), 1)
self.assertEqual(kw[0]['method'], 'PATCH')
Expand Down

0 comments on commit 85aea83

Please sign in to comment.