def repo(request, db_session): # clean old config settings r.Config.set_current(r.Config({}, {}, None)) disk_store_gen = None disk_store_gen2 = None repo2 = None prevdir = os.getcwd() if request.param == 'memoryrepo': repo = r.MemoryRepo(read=True, write=True, delete=True) elif request.param == 'dbrepo-diskstore': disk_store_gen = disk_store() repo = r.DbRepo(db_session, next(disk_store_gen), read=True, write=True, delete=True) elif request.param == 'chained-memmem': repo = r.ChainedRepo([ r.MemoryRepo(read=True, write=True, delete=True), r.MemoryRepo(read=True, write=True, delete=True), ]) elif request.param == 'chained-repo': disk_store_gen = disk_store() disk_store_gen2 = disk_store() repo1 = r.DbRepo(db_session, next(disk_store_gen), read=True, write=True, delete=True) os.chdir(prevdir) repo2 = r.DbRepo( 'postgresql://localhost/test_provenance', next(disk_store_gen2), read=True, write=True, delete=True, schema='second_repo', ) repo = r.ChainedRepo([repo1, repo2]) else: repo = r.DbRepo(db_session, memory_store(), read=True, write=True, delete=True) p.set_default_repo(repo) yield repo p.set_default_repo(None) if repo2 is not None: repo2._db_engine.execute('drop schema second_repo cascade;') if disk_store_gen: next(disk_store_gen, 'ignore') if disk_store_gen2: next(disk_store_gen2, 'ignore')
def load_config(config): objs = from_config(config) pconfig = r.Config(objs['blobstores'], objs['repos'], default_repo=config['default_repo'], run_info_fn=config.get('run_info_fn', None), use_cache=config.get('use_cache', True), check_mutations=config.get('check_mutations', False)) r.Config.set_current(pconfig) return pconfig