示例#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)

        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:]
示例#2
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'clean', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Cleaned.\n' == out
        assert '' == err
示例#3
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([
            'anaconda-project', '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]
示例#4
0
 def check(dirname):
     project_dir_disable_dedicated_env(dirname)
     code = _parse_args_and_run_subcommand([
         'anaconda-project', 'activate', '--directory', dirname,
         '--command', 'nope'
     ])
     assert code == 1
示例#5
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', 'upload', '--directory', dirname])
        assert code == 0

        out, err = capsys.readouterr()
        assert 'Hello\nYay\n' == out
        assert '' == err
示例#6
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(
            ['anaconda-project', 'run', '--directory', dirname, 'nope'])

        assert 1 == result

        out, err = capsys.readouterr()
        assert "" == out
        assert "Failed to execute 'nope'" in err
示例#7
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([
            'anaconda-project', '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]
示例#8
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(['anaconda-project', 'remove-env-spec', '--name', 'foo'])
        assert code == 1

        out, err = capsys.readouterr()
        assert '' == out
        assert "Environment spec foo doesn't exist.\n" == err
    def check_list_empty(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(['anaconda-project', 'list-downloads'])

        assert code == 0
        out, err = capsys.readouterr()
        expected_out = "No downloads found in project.\n"
        assert out == expected_out
示例#10
0
    def check(dirname):
        code = _parse_args_and_run_subcommand(['anaconda-project', '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') in err
示例#11
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['anaconda-project', '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
示例#12
0
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

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

        out, err = capsys.readouterr()
        assert 'ENVIRONMENT_FILE' in err
        assert '' == out
示例#13
0
    def check_empty(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)
        code = _parse_args_and_run_subcommand(
            ['anaconda-project', 'list-services'])
        assert code == 0

        out, err = capsys.readouterr()
        assert err == ''
        assert out == "No services found for project: {}\n".format(dirname)
示例#14
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
示例#15
0
    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
示例#16
0
    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
示例#17
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(['anaconda-project', '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
示例#18
0
    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
    def check(dirname):
        _monkeypatch_pwd(monkeypatch, dirname)

        code = _parse_args_and_run_subcommand(['anaconda-project', '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') in err
示例#20
0
    def check_run_nonexistent(dirname):
        project_dir = os.path.join(dirname, "nope")
        result = _parse_args_and_run_subcommand(
            ['anaconda-project', 'run', '--directory', project_dir])

        assert 1 == result

        out, err = capsys.readouterr()
        assert out == ""
        assert ("Project directory '%s' does not exist." % project_dir) in err
示例#21
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))

        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)

        code = _parse_args_and_run_subcommand(['anaconda-project', '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
示例#23
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'
示例#24
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
示例#25
0
    def check(dirname):
        subdir = os.path.join(dirname, "foo")

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

        assert os.path.isfile(os.path.join(subdir, DEFAULT_PROJECT_FILENAME))
        assert os.path.isdir(subdir)

        out, err = capsys.readouterr()
        assert ("Project configuration is in %s\n" % (os.path.join(subdir, DEFAULT_PROJECT_FILENAME))) == out
        assert '' == err
示例#26
0
    def check(dirname):
        subdir = os.path.join(dirname, "foo")

        code = _parse_args_and_run_subcommand(['anaconda-project', 'init', '--directory', subdir])
        assert code == 1

        assert not os.path.isfile(os.path.join(subdir, DEFAULT_PROJECT_FILENAME))
        assert not os.path.isdir(subdir)

        out, err = capsys.readouterr()
        assert ("Create directory '%s'? " % subdir) == out
        assert ("Project directory '%s' does not exist.\nUnable to load the project.\n" % subdir) == err
示例#27
0
    def check_missing_env(dirname):
        env_name = 'not-there'
        code = _parse_args_and_run_subcommand(['anaconda-project', 'list-packages', '--directory', dirname,
                                               '--env-spec', env_name])

        assert code == 1

        expected_err = "Project doesn't have an environment called '{}'\n".format(env_name)

        out, err = capsys.readouterr()
        assert out == ""
        assert err == expected_err
    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
        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
    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 == 0

        out, err = capsys.readouterr()
        assert ('File downloaded.\n' + 'Added http://localhost:123456 to the project file.\n') == out
        assert '' == err
        return params
    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