Bug Fix 11282: config.getini returns an empty list for an option of type string absent in INI file

This commit is contained in:
TanyaAgarwal28 2023-10-10 18:02:11 +05:30
parent 053745501f
commit 5d4ec7a239
2 changed files with 26 additions and 0 deletions

View File

@ -1525,6 +1525,8 @@ class Config:
return default
if type is None:
return ""
if type == "string":
return None
return []
else:
value = override_value

View File

@ -362,6 +362,30 @@ def test_conftest_badcase(pytester: Pytester) -> None:
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:
"""Check conftest.py whose qualified name contains uppercase characters (#5819)"""
source = {"__init__.py": "", "Foo/conftest.py": "", "Foo/__init__.py": ""}