Have resource CRUD return self to simplify the proxies

Instead of:
    def create_project(self, **data):
        obj = project.Project(**data)
        obj.create(self.session)
        return obj

We can:
    def create_project(self, **data):
        return project.Project(**data).create(self.session)

Change-Id: Ifbb41c7d1de461c80ea98b2c3d2e715da770a07f
This commit is contained in:
Terry Howe 2014-11-01 12:49:25 -06:00
parent 94e83e34a3
commit 2f1b4086da
2 changed files with 8 additions and 4 deletions

View File

@ -295,6 +295,7 @@ class Resource(collections.MutableMapping):
resp = self.create_by_id(session, self._attrs, self.id, path_args=self)
self._attrs[self.id_attribute] = resp[self.id_attribute]
self._reset_dirty()
return self
@classmethod
def get_data_by_id(cls, session, r_id, path_args=None,
@ -332,6 +333,7 @@ class Resource(collections.MutableMapping):
include_headers=include_headers)
self._attrs.update(body)
self._loaded = True
return self
@classmethod
def head_data_by_id(cls, session, r_id, path_args=None):
@ -360,6 +362,7 @@ class Resource(collections.MutableMapping):
data = self.head_data_by_id(session, self.id, path_args=self)
self._attrs.update(data)
self._loaded = True
return self
@classmethod
def update_by_id(cls, session, r_id, attrs, path_args=None):
@ -400,6 +403,7 @@ class Resource(collections.MutableMapping):
assert resp_id == self.id
self._reset_dirty()
return self
@classmethod
def delete_by_id(cls, session, r_id, path_args=None):

View File

@ -72,7 +72,7 @@ class ResourceTests(base.TestTransportBase):
def test_empty_id(self):
self.stub_url(httpretty.GET, path=[fake_path], json=fake_body)
obj = FakeResource.new(**fake_arguments)
obj.get(self.session)
self.assertEqual(obj, obj.get(self.session))
self.assertEqual(fake_id, obj.id)
self.assertEqual(fake_name, obj['name'])
@ -92,7 +92,7 @@ class ResourceTests(base.TestTransportBase):
attr1=fake_attr1,
attr2=fake_attr2)
obj.create(self.session)
self.assertEqual(obj, obj.create(self.session))
self.assertFalse(obj.is_dirty)
last_req = httpretty.last_request().parsed_body[fake_resource]
@ -191,7 +191,7 @@ class ResourceTests(base.TestTransportBase):
obj = FakeResource.new(name=fake_name,
attr1=new_attr1,
attr2=new_attr2)
obj.create(self.session)
self.assertEqual(obj, obj.create(self.session))
self.assertFalse(obj.is_dirty)
self.assertEqual(new_attr1, obj['attr1'])
@ -199,7 +199,7 @@ class ResourceTests(base.TestTransportBase):
obj.second = fake_attr2
self.assertTrue(obj.is_dirty)
obj.update(self.session)
self.assertEqual(obj, obj.update(self.session))
self.assertFalse(obj.is_dirty)
last_req = httpretty.last_request().parsed_body[fake_resource]