Beispiel #1
0
def test_envs():
    with temp_chdir():
        runner = CliRunner()
        env_name1, env_name2 = get_new_venv_name(count=2)
        venv_dir1 = os.path.join(VENV_DIR, env_name1)
        venv_dir2 = os.path.join(VENV_DIR, env_name2)
        create_venv(venv_dir1)

        try:
            result = runner.invoke(hatch, [
                'init', '-ne', '--basic', 'ok', '-e', '{}/{}'.format(
                    env_name1, env_name2)
            ])
            wait_until(is_venv, venv_dir2)
            with venv(venv_dir1):
                assert 'ok' in get_editable_packages()
            with venv(venv_dir2):
                assert 'ok' in get_editable_packages()
        finally:
            remove_path(venv_dir1)
            remove_path(venv_dir2)

        assert result.exit_code == 0
        assert 'Creating virtual env `{}`... complete!'.format(
            env_name1) not in result.output
        assert 'Creating virtual env `{}`... complete!'.format(
            env_name2) in result.output
        assert 'Installing locally in virtual env `{}`... complete!'.format(
            env_name1) in result.output
        assert 'Installing locally in virtual env `{}`... complete!'.format(
            env_name2) in result.output
Beispiel #2
0
def test_env_multiple():
    with temp_chdir():
        runner = CliRunner()

        env_name1, env_name2 = get_new_venv_name(count=2)
        venv_dir1 = os.path.join(get_venv_dir(), env_name1)
        venv_dir2 = os.path.join(get_venv_dir(), env_name2)

        try:
            runner.invoke(hatch, ['env', env_name1])
            wait_until(is_venv, venv_dir1)
            assert os.path.exists(venv_dir1)
            runner.invoke(hatch, ['env', env_name2])
            wait_until(is_venv, venv_dir2)
            assert os.path.exists(venv_dir2)

            result = runner.invoke(hatch, ['shed', '-e', '{}/{}'.format(env_name1, env_name2)])
            assert not os.path.exists(venv_dir1)
            assert not os.path.exists(venv_dir2)
        finally:
            remove_path(venv_dir1)
            remove_path(venv_dir2)

        assert result.exit_code == 0
        assert 'Successfully removed virtual env named `{}`.'.format(env_name1) in result.output
        assert 'Successfully removed virtual env named `{}`.'.format(env_name2) in result.output
Beispiel #3
0
def test_restore_success():
    with temp_chdir() as d:
        runner = CliRunner()

        env_name, fake_name = get_new_venv_name(count=2)
        venv_origin = os.path.join(d, env_name)
        venv_dir = os.path.join(get_venv_dir(), env_name)
        fake_venv = os.path.join(get_venv_dir(), fake_name)

        create_venv(venv_origin)
        copy_path(venv_origin, get_venv_dir())
        os.makedirs(fake_venv)

        try:
            runner.invoke(hatch, ['env', env_name])
            wait_until(is_venv, venv_dir)

            result = runner.invoke(hatch, ['env', '-r'])
            with venv(venv_dir):
                install_packages(['six'])
                installed_packages = get_installed_packages()
        finally:
            remove_path(venv_dir)
            remove_path(fake_venv)

        assert result.exit_code == 0
        assert 'Successfully restored all available virtual envs.' in result.output
        assert 'six' in installed_packages
Beispiel #4
0
def test_clone_success():
    with temp_chdir():
        runner = CliRunner()

        origin, clone = get_new_venv_name(count=2)
        origin_dir = os.path.join(get_venv_dir(), origin)
        clone_dir = os.path.join(get_venv_dir(), clone)

        try:
            runner.invoke(hatch, ['env', origin])
            wait_until(is_venv, origin_dir)
            with venv(origin_dir):
                install_packages(['requests'])

            result = runner.invoke(hatch, ['env', '-c', origin, clone])
            wait_until(is_venv, clone_dir)
            with venv(clone_dir):
                install_packages(['six'])
                installed_packages = get_installed_packages()
        finally:
            remove_path(origin_dir)
            remove_path(clone_dir)

        assert result.exit_code == 0
        assert 'Successfully cloned virtual env `{}` from `{}` to `{}`.'.format(
            clone, origin, clone_dir) in result.output
        assert 'requests' in installed_packages
        assert 'six' in installed_packages
Beispiel #5
0
def test_get_new_venv_name_multiple():
    current_names = os.listdir(get_venv_dir()) if os.path.exists(
        get_venv_dir()) else []
    new_names = get_new_venv_name(2)
    assert len(new_names) == 2
    assert new_names[0] not in current_names
    assert new_names[1] not in current_names
Beispiel #6
0
def test_pyname_and_env():
    with temp_chdir() as d:
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(get_venv_dir(), env_name)

        try:
            runner.invoke(hatch, ['env', env_name])
            wait_until(is_venv, venv_dir)
            assert os.path.exists(venv_dir)

            with temp_move_path(SETTINGS_FILE, d):
                settings = copy_default_settings()
                settings['pypaths']['pyname'] = 'pypath'
                save_settings(settings)
                result = runner.invoke(hatch, ['shed', '-p', 'pyname', '-e', env_name])
                assert load_settings()['pypaths'] == {}
                assert not os.path.exists(venv_dir)
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert 'Successfully removed Python path named `pyname`.' in result.output
        assert 'Successfully removed virtual env named `{}`.'.format(env_name) in result.output
Beispiel #7
0
def test_failure():
    with temp_chdir() as d:
        runner = CliRunner()
        env_name = get_new_venv_name()
        result = runner.invoke(hatch, ['env', '--pypath', d, env_name])

        assert result.exit_code != 0
        assert 'An unexpected failure may have occurred.' in result.output
Beispiel #8
0
def test_env_not_exist():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        result = runner.invoke(hatch, ['shed', '-e', env_name])

        assert result.exit_code == 0
        assert 'Virtual env named `{}` already does not exist.'.format(env_name)
Beispiel #9
0
def test_env_not_exist():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        result = runner.invoke(hatch, ['install', '-e', env_name])

        assert result.exit_code == 1
        assert 'Virtual env named `{}` does not exist.'.format(env_name) in result.output
Beispiel #10
0
def test_clone_venv_not_exist():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        result = runner.invoke(hatch, ['env', '-c', env_name, env_name])

        assert result.exit_code == 1
        assert 'Virtual env `{name}` does not exist.'.format(
            name=env_name) in result.output
Beispiel #11
0
def test_success():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)

        try:
            result = runner.invoke(hatch, ['env', env_name])
            assert os.path.exists(venv_dir)
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert 'Successfully saved virtual env `{}` to `{}`.'.format(
            env_name, venv_dir) in result.output
Beispiel #12
0
def test_existing_venv():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()

        try:
            runner.invoke(hatch, ['env', env_name])
            result = runner.invoke(hatch, ['env', env_name])
        finally:
            remove_path(os.path.join(VENV_DIR, env_name))

        assert result.exit_code == 1
        assert ('Virtual env `{name}` already exists. To remove '
                'it do `hatch shed -e {name}`.'.format(
                    name=env_name)) in result.output
Beispiel #13
0
def test_new_env():
    with temp_chdir():
        runner = CliRunner()
        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)

        try:
            result = runner.invoke(hatch, ['init', '--basic', 'ok', env_name])
            with venv(venv_dir):
                assert 'ok' in get_editable_packages()
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert 'Creating virtual env `{}`...'.format(env_name) in result.output
        assert 'Installing locally in virtual env `{}`...'.format(env_name) in result.output
Beispiel #14
0
def test_new_env_exists():
    with temp_chdir():
        runner = CliRunner()
        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)
        os.makedirs(venv_dir)

        try:
            result = runner.invoke(hatch, ['init', '--basic', 'ok', env_name])
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 1
        assert (
            'Virtual env `{name}` already exists. To remove '
            'it do `hatch shed -e {name}`.'.format(name=env_name)
        ) in result.output
Beispiel #15
0
def test_list_success_2():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()

        try:
            runner.invoke(hatch, ['env', env_name])
            result = runner.invoke(hatch, ['env', '-ll'])
        finally:
            remove_path(os.path.join(VENV_DIR, env_name))

        assert result.exit_code == 0
        assert ('{} ->\n'
                '  Version: {}\n'
                '  Implementation: {}'.format(
                    env_name, get_python_version(),
                    get_python_implementation())) in result.output
Beispiel #16
0
def test_env():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)
        create_venv(venv_dir)

        try:
            with venv(venv_dir):
                assert 'six' not in get_installed_packages()
            result = runner.invoke(hatch, ['install', '-e', env_name, 'six'])
            with venv(venv_dir):
                assert 'six' in get_installed_packages()
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
Beispiel #17
0
def test_env():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(get_venv_dir(), env_name)

        try:
            runner.invoke(hatch, ['env', env_name])
            wait_until(is_venv, venv_dir)
            assert os.path.exists(venv_dir)
            result = runner.invoke(hatch, ['shed', '-e', env_name])
            assert not os.path.exists(venv_dir)
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert 'Successfully removed virtual env named `{}`.'.format(env_name) in result.output
Beispiel #18
0
def test_env():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)
        create_venv(venv_dir)

        try:
            with venv(venv_dir):
                install_packages(['requests==2.17.3'])
                initial_version = get_version_as_bytes('requests')
            result = runner.invoke(hatch, ['update', '-e', env_name, '--all'])
            with venv(venv_dir):
                final_version = get_version_as_bytes('requests')
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert initial_version < final_version
Beispiel #19
0
def test_list_success_1():
    with temp_chdir():
        runner = CliRunner()

        env_name1, env_name2 = get_new_venv_name(count=2)
        venv_dir1 = os.path.join(VENV_DIR, env_name1)
        venv_dir2 = os.path.join(VENV_DIR, env_name2)

        try:
            runner.invoke(hatch, ['env', env_name1])
            os.makedirs(venv_dir2)
            result = runner.invoke(hatch, ['env', '-l'])
        finally:
            remove_path(venv_dir1)
            remove_path(venv_dir2)

        assert result.exit_code == 0
        assert ('{} ->\n'
                '  Version: {}'.format(env_name1,
                                       get_python_version())) in result.output
Beispiel #20
0
def test_pyname():
    with temp_chdir() as d:
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)

        try:
            with temp_move_path(SETTINGS_FILE, d):
                settings = copy_default_settings()
                settings['pypaths']['python'] = sys.executable
                save_settings(settings)
                result = runner.invoke(hatch,
                                       ['env', env_name, '-py', 'python'])
                assert os.path.exists(venv_dir)
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert 'Successfully saved virtual env `{}` to `{}`.'.format(
            env_name, venv_dir) in result.output
Beispiel #21
0
def test_infra_env():
    with temp_chdir():
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(get_venv_dir(), env_name)
        create_venv(venv_dir)

        try:
            with venv(venv_dir):
                install_packages(['setuptools==36.0.1'])
                initial_version = get_version_as_bytes('setuptools')
            result = runner.invoke(hatch,
                                   ['update', '-e', env_name, '--infra'])
            with venv(venv_dir):
                final_version = get_version_as_bytes('setuptools')
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
        assert initial_version < final_version
Beispiel #22
0
def test_pyname():
    with temp_chdir() as d:
        runner = CliRunner()

        env_name = get_new_venv_name()
        venv_dir = os.path.join(VENV_DIR, env_name)

        try:
            with temp_move_path(SETTINGS_FILE, d):
                settings = copy_default_settings()
                settings['pypaths']['python'] = sys.executable
                save_settings(settings)
                result = runner.invoke(hatch, ['init', 'ok', '-py', 'python'])
                venv_dir = os.path.join(d, 'venv')
                global_version = get_python_version()
                wait_until(is_venv, venv_dir)
                with venv(venv_dir):
                    assert get_python_version() == global_version
        finally:
            remove_path(venv_dir)

        assert result.exit_code == 0
Beispiel #23
0
def test_list_success_3():
    with temp_chdir():
        runner = CliRunner()
        runner.invoke(hatch, ['init', 'ok', '-ne'])

        env_name = get_new_venv_name()
        venv_dir = os.path.join(get_venv_dir(), env_name)

        try:
            runner.invoke(hatch, ['env', env_name])
            wait_until(is_venv, venv_dir)
            runner.invoke(hatch, ['install', '-l', '-e', env_name])
            result = runner.invoke(hatch, ['env', '-lll'])
        finally:
            remove_path(os.path.join(get_venv_dir(), env_name))

        assert result.exit_code == 0
        assert ('{} ->\n'
                '  Version: {}\n'
                '  Implementation: {}\n'
                '  Local packages: {}'.format(env_name, get_python_version(),
                                              get_python_implementation(),
                                              'ok')) in result.output
Beispiel #24
0
def test_get_new_venv_name_single():
    names = os.listdir(get_venv_dir()) if os.path.exists(
        get_venv_dir()) else []
    assert get_new_venv_name() not in names
Beispiel #25
0
def test_get_new_venv_name_single():
    names = os.listdir(VENV_DIR) if os.path.exists(VENV_DIR) else []
    assert get_new_venv_name() not in names