Bug Fix 11282: config.getini returns an empty list for an option of type string absent in INI file
This commit is contained in:
parent
053745501f
commit
5d4ec7a239
|
@ -1525,6 +1525,8 @@ class Config:
|
||||||
return default
|
return default
|
||||||
if type is None:
|
if type is None:
|
||||||
return ""
|
return ""
|
||||||
|
if type == "string":
|
||||||
|
return None
|
||||||
return []
|
return []
|
||||||
else:
|
else:
|
||||||
value = override_value
|
value = override_value
|
||||||
|
|
|
@ -362,6 +362,30 @@ def test_conftest_badcase(pytester: Pytester) -> None:
|
||||||
assert result.ret == ExitCode.NO_TESTS_COLLECTED
|
assert result.ret == ExitCode.NO_TESTS_COLLECTED
|
||||||
|
|
||||||
|
|
||||||
|
def test_my_option(pytester):
|
||||||
|
testdir = pytester.mkdir("test_my_option")
|
||||||
|
testdir.joinpath("conftest.py").write_text(
|
||||||
|
textwrap.dedent(
|
||||||
|
"""\
|
||||||
|
def pytest_addoption(parser):
|
||||||
|
parser.addini(
|
||||||
|
"my_option",
|
||||||
|
type="string",
|
||||||
|
default=None,
|
||||||
|
help="My option",
|
||||||
|
)
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def my_option(request):
|
||||||
|
return request.config.getini("my_option")
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
encoding="utf-8",
|
||||||
|
)
|
||||||
|
result = pytester.runpytest("--my_option=None", str(testdir))
|
||||||
|
assert result.ret == 0
|
||||||
|
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||||
|
|
||||||
|
|
||||||
def test_conftest_uppercase(pytester: Pytester) -> None:
|
def test_conftest_uppercase(pytester: Pytester) -> None:
|
||||||
"""Check conftest.py whose qualified name contains uppercase characters (#5819)"""
|
"""Check conftest.py whose qualified name contains uppercase characters (#5819)"""
|
||||||
source = {"__init__.py": "", "Foo/conftest.py": "", "Foo/__init__.py": ""}
|
source = {"__init__.py": "", "Foo/conftest.py": "", "Foo/__init__.py": ""}
|
||||||
|
|
Loading…
Reference in New Issue