Commit 65bd3163 by dgrtwo

Fixes #34: adds batch saving for User objects + test case

parent 284b2078
...@@ -425,6 +425,22 @@ class TestUser(unittest.TestCase): ...@@ -425,6 +425,22 @@ class TestUser(unittest.TestCase):
self.assert_(User.Query.filter(phone=phone_number).exists(), self.assert_(User.Query.filter(phone=phone_number).exists(),
'Failed to update user data. New info not on Parse') 'Failed to update user data. New info not on Parse')
def testCanBatchUpdate(self):
user = self._get_logged_user()
phone_number = "555-0134"
original_updatedAt = user.updatedAt
user.phone = phone_number
batcher = ParseBatcher()
batcher.batch_save([user])
self.assert_(User.Query.filter(phone=phone_number).exists(),
'Failed to batch update user data. New info not on Parse')
self.assert_(user.updatedAt != original_updatedAt,
'Failed to batch update user data: updatedAt not changed')
if __name__ == "__main__": if __name__ == "__main__":
# command line # command line
......
...@@ -55,11 +55,21 @@ class User(ParseResource): ...@@ -55,11 +55,21 @@ class User(ParseResource):
return {'X-Parse-Session-Token': self.sessionToken} return {'X-Parse-Session-Token': self.sessionToken}
@login_required @login_required
def save(self): def save(self, batch=False):
session_header = {'X-Parse-Session-Token': self.sessionToken} session_header = {'X-Parse-Session-Token': self.sessionToken}
url = self._absolute_url url = self._absolute_url
data = self._to_native() data = self._to_native()
return self.__class__.PUT(url, extra_headers=session_header, **data)
response = self.__class__.PUT(url, extra_headers=session_header,
batch=batch, **data)
def call_back(response_dict):
self.updatedAt = response_dict['updatedAt']
if batch:
return response, call_back
else:
call_back(response)
@login_required @login_required
def delete(self): def delete(self):
......
...@@ -21,7 +21,7 @@ class TestCommand(Command): ...@@ -21,7 +21,7 @@ class TestCommand(Command):
setup( setup(
name='parse_rest', name='parse_rest',
version='0.2.20131001', version='0.2.20141002',
description='A client library for Parse.com\'.s REST API', description='A client library for Parse.com\'.s REST API',
url='https://github.com/dgrtwo/ParsePy', url='https://github.com/dgrtwo/ParsePy',
packages=['parse_rest'], packages=['parse_rest'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment