Commit d4c2fe44 by Ashley Whetter Committed by Bjorn Neergaard

POETRY_EXPERIMENTAL_NEW_INSTALLER is interpreted as a boolean

parent 56f81631
...@@ -132,6 +132,7 @@ class Config: ...@@ -132,6 +132,7 @@ class Config:
"virtualenvs.in-project", "virtualenvs.in-project",
"virtualenvs.options.always-copy", "virtualenvs.options.always-copy",
"virtualenvs.options.system-site-packages", "virtualenvs.options.system-site-packages",
"experimental.new-installer",
"installer.parallel", "installer.parallel",
}: }:
return boolean_normalizer return boolean_normalizer
......
import os import os
import re
import pytest import pytest
from poetry.config.config import Config
def get_boolean_options(config=None):
if config is None:
config = Config.default_config
for k, v in config.items():
if isinstance(v, bool) or v is None:
yield k
if isinstance(v, dict):
for suboption in get_boolean_options(v):
yield "{}.{}".format(k, suboption)
@pytest.mark.parametrize( @pytest.mark.parametrize(
("name", "value"), [("installer.parallel", True), ("virtualenvs.create", True)] ("name", "value"), [("installer.parallel", True), ("virtualenvs.create", True)]
...@@ -14,16 +29,19 @@ def test_config_get_processes_depended_on_values(config, config_cache_dir): ...@@ -14,16 +29,19 @@ def test_config_get_processes_depended_on_values(config, config_cache_dir):
assert str(config_cache_dir / "virtualenvs") == config.get("virtualenvs.path") assert str(config_cache_dir / "virtualenvs") == config.get("virtualenvs.path")
def generate_environment_variable_tests():
for env_value, value in [("true", True), ("false", False)]:
for name in get_boolean_options():
env_var = "POETRY_{}".format(re.sub("[.-]+", "_", name).upper())
yield (name, env_var, env_value, value)
@pytest.mark.parametrize( @pytest.mark.parametrize(
("name", "env_value", "value"), ("name", "env_var", "env_value", "value"),
[ list(generate_environment_variable_tests()),
("installer.parallel", "true", True),
("installer.parallel", "false", False),
("virtualenvs.create", "true", True),
("virtualenvs.create", "false", False),
],
) )
def test_config_get_from_environment_variable(config, environ, name, env_value, value): def test_config_get_from_environment_variable(
env_var = "POETRY_{}".format("_".join(k.upper() for k in name.split("."))) config, environ, name, env_var, env_value, value
):
os.environ[env_var] = env_value os.environ[env_var] = env_value
assert config.get(name) is value assert config.get(name) is value
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