Added delete method to Document objects

This commit is contained in:
Harry Marr 2009-12-18 16:57:53 +00:00
parent 0a64f42d5f
commit 44fc9096a4
2 changed files with 15 additions and 0 deletions

View File

@ -21,6 +21,12 @@ class Document(BaseDocument):
object_id = self.objects._collection.save(self.to_mongo())
self.id = object_id
def delete(self):
"""Delete the document from the database. This will only take effect
if the document has been previously saved.
"""
self.objects._collection.remove(self.id)
@classmethod
def drop_collection(cls):
"""Drops the entire collection associated with this Document type from

View File

@ -176,6 +176,15 @@ class DocumentTest(unittest.TestCase):
self.assertEqual(person_obj['age'], 30)
self.assertEqual(person_obj['_id'], person.id)
def test_delete(self):
"""Ensure that document may be deleted using the delete method.
"""
person = self.Person(name="Test User", age=30)
person.save()
self.assertEqual(self.Person.objects.count(), 1)
person.delete()
self.assertEqual(self.Person.objects.count(), 0)
def test_save_custom_id(self):
"""Ensure that a document may be saved with a custom _id.
"""