def save(self, document):
     '''Save the given `document`.'''
     assert isinstance(document, Document)
     existing = list(self._documents.find({'name': document.name}))
     if len(existing) > 0:
         raise self._exists(document.name)
     self._documents.insert(Document.to_dict(document))
 def load(self, name):
     '''Load a single document with given `name`.'''
     assert isinstance(name, unicode)
     results = list(self._documents.find({'name': name}))
     if len(results) == 0:
         raise self._not_exists(name)
     return Document.from_dict(results[0])
 def test_to_dict(self):
     A = Document(self.name(), self.text(), self.metadata())
     self.assertEqual(Document.to_dict(A), self.dictionary())
 def test_from_dict(self):
     A = Document(self.name(), self.text(), self.metadata())
     B = Document.from_dict(self.dictionary())
     self.assertEqual(A, B)
 def _iterator(self, cursor):
     for entry in cursor:
         yield Document.from_dict(entry)