コード例 #1
0
ファイル: datasets.py プロジェクト: cyberhck/renku-python
def create_dataset_view(user, cache):
    """Create a new dataset in a project."""
    ctx = DatasetCreateRequest().load(request.json)
    project = cache.get_project(user, ctx['project_id'])

    project_path = make_project_path(user, project)
    if not project_path:
        return jsonify(
            error={
                'code': INVALID_PARAMS_ERROR_CODE,
                'message': 'invalid project_id argument',
            })

    with chdir(project_path):
        create_dataset(
            ctx['dataset_name'],
            commit_message=ctx['commit_message'],
            creators=ctx.get('creators'),
            description=ctx.get('description'),
        )

    if not repo_sync(project_path):
        return jsonify(
            error={
                'code': INTERNAL_FAILURE_ERROR_CODE,
                'reason': 'push to remote failed silently - try again'
            })

    return jsonify(DatasetCreateResponseRPC().load(
        {'result': DatasetCreateResponse().load(ctx, unknown=EXCLUDE)}))
コード例 #2
0
ファイル: test_dataset.py プロジェクト: ltalirz/renku-python
def test_unlink_default(directory_tree, client):
    """Test unlink default behaviour."""
    with chdir(client.path):
        create_dataset("dataset")
        add_file([directory_tree.join("dir2").strpath], "dataset")

    with pytest.raises(ParameterError):
        file_unlink("dataset", (), ())
コード例 #3
0
ファイル: test_dataset.py プロジェクト: ltalirz/renku-python
def test_list_datasets_default(project):
    """Test a default dataset listing."""
    create_dataset("ds1", title="", description="", creators=[], commit_message="my awesome dataset")

    datasets = list_datasets()

    assert isinstance(datasets, list)
    assert "ds1" in [dataset.title for dataset in datasets]
コード例 #4
0
def test_create_dataset_custom_message(project):
    """Test create dataset custom message."""
    create_dataset('ds1',
                   title='',
                   description='',
                   creators=[],
                   commit_message='my awesome dataset')

    last_commit = Repo('.').head.commit
    assert 'my awesome dataset' == last_commit.message
コード例 #5
0
ファイル: test_dataset.py プロジェクト: ltalirz/renku-python
def test_list_files_default(project, tmpdir):
    """Test a default file listing."""
    create_dataset("ds1", title="", description="", creators=[], commit_message="my awesome dataset")
    data_file = tmpdir / Path("somefile")
    data_file.write_text("1,2,3", encoding="utf-8")

    add_file([str(data_file)], "ds1")
    files = list_files(datasets=["ds1"])

    assert isinstance(files, list)
    assert "somefile" in [file_.name for file_ in files]
コード例 #6
0
def test_list_datasets_default(project):
    """Test a default dataset listing."""
    create_dataset('ds1',
                   title='',
                   description='',
                   creators=[],
                   commit_message='my awesome dataset')

    datasets = list_datasets()

    assert isinstance(datasets, list)
    assert 'ds1' in [ds.name for ds in datasets]
コード例 #7
0
def test_latest_version(project):
    """Test returning the latest version of `SoftwareAgent`."""
    from renku import __version__

    create_dataset(
        "ds1",
        title="",
        description="",
        creators=[],
    )

    agent_version = LocalClient(project).latest_agent
    assert __version__ == agent_version
コード例 #8
0
def test_list_files_default(project, tmpdir):
    """Test a default file listing."""
    create_dataset('ds1',
                   title='',
                   description='',
                   creators=[],
                   commit_message='my awesome dataset')
    data_file = tmpdir / Path('somefile')
    data_file.write_text('1,2,3', encoding='utf-8')

    add_file([str(data_file)], 'ds1')
    files = list_files(datasets=['ds1'])

    assert isinstance(files, list)
    assert 'somefile' in [ds.name for ds in files]
コード例 #9
0
ファイル: dataset.py プロジェクト: ltalirz/renku-python
def create(name, title, description, creators, keyword):
    """Create an empty dataset in the current repo."""
    creators = creators or ()

    new_dataset = create_dataset(name=name, title=title, description=description, creators=creators, keywords=keyword,)

    click.echo(f'Use the name "{new_dataset.name}" to refer to this dataset.')
    click.secho("OK", fg="green")
コード例 #10
0
def create_dataset_view(user, cache):
    """Create a new dataset in a project."""
    ctx = DatasetCreateRequest().load(request.json)
    project = cache.get_project(cache.ensure_user(user), ctx['project_id'])

    with chdir(project.abs_path):
        create_dataset(ctx['short_name'],
                       title=ctx.get('name'),
                       creators=ctx.get('creator'),
                       description=ctx.get('description'),
                       keywords=ctx.get('keywords'),
                       commit_message=ctx['commit_message'])

    try:
        _, ctx['remote_branch'] = repo_sync(Repo(project.abs_path),
                                            remote='origin')
    except GitCommandError:
        return error_response(INTERNAL_FAILURE_ERROR_CODE,
                              'push to remote failed silently - try again')

    return result_response(DatasetCreateResponseRPC(), ctx)
コード例 #11
0
def create_dataset_view(user, cache):
    """Create a new dataset in a project."""
    ctx = DatasetCreateRequest().load(request.json)
    project = cache.get_project(cache.ensure_user(user), ctx['project_id'])

    if not project.abs_path.exists():
        return error_response(INVALID_PARAMS_ERROR_CODE,
                              'invalid project_id argument')

    with chdir(project.abs_path):
        create_dataset(
            ctx['dataset_name'],
            commit_message=ctx['commit_message'],
            creators=ctx.get('creators'),
            description=ctx.get('description'),
        )

    if not repo_sync(project.abs_path):
        return error_response(INTERNAL_FAILURE_ERROR_CODE,
                              'push to remote failed silently - try again')

    return result_response(DatasetCreateResponseRPC(), ctx)
コード例 #12
0
def test_latest_version_user_commits(project):
    """Test retrieval of `SoftwareAgent` with latest non-renku command."""
    from git import Repo

    from renku import __version__

    create_dataset(
        "ds1",
        title="",
        description="",
        creators=[],
    )

    myfile = Path("myfile")
    myfile.write_text("123")

    repo = Repo(project)
    repo.index.add([str(myfile)])
    repo.index.commit("added myfile")

    agent_version = LocalClient(project).latest_agent
    assert __version__ == agent_version
コード例 #13
0
ファイル: datasets.py プロジェクト: ltalirz/renku-python
def create_dataset_view(user, cache):
    """Create a new dataset in a project."""
    ctx = DatasetCreateRequest().load(request.json)
    project = cache.get_project(cache.ensure_user(user), ctx["project_id"])

    with chdir(project.abs_path):
        create_dataset(
            ctx["name"],
            title=ctx.get("title"),
            creators=ctx.get("creators"),
            description=ctx.get("description"),
            keywords=ctx.get("keywords"),
            commit_message=ctx["commit_message"],
        )

    try:
        _, ctx["remote_branch"] = repo_sync(Repo(project.abs_path),
                                            remote="origin")
    except GitCommandError:
        return error_response(INTERNAL_FAILURE_ERROR_CODE, "repo sync failed")

    return result_response(DatasetCreateResponseRPC(), ctx)
コード例 #14
0
def create(short_name, title, description, creator):
    """Create an empty dataset in the current repo."""
    creators = creator or ()

    new_dataset = create_dataset(
        short_name=short_name,
        title=title,
        description=description,
        creators=creators
    )

    click.echo(
        'Use the name "{0}" to refer to this dataset.'.format(
            new_dataset.short_name
        )
    )
    click.secho('OK', fg='green')
コード例 #15
0
ファイル: test_dataset.py プロジェクト: ltalirz/renku-python
def test_create_dataset_custom_message(project):
    """Test create dataset custom message."""
    create_dataset("ds1", title="", description="", creators=[], commit_message="my awesome dataset")

    last_commit = Repo(".").head.commit
    assert "my awesome dataset" == last_commit.message