|
24 | 24 | from poetry.utils.env import EnvCommandError
|
25 | 25 | from poetry.utils.env import EnvManager
|
26 | 26 | from poetry.utils.env import GenericEnv
|
| 27 | +from poetry.utils.env import InvalidCurrentPythonVersionError |
27 | 28 | from poetry.utils.env import NoCompatiblePythonVersionFound
|
28 | 29 | from poetry.utils.env import SystemEnv
|
29 | 30 | from poetry.utils.env import VirtualEnv
|
@@ -993,6 +994,33 @@ def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable(
|
993 | 994 | )
|
994 | 995 |
|
995 | 996 |
|
| 997 | +def test_create_venv_fails_if_current_python_version_is_not_supported( |
| 998 | + manager: EnvManager, poetry: "Poetry" |
| 999 | +): |
| 1000 | + if "VIRTUAL_ENV" in os.environ: |
| 1001 | + del os.environ["VIRTUAL_ENV"] |
| 1002 | + |
| 1003 | + manager.create_venv(NullIO()) |
| 1004 | + |
| 1005 | + current_version = Version.parse(".".join(str(c) for c in sys.version_info[:3])) |
| 1006 | + next_version = ".".join( |
| 1007 | + str(c) for c in (current_version.major, current_version.minor + 1, 0) |
| 1008 | + ) |
| 1009 | + package_version = "~" + next_version |
| 1010 | + poetry.package.python_versions = package_version |
| 1011 | + |
| 1012 | + with pytest.raises(InvalidCurrentPythonVersionError) as e: |
| 1013 | + manager.create_venv(NullIO()) |
| 1014 | + |
| 1015 | + expected_message = ( |
| 1016 | + f"Current Python version ({current_version}) is not allowed by the project" |
| 1017 | + f' ({package_version}).\nPlease change python executable via the "env use"' |
| 1018 | + " command." |
| 1019 | + ) |
| 1020 | + |
| 1021 | + assert expected_message == str(e.value) |
| 1022 | + |
| 1023 | + |
996 | 1024 | def test_activate_with_in_project_setting_does_not_fail_if_no_venvs_dir(
|
997 | 1025 | manager: EnvManager,
|
998 | 1026 | poetry: Poetry,
|
|
0 commit comments