def test_detect_invalid_version_in_meta(repo_w, tmpdir):
    rp = str(tmpdir) + '/r1'
    generate_structure(rp, ['0.1.0'], versions_meta=['0.1'], number=1)
    repo = Repository('repo_in_meta')
    with pytest.raises(RepositoryException) as ex:
        repo.create(rp)
    assert 'r1/first/0.1.0' in str(ex)
Exemple #2
0
def add(name, source, overwrite, resource_name):
    repo = Repository(name)
    if resource_name is None:
        resource_name = os.path.split(source)[-1]
    repo.add_single(name=resource_name,
                    source=source,
                    overwrite=overwrite)
def repo_w(request, tmpdir_factory):
    path = generator(request, tmpdir_factory)
    r = Repository('rwtest')
    r.create(path)
    request.addfinalizer(lambda: shutil.rmtree(path))
    request.addfinalizer(lambda: r.remove())
    return r
Exemple #4
0
def _import(name, source, link):
    if name is None:
        name = os.path.split(source)[-1]
    repo = Repository(name)
    repo.create(source, link)
    cnt = len(list(repo.iter_contents()))
    click.echo(
        "Created new repository with {} resources".format(cnt))
Exemple #5
0
def show(repository):
    if not repository:
        repos = Repository.list_repos()
        str_repos = '\n'.join(sorted(repos))
        click.echo(str_repos)
    else:
        repo = Repository(repository)
        content = yaml.safe_dump(dict(repo.get_contents()),
                                 default_flow_style=False)
        click.echo_via_pager(content)
def test_create_from_src(mock_mkdtemp, mock_rename, _):
    tmp_dir = '/tmp/dir'
    mock_mkdtemp.return_value = tmp_dir

    repo = Repository('create_from_src')
    real_path = repo.fpath

    repo.create(source='source')

    mock_rename.assert_called_with(tmp_dir, real_path)
    assert repo.fpath == real_path
Exemple #7
0
def update(name, source, overwrite):
    repo = Repository(name)
    prev = len(list(repo.iter_contents()))
    repo.update(source, overwrite)
    now = len(list(repo.iter_contents()))
    diff = now - prev
    if diff:
        click.echo(
            "Updated repository, with {} new resources".format(diff))
    else:
        click.echo(
            "Repository updated".format(diff))
def test_create_from_src_failed(mock_rmtree, mock_mkdtemp, mock_add_contents):
    tmp_dir = '/tmp/dir'
    mock_mkdtemp.return_value = tmp_dir

    mock_add_contents.side_effect = Exception()
    repo = Repository('fail_create')
    real_path = repo.fpath
    with pytest.raises(Exception):
        repo.create(source='source')

    mock_rmtree.assert_called_with(tmp_dir)
    assert repo.fpath == real_path
def test_two_repos(tmpdir):
    rp1 = str(tmpdir) + '/r1'
    rp2 = str(tmpdir) + '/r2'
    generate_structure(rp1, 2)
    generate_structure(rp2, 5)
    r1 = Repository('repo1')
    r1.create(rp1)
    r2 = Repository('repo2')
    r2.create(rp2)
    exp = set(['repo1', 'repo2'])
    got = set(Repository.list_repos())
    assert got.intersection(exp) == exp
    assert Repository.contains('repo1/first:0.0.1')
    assert Repository.contains('repo2/first:0.0.1')
    assert Repository.contains('repo1/first:2.0.0') is False
    assert Repository.contains('repo2/first:2.0.0')

    r2.remove()
    exp = set(['repo1'])
    got = set(Repository.list_repos())
    assert got.intersection(exp) == exp
    assert Repository.contains('repo2/first:2.0.0') is False
Exemple #10
0
def repos_path(tmpdir_factory):
    Repository._REPOS_LOCATION = str(tmpdir_factory.mktemp('repositories'))
    repo = Repository('resources')
    repo.create()
Exemple #11
0
def create(name):
    repo = Repository(name)
    repo.create()
    click.echo("Repository created")
Exemple #12
0
def destroy(name):
    repo = Repository(name)
    repo.remove()
def test_create_empty():
    repo = Repository('empty')
    repo.create()
    assert 'empty' in Repository.list_repos()
def test_simple_create(ct):
    r = Repository('test')
    r.create(ct)
    for k, v in r.get_contents().items():
        assert len(v) == 3
def repo_r(request, tmpdir_factory):
    path = generator(request, tmpdir_factory)
    r = Repository('rtest')
    r.create(path)
    return r