Пример #1
0
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')
Пример #2
0
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