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
|
||||
if type is None:
|
||||
return ""
|
||||
if type == "string":
|
||||
return None
|
||||
return []
|
||||
else:
|
||||
value = override_value
|
||||
|
|
|
@ -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": ""}
|
||||
|
|
Loading…
Reference in New Issue