def test_activate_activates_non_existing_virtualenv_no_envs_file( mocker, tester, venv_cache, venv_name, venvs_in_cache_config ): mocker.patch( "subprocess.check_output", side_effect=check_output_wrapper(), ) mock_build_env = mocker.patch( "poetry.utils.env.EnvManager.build_venv", side_effect=build_venv ) tester.execute("3.7") venv_py37 = venv_cache / "{}-py3.7".format(venv_name) mock_build_env.assert_called_with( venv_py37, executable="python3.7", flags={"always-copy": False} ) envs_file = TOMLFile(venv_cache / "envs.toml") assert envs_file.exists() envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" expected = """\ Creating virtualenv {} in {} Using virtualenv: {} """.format( venv_py37.name, venv_py37.parent, venv_py37, ) assert expected == tester.io.fetch_output()
def mock_subprocess_calls(setup, current_python, mocker): mocker.patch( "subprocess.check_output", side_effect=check_output_wrapper(Version(*current_python)), ) mocker.patch( "subprocess.Popen.communicate", side_effect=[("/prefix", None), ("/prefix", None), ("/prefix", None)], )
def mock_subprocess_calls(setup: None, current_python: tuple[int, int, int], mocker: MockerFixture) -> None: mocker.patch( "subprocess.check_output", side_effect=check_output_wrapper(Version.from_parts(*current_python)), ) mocker.patch( "subprocess.Popen.communicate", side_effect=[("/prefix", None), ("/prefix", None), ("/prefix", None)], )
def test_remove_by_python_version(mocker, tester, venvs_in_cache_dirs, venv_name, venv_cache): check_output = mocker.patch( "subprocess.check_output", side_effect=check_output_wrapper(Version.parse("3.6.6")), ) tester.execute("3.6") assert check_output.called assert not (venv_cache / "{}-py3.6".format(venv_name)).exists() expected = "Deleted virtualenv: {}\n".format( (venv_cache / "{}-py3.6".format(venv_name))) assert expected == tester.io.fetch_output()
def test_remove_by_python_version( mocker: MockerFixture, tester: CommandTester, venvs_in_cache_dirs: list[str], venv_name: str, venv_cache: Path, ): check_output = mocker.patch( "subprocess.check_output", side_effect=check_output_wrapper(Version.parse("3.6.6")), ) tester.execute("3.6") assert check_output.called assert not (venv_cache / f"{venv_name}-py3.6").exists() expected = f"Deleted virtualenv: {venv_cache / venv_name}-py3.6\n" assert tester.io.fetch_output() == expected
def test_activate_activates_non_existing_virtualenv_no_envs_file( mocker: MockerFixture, tester: CommandTester, venv_cache: Path, venv_name: str, venvs_in_cache_config: None, ): mocker.patch( "subprocess.check_output", side_effect=check_output_wrapper(), ) mock_build_env = mocker.patch("poetry.utils.env.EnvManager.build_venv", side_effect=build_venv) tester.execute("3.7") venv_py37 = venv_cache / f"{venv_name}-py3.7" mock_build_env.assert_called_with( venv_py37, executable="/usr/bin/python3.7", flags={ "always-copy": False, "system-site-packages": False, "no-pip": False, "no-setuptools": False, }, prompt="simple-project-py3.7", ) envs_file = TOMLFile(venv_cache / "envs.toml") assert envs_file.exists() envs = envs_file.read() assert envs[venv_name]["minor"] == "3.7" assert envs[venv_name]["patch"] == "3.7.1" expected = f"""\ Creating virtualenv {venv_py37.name} in {venv_py37.parent} Using virtualenv: {venv_py37} """ assert tester.io.fetch_output() == expected