Exemplo n.º 1
0
    def check_run_main(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)
        # double hyphen lets us specify "--foo" as a command name
        result = _parse_args_and_run_subcommand([
            'conda-kapsel', 'run', '--directory', dirname, '--', '--foo',
            '--bar'
        ])

        assert 1 == result
        assert 'file' in executed
        assert 'args' in executed
        assert 'env' in executed
        assert executed['file'].endswith(python_exe)
        assert executed['args'][0].endswith(python_exe)
        assert len(executed['args']) == 3
        assert '--version' == executed['args'][1]
        assert '--bar' == executed['args'][2]
Exemplo n.º 2
0
    def check_run_main(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)

        def mock_execvpe(file, args, env):
            assert file == 'nope'
            assert args == ['nope']
            raise OSError("no such file nope")

        monkeypatch.setattr('os.execvpe', mock_execvpe)

        project_dir_disable_dedicated_env(dirname)
        result = _parse_args_and_run_subcommand(['conda-kapsel', 'run', '--directory', dirname, 'nope'])

        assert 1 == result

        out, err = capsys.readouterr()
        assert "" == out
        assert "Failed to execute 'nope'" in err
Exemplo n.º 3
0
    def check(dirname):
        from shutil import rmtree as real_rmtree
        _monkeypatch_pwd(monkeypatch, dirname)

        test_filename = os.path.join(dirname, 'envs', 'foo')

        # only allow mock to have side effect once
        # later, when cleaning up directory, allow removal
        mock_called = []

        def mock_remove(path, ignore_errors=False, onerror=None):
            if path == test_filename and not mock_called:
                mock_called.append(True)
                raise Exception('Error')
            return real_rmtree(path, ignore_errors, onerror)

        monkeypatch.setattr('shutil.rmtree', mock_remove)

        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'remove-env-spec', '--name', 'foo'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert ("Failed to remove environment files in %s: Error.\n" %
                os.path.join(dirname, "envs", "foo")) == err
Exemplo n.º 4
0
    def check_run_main(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)

        def mock_execvpe(file, args, env):
            assert file == 'nope'
            assert args == ['nope']
            raise OSError("no such file nope")

        monkeypatch.setattr('os.execvpe', mock_execvpe)

        project_dir_disable_dedicated_env(dirname)
        result = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'run', '--directory', dirname, 'nope'])

        assert 1 == result

        out, err = capsys.readouterr()
        assert "" == out
        assert "Failed to execute 'nope'" in err
Exemplo n.º 5
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'upload', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Hello\nYay\n' == out
        assert '' == err
Exemplo n.º 6
0
    def check_empty_project(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'list-commands', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert '' == err
        assert ("No commands found for project: {}\n\n".format(dirname)) == out
Exemplo n.º 7
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'clean', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Cleaned.\n' == out
        assert '' == err
Exemplo n.º 8
0
    def start_local_redis(dirname):
        project = project_no_dedicated_env(dirname)
        result = test_redis_provider._prepare_printing_errors(project, environ=minimal_environ())
        assert result

        local_state_file = LocalStateFile.load_for_directory(dirname)
        state = local_state_file.get_service_run_state('REDIS_URL')
        assert 'port' in state
        port = state['port']

        assert dict(REDIS_URL=("redis://localhost:" + str(port)),
                    PROJECT_DIR=project.directory_path) == strip_environ(result.environ)
        assert len(can_connect_args_list) >= 2

        pidfile = os.path.join(dirname, "services/REDIS_URL/redis.pid")
        logfile = os.path.join(dirname, "services/REDIS_URL/redis.log")
        assert os.path.exists(pidfile)
        assert os.path.exists(logfile)

        assert real_can_connect_to_socket(host='localhost', port=port)

        # now clean it up
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'remove-service', 'REDIS_URL', '--directory', dirname])
        assert code == 0

        assert not os.path.exists(pidfile)
        assert not os.path.exists(os.path.join(dirname, "services"))
        assert not real_can_connect_to_socket(host='localhost', port=port)

        local_state_file.load()
        assert dict() == local_state_file.get_service_run_state("REDIS_URL")
Exemplo n.º 9
0
    def check_run_main(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)
        result = _parse_args_and_run_subcommand(['conda-kapsel', '--verbose', 'run', '--directory', dirname, 'default'])

        assert 1 == result
        assert 'file' in executed
        assert 'args' in executed
        assert 'env' in executed
        assert executed['file'].endswith(python_exe)
        assert executed['args'][0].endswith(python_exe)
        assert len(executed['args']) == 2
        assert '--version' == executed['args'][1]

        # conda info is cached so may not be here depending on
        # which other tests run
        log_lines = ["$ conda info --json", "$ %s --version" % executed['args'][0]]
        log_lines_without_conda_info = log_lines[1:]

        def nl(lines):
            return ("\n".join(lines) + "\n")

        out, err = capsys.readouterr()
        assert "" == out
        assert nl(log_lines) == err or nl(log_lines_without_conda_info) == err
Exemplo n.º 10
0
    def check_run_main(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)

        for n, i in enumerate(command_line):
            if i == '<DIRNAME>':
                command_line[n] = dirname

        result = _parse_args_and_run_subcommand(command_line)

        assert 1 == result
        assert 'file' in executed
        assert 'args' in executed
        assert 'env' in executed
        file_assertion(executed['file'])

        out, err = capsys.readouterr()
        assert "" == out
        assert "" == err

        return executed['args'][1:]
Exemplo n.º 11
0
    def check_run_main(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)
        result = _parse_args_and_run_subcommand([
            'conda-kapsel', 'run', '--directory', dirname, 'default', 'foo',
            '$PATH', '--something'
        ])

        assert 1 == result
        assert 'file' in executed
        assert 'args' in executed
        assert 'env' in executed
        assert executed['file'].endswith(python_exe)
        assert executed['args'][0].endswith(python_exe)
        assert len(executed['args']) == 5
        assert '--version' == executed['args'][1]
        assert 'foo' == executed['args'][2]
        assert '$PATH' == executed['args'][3]
        assert '--something' == executed['args'][4]
Exemplo n.º 12
0
    def check_run_main(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)
        result = _parse_args_and_run_subcommand(['conda-kapsel', 'run', '--directory', dirname, 'default', 'foo',
                                                 '$PATH', '--something'])

        assert 1 == result
        assert 'file' in executed
        assert 'args' in executed
        assert 'env' in executed
        assert executed['file'].endswith(python_exe)
        assert executed['args'][0].endswith(python_exe)
        assert len(executed['args']) == 5
        assert '--version' == executed['args'][1]
        assert 'foo' == executed['args'][2]
        assert '$PATH' == executed['args'][3]
        assert '--something' == executed['args'][4]
Exemplo n.º 13
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'remove-command', 'test', '--directory', dirname])
        assert code == 1

        out, err = capsys.readouterr()
        assert err == "Command: 'test' not found in project file.\n"
        assert out == ''
Exemplo n.º 14
0
    def check(dirname):
        project_dir_disable_dedicated_env(dirname)

        def mock_is_interactive():
            return True

        monkeypatch.setattr(
            'conda_kapsel.commands.console_utils.stdin_is_interactive',
            mock_is_interactive)

        inputs = ["    ", "foo", "bar"]

        def mock_console_input(prompt, encrypted):
            return inputs.pop(0)

        monkeypatch.setattr(
            'conda_kapsel.commands.console_utils.console_input',
            mock_console_input)

        res = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'prepare', '--directory', dirname])
        assert res == 0

        local_state = LocalStateFile.load_for_directory(dirname)
        assert local_state.get_value(['variables', 'FOO']) == 'foo'
        assert local_state.get_value(['variables', 'BAR']) == 'bar'
Exemplo n.º 15
0
    def check(dirname):
        project_dir_disable_dedicated_env(dirname)

        def mock_is_interactive():
            return True

        monkeypatch.setattr(
            'conda_kapsel.commands.console_utils.stdin_is_interactive',
            mock_is_interactive)

        inputs = ["foo", "bar"]

        def mock_console_input(prompt, encrypted):
            return inputs.pop(0)

        monkeypatch.setattr(
            'conda_kapsel.commands.console_utils.console_input',
            mock_console_input)

        def mock_set_variables(project, vars_and_values):
            return SimpleStatus(success=False,
                                description="Set variables FAIL")

        monkeypatch.setattr('conda_kapsel.project_ops.set_variables',
                            mock_set_variables)

        res = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'prepare', '--directory', dirname])
        assert res == 1

        out, err = capsys.readouterr()

        assert err == _foo_and_bar_missing + "Set variables FAIL\n"
Exemplo n.º 16
0
    def check(dirname):
        project_dir_disable_dedicated_env(dirname)

        def mock_is_interactive():
            return True

        monkeypatch.setattr(
            'conda_kapsel.commands.console_utils.stdin_is_interactive',
            mock_is_interactive)

        def mock_console_input(prompt, encrypted):
            raise Exception("Should not have called this, prompt " + prompt)

        monkeypatch.setattr(
            'conda_kapsel.commands.console_utils.console_input',
            mock_console_input)

        res = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'prepare', '--directory', dirname])
        assert res == 1

        out, err = capsys.readouterr()

        assert out == ""
        assert err == (
            "%s: env_specs should be a dictionary from environment name to environment attributes, not 42\n"
            "Unable to load the project.\n") % os.path.join(
                dirname, "kapsel.yml")
Exemplo n.º 17
0
    def check_run_main(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)

        for n, i in enumerate(command_line):
            if i == '<DIRNAME>':
                command_line[n] = dirname

        result = _parse_args_and_run_subcommand(command_line)

        assert 1 == result
        assert 'file' in executed
        assert 'args' in executed
        assert 'env' in executed
        file_assertion(executed['file'])

        out, err = capsys.readouterr()
        assert "" == out
        assert "" == err

        return executed['args'][1:]
Exemplo n.º 18
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'upload', '--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') == err
Exemplo n.º 19
0
    def check_empty_project(dirname):
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'list-commands', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert '' == err
        assert ("No commands found for project: {}\n\n".format(dirname)) == out
Exemplo n.º 20
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'remove-command', 'test', '--directory', dirname])
        assert code == 1

        out, err = capsys.readouterr()
        assert err == "Command: 'test' not found in project file.\n"
        assert out == ''
Exemplo n.º 21
0
    def check_list_empty(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'list-downloads'])

        assert code == 0
        out, err = capsys.readouterr()
        expected_out = "No downloads found in project.\n"
        assert out == expected_out
Exemplo n.º 22
0
    def check_empty(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'list-services'])
        assert code == 0

        out, err = capsys.readouterr()
        assert err == ''
        assert out == "No services found for project: {}\n".format(dirname)
Exemplo n.º 23
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'remove-env-spec', '--name', 'foo'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert "Environment spec foo doesn't exist.\n" == err
Exemplo n.º 24
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'upload', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Hello\nYay\n' == out
        assert '' == err
Exemplo n.º 25
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'clean', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Cleaned.\n' == out
        assert '' == err
Exemplo n.º 26
0
    def check_empty(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'list-services'])
        assert code == 0

        out, err = capsys.readouterr()
        assert err == ''
        assert out == "No services found for project: {}\n".format(dirname)
Exemplo n.º 27
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'remove-env-spec', '--name', 'foo'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert "Environment spec foo doesn't exist.\n" == err
Exemplo n.º 28
0
    def check(dirname):
        archivefile = os.path.join(dirname, "foo.zip")
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'archive', '--directory', dirname, archivefile])
        assert code == 0

        out, err = capsys.readouterr()
        assert ('  added %s\nCreated project archive %s\n' % (os.path.join(
            os.path.basename(dirname), "kapsel.yml"), archivefile)) == out
        assert '' == err
Exemplo n.º 29
0
def test_main_help(capsys):
    code = _parse_args_and_run_subcommand(['project', '--help'])

    out, err = capsys.readouterr()

    assert "" == err
    assert expected_usage_msg == out

    assert 0 == code
Exemplo n.º 30
0
    def check_run_nonexistent(dirname):
        project_dir = os.path.join(dirname, "nope")
        result = _parse_args_and_run_subcommand(['conda-kapsel', 'run', '--directory', project_dir])

        assert 1 == result

        out, err = capsys.readouterr()
        assert out == ""
        assert ("Project directory '%s' does not exist." % project_dir) in err
Exemplo n.º 31
0
    def check(dirname):

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'unset-variable', '--directory', dirname, 'FOO'])
        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') == err
Exemplo n.º 32
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'export-env-spec', '--name', 'foo'])
        assert code == 2

        out, err = capsys.readouterr()
        assert 'ENVIRONMENT_FILE' in err
        assert '' == out
Exemplo n.º 33
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'remove-env-spec', '--name', 'foo'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert "At least one environment spec is required; 'foo' is the only one left.\n" == err
Exemplo n.º 34
0
def test_main_help(capsys):
    code = _parse_args_and_run_subcommand(['project', '--help'])

    out, err = capsys.readouterr()

    assert "" == err
    assert expected_usage_msg == out

    assert 0 == code
Exemplo n.º 35
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        exported = os.path.join(dirname, "exported.yml")
        code = _parse_args_and_run_subcommand(['conda-kapsel', 'export-env-spec', '--name', 'foo', exported])
        assert code == 0

        out, err = capsys.readouterr()
        assert '' == err
        assert ('Exported environment spec foo to %s.\n' % exported) == out
Exemplo n.º 36
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        _monkeypatch_add_service(monkeypatch, SimpleStatus(success=False, description='Service add FAIL.'))

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'add-service', 'redis'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert 'Service add FAIL.\n' == err
Exemplo n.º 37
0
    def check_run_nonexistent(dirname):
        project_dir = os.path.join(dirname, "nope")
        result = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'run', '--directory', project_dir])

        assert 1 == result

        out, err = capsys.readouterr()
        assert out == ""
        assert ("Project directory '%s' does not exist." % project_dir) in err
Exemplo n.º 38
0
    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') == err
Exemplo n.º 39
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'remove-service', 'TEST'])
        assert code == 1

        out, err = capsys.readouterr()

        assert "Service 'TEST' not found in the project file.\n" == err
        assert '' == out
Exemplo n.º 40
0
    def check(dirname):
        archivefile = os.path.join(dirname, "foo.zip")
        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'archive', '--directory', dirname, archivefile])
        assert code == 0

        out, err = capsys.readouterr()
        assert ('  added %s\nCreated project archive %s\n' % (os.path.join(
            os.path.basename(dirname), "kapsel.yml"), archivefile)) == out
        assert '' == err
Exemplo n.º 41
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'remove-env-spec', '--name', 'foo'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert "At least one environment spec is required; 'foo' is the only one left.\n" == err
Exemplo n.º 42
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', '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" % os.path.join(
            dirname, DEFAULT_PROJECT_FILENAME)) + "Unable to load the project.\n") == err
Exemplo n.º 43
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', '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
Exemplo n.º 44
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'list-downloads'])
        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') == err
Exemplo n.º 45
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        _monkeypatch_add_env_spec(monkeypatch, SimpleStatus(success=True, description='Environment looks good.'))

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'add-env-spec', '--name', 'foo'])
        assert code == 0

        out, err = capsys.readouterr()
        assert ('Environment looks good.\n' + 'Added environment foo to the project file.\n') == out
        assert '' == err
Exemplo n.º 46
0
def test_unarchive_command_error(capsys, monkeypatch):
    def mock_unarchive(filename, project_dir, parent_dir=None):
        return SimpleStatus(success=False, description="DESC", logs=['a', 'b'], errors=['c', 'd'])

    monkeypatch.setattr('conda_kapsel.project_ops.unarchive', mock_unarchive)
    code = _parse_args_and_run_subcommand(['conda-kapsel', 'unarchive', 'foo.tar.gz', 'bar'])
    assert code == 1

    out, err = capsys.readouterr()
    assert '' == out
    assert 'a\nb\nc\nd\nDESC\n' == err
Exemplo n.º 47
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'init'])
        assert code == 0

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

        out, err = capsys.readouterr()
        assert ("Project configuration is in %s\n" % (os.path.join(dirname, DEFAULT_PROJECT_FILENAME))) == out
        assert '' == err
Exemplo n.º 48
0
    def check(dirname):
        if append_dir:
            command.extend(['--directory', 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') == err
Exemplo n.º 49
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', 'remove-service', 'TEST'])
        assert code == 1

        out, err = capsys.readouterr()

        assert "Service 'TEST' not found in the project file.\n" == err
        assert '' == out
Exemplo n.º 50
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

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

        out, err = capsys.readouterr()
        assert ("Download requirement: TEST_FILE not found.\n") == err
        assert '' == out
Exemplo n.º 51
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', '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
Exemplo n.º 52
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['conda-kapsel', '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'
Exemplo n.º 53
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'init'])
        assert code == 0

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

        out, err = capsys.readouterr()
        assert ("Project configuration is in %s\n" %
                (os.path.join(dirname, DEFAULT_PROJECT_FILENAME))) == out
        assert '' == err
Exemplo n.º 54
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(
            ['conda-kapsel', '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
Exemplo n.º 55
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['conda-kapsel', 'remove-download', 'TEST_FILE'])
        project = Project(dirname)
        assert not project.downloads
        assert code == 0

        out, err = capsys.readouterr()
        filename = os.path.join(dirname, 'foo')
        assert ("Removed downloaded file %s.\nRemoved TEST_FILE from the project file.\n" % filename) == out
        assert '' == err
Exemplo n.º 56
0
def test_main_bad_subcommand(capsys):
    code = _parse_args_and_run_subcommand(['project', 'foo'])

    out, err = capsys.readouterr()
    expected_error_msg = ("usage: conda-kapsel [-h] [-v]\n"
                          "                    %s\n"
                          "                    ...\nconda-kapsel: 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
Exemplo n.º 57
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: conda-kapsel [-h] [-v]\n'
                          '                    %s\n'
                          '                    ...\n') % all_subcommands_in_curlies
    assert expected_error_msg == err
Exemplo n.º 58
0
    def check(dirname):
        code = _parse_args_and_run_subcommand([
            'conda-kapsel', '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'