'A context manager for temporarily changing the default store in the Mixed modulestore to the given store type'

@contextmanager
def default_store(self, store_type):

    store = next((store for store in self.modulestores if (store.get_modulestore_type() == store_type)), None)
    if (not store):
        raise Exception(u'Cannot    find    store    of    type    {}'.format(store_type))
    prev_thread_local_store = getattr(self.thread_cache, 'default_store', None)
    try:
        self.thread_cache.default_store = store
        (yield)
    finally:
        self.thread_cache.default_store = prev_thread_local_store
