All connection-related functions are now in connection.py. Created a ConnectionManager class for interacting with a collection in the database. Top-level document classes have an instance of a ConnectionManager (Document.collection). Defined a 'save' method on top-level document's that uses the collection manager's '_save_document' method to save the document to the database. Added tests for CollectionManagers -- all unit tests now require a valid connection to the database, which is set up in the tests' setUp method.
19 lines
630 B
Python
19 lines
630 B
Python
from connection import _get_db
|
|
|
|
class CollectionManager(object):
|
|
|
|
def __init__(self, document):
|
|
"""Set up the collection manager for a specific document.
|
|
"""
|
|
db = _get_db()
|
|
self._document = document
|
|
self._collection_name = document._meta['collection']
|
|
# This will create the collection if it doesn't exist
|
|
self._collection = db[self._collection_name]
|
|
self._id_field = document._meta['object_id_field']
|
|
|
|
def _save_document(self, document):
|
|
"""Save the provided document to the collection.
|
|
"""
|
|
_id = self._collection.save(document)
|