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-11 15:15:02 +05:30
parent 33eeda0339
commit 1d6a6d95ee
2 changed files with 21 additions and 28 deletions

View File

@ -147,6 +147,20 @@ def pytester(pytester: Pytester, monkeypatch: MonkeyPatch) -> Pytester:
return pytester
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")
@pytest.fixture(scope="session")
def color_mapping():
"""Returns a utility class which can replace keys in strings in the form "{NAME}"

View File

@ -222,35 +222,14 @@ def test_setinitial_conftest_subdirs(pytester: Pytester, name: str) -> None:
def test_my_option(pytester: Pytester):
testdir = pytester.mkdir("test_my_option")
conftest_content = """
import pytest
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")
"""
# Place conftest.py in the root directory of the project
testdir.parent.joinpath("conftest.py").write_text(
conftest_content, encoding="utf-8"
p = pytester.makepyfile(
"""
def test_x(my_option):
assert my_option is None
"""
)
# Create a simple test function
test_content = """
def test_example(my_option):
assert my_option is None
"""
testdir.joinpath("test_my_option.py").write_text(test_content, encoding="utf-8")
result = pytester.runpytest(
str(testdir.parent)
) # Run pytest from the root directory
assert result.ret == 0
result = pytester.runpytest(p)
result.assert_outcomes(failed=0, passed=1)
def test_conftest_confcutdir(pytester: Pytester) -> None: