示例#1
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-service', 'TEST'])
        assert code == 1

        out, err = capsys.readouterr()

        assert "Service 'TEST' not found in the project file.\n" == err
        assert '' == out
    def check(dirname):
        code = _parse_args_and_run_subcommand([
            'anaconda-project', 'remove-command', 'test', '--directory',
            dirname
        ])
        assert code == 1

        out, err = capsys.readouterr()
        assert err == "Command: 'test' not found in project file.\n"
        assert out == ''
    def check(dirname):
        archivefile = os.path.join(dirname, "foo.zip")
        code = _parse_args_and_run_subcommand(['anaconda-project', 'archive', '--directory', dirname, archivefile])
        assert code == 1

        out, err = capsys.readouterr()
        assert "Project file 'anaconda-project.yml' does not exist.\nUnable to load the project.\n" == err
        assert '' == out

        assert not os.path.exists(os.path.join(dirname, DEFAULT_PROJECT_FILENAME))
        assert not os.path.exists(archivefile)
def test_main_realpath_directory(monkeypatch):
    def mock_subcommand_main(args):
        return args

    monkeypatch.setattr(
        'anaconda_project.internal.cli.command_commands.main_list',
        mock_subcommand_main)
    dirname = 'C:\\UsErS\\PRojecT'
    args = _parse_args_and_run_subcommand(
        ['anaconda-project', 'list-commands', '--directory', dirname])
    assert args.directory == os.path.realpath(dirname)
示例#5
0
    def check(dirname):
        code = _parse_args_and_run_subcommand([
            'anaconda-project', 'dockerize', '--', '-e', 'CMD=other', '--run'
        ])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Yay\n' == out
        assert '' == err

        assert params['kwargs']['build_args'] == ['-e', 'CMD=other', '--run']
示例#6
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--directory', dirname, '--user=foo',
                                               '--token=bar'])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Hello\nYay\n' == out
        assert '' == err

        assert params['kwargs']['token'] == 'bar'
        assert params['kwargs']['username'] == 'foo'
示例#7
0
    def check(dirname):
        code = _parse_args_and_run_subcommand([
            'anaconda-project', 'dockerize', '--builder-image', 'custom:latest'
        ])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Yay\n' == out
        assert '' == err

        assert params['kwargs']['builder_image'] == 'custom:latest'
示例#8
0
    def check(dirname):

        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'list-variables', '--directory', dirname])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert ('variables section contains wrong value type 42,' +
                ' should be dict or list of requirements\n' +
                'Unable to load the project.\n') in err
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(command)
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert ('variables section contains wrong value type 42,' +
                ' should be dict or list of requirements\n' +
                'Unable to load the project.\n') in err
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'add-command', '--directory', dirname, '--env-spec',
                                               'foo', '--type', 'notebook', 'test', 'file.ipynb'])
        assert code == 0

        project = Project(dirname)

        command = project.project_file.get_value(['commands', 'test'])
        assert command['notebook'] == 'file.ipynb'
        assert command['env_spec'] == 'foo'
        assert len(command.keys()) == 2
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        exported = os.path.join(dirname, "exported.yml")
        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'export-env-spec', exported])
        assert code == 0

        out, err = capsys.readouterr()
        assert '' == err
        assert ('Exported environment spec foo to %s.\n' % exported) == out
示例#12
0
    def check(dirname):
        code = _parse_args_and_run_subcommand([
            'anaconda-project', 'download', 'fake_user/fake_project',
            '--parent_dir', '.'
        ])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Yay\n' == out
        assert '' == err

        assert params['kwargs']['parent_dir'] == '.'
示例#13
0
def test_main_bad_subcommand(capsys):
    code = _parse_args_and_run_subcommand(['project', 'foo'])

    out, err = capsys.readouterr()
    expected_error_msg = ("usage: anaconda-project [-h] [-v] [--verbose]\n"
                          "                        %s\n"
                          "                        ...\nanaconda-project: error: invalid choice: 'foo' "
                          "(choose from %s)\n") % (all_subcommands_in_curlies, all_subcommands_comma_space)
    assert expected_error_msg == err
    assert "" == out

    assert 2 == code
示例#14
0
def test_main_no_subcommand(capsys):
    code = _parse_args_and_run_subcommand(['project'])

    assert 2 == code

    out, err = capsys.readouterr()
    assert "" == out
    expected_error_msg = ('Must specify a subcommand.\n'
                          'usage: anaconda-project [-h] [-v] [--verbose]\n'
                          '                        %s\n'
                          '                        ...\n') % all_subcommands_in_curlies
    assert expected_error_msg == err
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-command', 'test', '--directory', dirname])
        assert code == 0

        project = Project(dirname)

        command = project.project_file.get_value(['commands', 'test'])
        assert command is None

        out, err = capsys.readouterr()
        assert out == "Removed the command 'test' from the project.\n"
        assert err == ''
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'add-command', '--directory', dirname,
                                               '--supports-http-options', '--type', 'notebook', 'test', 'file.ipynb'])
        assert code == 0

        project = Project(dirname)

        command = project.project_file.get_value(['commands', 'test'])
        assert command['notebook'] == 'file.ipynb'
        assert command['env_spec'] == 'default'
        assert command['supports_http_options'] is True
        assert len(command.keys()) == 3
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'remove-env-spec', '--name', 'foo'])
        assert code == 0

        out, err = capsys.readouterr()
        assert '' == err
        assert (
            'Deleted environment files in %s.\nRemoved environment foo from the project file.\n'
            % os.path.join(dirname, "envs", "foo")) == out
示例#18
0
    def check(dirname):
        code = _parse_args_and_run_subcommand([
            'anaconda-project', 'upload', '--directory', dirname, '--suffix',
            '.zip'
        ])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Hello\nYay\n' == out
        assert '' == err

        assert params['kwargs']['suffix'] == '.zip'
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'remove-download', 'TEST_FILE'])
        project = Project(dirname)
        assert not project.downloads(project.default_env_spec_name)
        assert code == 1

        out, err = capsys.readouterr()
        assert ("Download requirement: TEST_FILE not found.\n") == err
        assert '' == out
    def check(dirname):
        project_dir_disable_dedicated_env(dirname)
        result = _parse_args_and_run_subcommand([
            'anaconda-project', 'prepare', '--directory', dirname,
            '--command=with_bar'
        ])
        assert result == 1

        out, err = capsys.readouterr()
        assert 'nonexistent_bar' in err
        assert 'nonexistent_foo' not in err

        result = _parse_args_and_run_subcommand([
            'anaconda-project', 'prepare', '--directory', dirname,
            '--command=with_foo'
        ])
        assert result == 1

        out, err = capsys.readouterr()
        assert 'nonexistent_foo' in err
        assert 'nonexistent_bar' not in err
示例#21
0
def test_set_variable_command_bad_arg(monkeypatch, capsys):

    params = _monkeypatch_set_variables(monkeypatch)

    res = _parse_args_and_run_subcommand(
        ['anaconda-project', 'set-variable', 'foo=bar', 'baz'])
    assert res == 1
    out, err = capsys.readouterr()
    assert "Error: argument '{}' should be in NAME=value format".format(
        'baz') in out

    assert len(params) == 0
示例#22
0
    def main_redis_url(dirname):
        from os.path import abspath as real_abspath

        def mock_abspath(path):
            if path == ".":
                return dirname
            else:
                return real_abspath(path)

        monkeypatch.setattr('os.path.abspath', mock_abspath)
        project_dir_disable_dedicated_env(dirname)
        code = _parse_args_and_run_subcommand(['anaconda-project', 'activate'])
        assert code == 0
示例#23
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        local_state = LocalStateFile.load_for_directory(dirname)
        local_state.set_service_run_state('TEST', {'shutdown_commands': [_echo_commandline + ['"shutting down TEST"']]})
        local_state.save()

        code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-service', 'redis'])
        assert code == 0

        out, err = capsys.readouterr()
        assert '' == err
        expected_out = ("Removed service 'redis' from the project file.\n")
        assert expected_out == out
    def check_list_empty(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'list-variables', '--directory', dirname])

        assert code == 0
        out, err = capsys.readouterr()
        expected_out = """
Variables for project: {dirname}

Name{space}Description
===={space}===========
{varname}  The project needs a Conda environment containing all required packages.
""".format(dirname=dirname, varname=PLATFORM_ENV_VAR, space="".ljust(len(PLATFORM_ENV_VAR) - 2)).strip() + "\n"
        assert out == expected_out
def test_add_two_variables_with_default(monkeypatch, capsys):

    params = _monkeypatch_add_variables(monkeypatch)

    res = _parse_args_and_run_subcommand(['anaconda-project', 'add-variable', '--default', 'bar', 'foo', 'hello'])
    assert res == 1
    assert [] == params

    out, err = capsys.readouterr()
    assert out == ''
    expected_err = ("It isn't clear which variable your --default option goes with; " +
                    "add one variable at a time if using --default.\n")
    assert err == expected_err
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        _monkeypatch_add_service(
            monkeypatch,
            SimpleStatus(success=False, description='Service add FAIL.'))

        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'add-service', 'redis'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert 'Service add FAIL.\n' == err
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'remove-env-spec', '--name', 'bar'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert ((
            "%s: env_spec 'bar' for command 'foo' does not appear in the env_specs section\n"
            % DEFAULT_PROJECT_FILENAME) +
                "Unable to load the project.\n") == err
    def check_prepare_choose_environment_does_not_exist(dirname):
        project_dir_disable_dedicated_env(dirname)
        result = _parse_args_and_run_subcommand([
            'anaconda-project', 'prepare', '--directory', dirname,
            '--env-spec=nope'
        ])
        assert result == 1

        expected_error = (
            "Environment name 'nope' is not in %s, these names were found: bar, foo"
            % os.path.join(dirname, DEFAULT_PROJECT_FILENAME))
        out, err = capsys.readouterr()
        assert out == ""
        assert expected_error in err
示例#29
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['anaconda-project', 'init'])
        assert code == 0

        assert os.path.isfile(os.path.join(dirname, DEFAULT_PROJECT_FILENAME))
        assert not os.path.isfile(
            os.path.join(dirname, DEFAULT_PROJECT_LOCK_FILENAME))

        out, err = capsys.readouterr()
        assert ("Project configuration is in %s\n" %
                (os.path.join(dirname, DEFAULT_PROJECT_FILENAME))) == out
        assert '' == err
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        params = _monkeypatch_add_download(
            monkeypatch,
            FakeRequirementStatus(success=True,
                                  status_description='File downloaded.'))

        code = _parse_args_and_run_subcommand(command)
        assert code == 1

        out, err = capsys.readouterr()
        assert "Error: mutually dependant parameters: --hash-algorithm and --hash-value.\n" == err
        assert '' == out
        return params