Added Document.reload method
This commit is contained in:
parent
5ca75e9c6d
commit
3bead80f96
@ -64,6 +64,14 @@ class Document(BaseDocument):
|
||||
object_id = self._fields['id'].to_mongo(self.id)
|
||||
self.__class__.objects(id=object_id).delete()
|
||||
|
||||
def reload(self):
|
||||
"""Reloads all attributes from the database.
|
||||
"""
|
||||
object_id = self._fields['id'].to_mongo(self.id)
|
||||
obj = self.__class__.objects(id=object_id).first()
|
||||
for field in self._fields:
|
||||
setattr(self, field, getattr(obj, field))
|
||||
|
||||
def validate(self):
|
||||
"""Ensure that all fields' values are valid and that required fields
|
||||
are present.
|
||||
|
5
setup.py
5
setup.py
@ -1,4 +1,4 @@
|
||||
from setuptools import setup
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
VERSION = '0.1.1'
|
||||
|
||||
@ -22,11 +22,12 @@ CLASSIFIERS = [
|
||||
|
||||
setup(name='mongoengine',
|
||||
version=VERSION,
|
||||
packages=['mongoengine'],
|
||||
packages=find_packages(),
|
||||
author='Harry Marr',
|
||||
author_email='harry.marr@{nospam}gmail.com',
|
||||
url='http://hmarr.com/mongoengine/',
|
||||
license='MIT',
|
||||
include_package_data=True,
|
||||
description=DESCRIPTION,
|
||||
long_description=LONG_DESCRIPTION,
|
||||
platforms=['any'],
|
||||
|
@ -228,6 +228,24 @@ class DocumentTest(unittest.TestCase):
|
||||
self.assertEqual(person.name, "Test User")
|
||||
self.assertEqual(person.age, 30)
|
||||
|
||||
def test_reload(self):
|
||||
"""Ensure that attributes may be reloaded.
|
||||
"""
|
||||
person = self.Person(name="Test User", age=20)
|
||||
person.save()
|
||||
|
||||
person_obj = self.Person.objects.first()
|
||||
person_obj.name = "Mr Test User"
|
||||
person_obj.age = 21
|
||||
person_obj.save()
|
||||
|
||||
self.assertEqual(person.name, "Test User")
|
||||
self.assertEqual(person.age, 20)
|
||||
|
||||
person.reload()
|
||||
self.assertEqual(person.name, "Mr Test User")
|
||||
self.assertEqual(person.age, 21)
|
||||
|
||||
def test_dictionary_access(self):
|
||||
"""Ensure that dictionary-style field access works properly.
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user