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
c52659458b
commit
6c1eaf6e7f
|
@ -0,0 +1 @@
|
|||
Return "None" as the default value if "None" or no default value if provided by the developer.In this approach, existing calls to the getini function would need to check for "None" values.
|
|
@ -1525,6 +1525,8 @@ class Config:
|
|||
return default
|
||||
if type is None:
|
||||
return ""
|
||||
if type == "string":
|
||||
return None
|
||||
return []
|
||||
else:
|
||||
value = override_value
|
||||
|
|
|
@ -221,6 +221,31 @@ def test_setinitial_conftest_subdirs(pytester: Pytester, name: str) -> None:
|
|||
assert len(set(pm.get_plugins()) - {pm}) == 0
|
||||
|
||||
|
||||
def test_my_option(pytester: 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(str(testdir))
|
||||
assert result.ret == 0
|
||||
captured_stdout = result.stdout.str()
|
||||
assert "1 passed" in captured_stdout
|
||||
|
||||
|
||||
def test_conftest_confcutdir(pytester: Pytester) -> None:
|
||||
pytester.makeconftest("assert 0")
|
||||
x = pytester.mkdir("x")
|
||||
|
|
Loading…
Reference in New Issue