Commit a8968842 by Bartosz Sokorski Committed by GitHub

Cover edge case when environment is being created with empty project name (#5856)

parent 7bb0a876
...@@ -948,7 +948,8 @@ class EnvManager: ...@@ -948,7 +948,8 @@ class EnvManager:
if venv_prompt is not None: if venv_prompt is not None:
venv_prompt = venv_prompt.format( venv_prompt = venv_prompt.format(
project_name=self._poetry.package.name, python_version=python_minor project_name=self._poetry.package.name or "virtualenv",
python_version=python_minor,
) )
if not venv.exists(): if not venv.exists():
......
No name project
===============
[tool.poetry]
name = ""
version = "1.2.3"
description = "This project has no name"
authors = [
"Sébastien Eustace <sebastien@eustace.io>"
]
license = "MIT"
readme = "README.rst"
# Requirements
[tool.poetry.dependencies]
python = "~2.7 || ^3.6"
[tool.poetry.group.dev.dependencies]
pytest = "~3.4"
...@@ -1415,3 +1415,43 @@ def test_build_environment_not_called_without_build_script_specified( ...@@ -1415,3 +1415,43 @@ def test_build_environment_not_called_without_build_script_specified(
with build_environment(poetry, project_env) as env: with build_environment(poetry, project_env) as env:
assert env == project_env assert env == project_env
assert not env.executed assert not env.executed
def test_create_venv_project_name_empty_sets_correct_prompt(
project_factory: ProjectFactory,
config: Config,
mocker: MockerFixture,
config_virtualenvs_path: Path,
):
if "VIRTUAL_ENV" in os.environ:
del os.environ["VIRTUAL_ENV"]
fixture = Path(__file__).parent.parent / "fixtures" / "no_name_project"
poetry = project_factory("no", source=fixture)
manager = EnvManager(poetry)
poetry.package.python_versions = "^3.7"
venv_name = manager.generate_env_name("", str(poetry.file.parent))
mocker.patch("sys.version_info", (2, 7, 16))
mocker.patch(
"subprocess.check_output",
side_effect=check_output_wrapper(Version.parse("3.7.5")),
)
m = mocker.patch(
"poetry.utils.env.EnvManager.build_venv", side_effect=lambda *args, **kwargs: ""
)
manager.create_venv(NullIO())
m.assert_called_with(
config_virtualenvs_path / f"{venv_name}-py3.7",
executable="python3",
flags={
"always-copy": False,
"system-site-packages": False,
"no-pip": False,
"no-setuptools": False,
},
prompt="virtualenv-py3.7",
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment