':param doc_store_config: must have a host, db, and collection entries. Other common entries: port, tz_aware.'

def __init__(self, contentstore, doc_store_config, fs_root, render_template, default_class=None, error_tracker=null_error_tracker, i18n_service=None, fs_service=None, user_service=None, signal_handler=None, retry_wait_time=0.1, **kwargs):

    super(MongoModuleStore, self).__init__(contentstore=contentstore, **kwargs)
    def do_connection(db, collection, host, port=27017, tz_aware=True, user=None, password=None, asset_collection=None, **kwargs):
        '\n                                                Create    &    open    the    connection,    authenticate,    and    provide    pointers    to    the    collection\n                                                '
        kwargs['w'] = 1
        self.database = connect_to_mongodb(db, host, port=port, tz_aware=tz_aware, user=user, password=password, retry_wait_time=retry_wait_time, **kwargs)
        self.collection = self.database[collection]
        if (asset_collection is None):
            asset_collection = self.DEFAULT_ASSET_COLLECTION_NAME
        self.asset_collection = self.database[asset_collection]
    do_connection(**doc_store_config)
    if (default_class is not None):
        (module_path, _, class_name) = default_class.rpartition('.')
        class_ = getattr(import_module(module_path), class_name)
        self.default_class = class_
    else:
        self.default_class = None
    self.fs_root = path(fs_root)
    self.error_tracker = error_tracker
    self.render_template = render_template
    self.i18n_service = i18n_service
    self.fs_service = fs_service
    self.user_service = user_service
    self._course_run_cache = {}
    self.signal_handler = signal_handler
