Merge pull request #7872 from altendky/addini_takes_string
Document that Parser.addini() can take, and defaults to, 'string'
This commit is contained in:
commit
5acc55e838
|
@ -0,0 +1 @@
|
||||||
|
``_pytest.config.argparsing.Parser.addini()`` accepts explicit ``None`` and ``"string"``.
|
|
@ -1402,7 +1402,7 @@ class Config:
|
||||||
elif type == "bool":
|
elif type == "bool":
|
||||||
return _strtobool(str(value).strip())
|
return _strtobool(str(value).strip())
|
||||||
else:
|
else:
|
||||||
assert type is None
|
assert type in [None, "string"]
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def _getconftest_pathlist(
|
def _getconftest_pathlist(
|
||||||
|
|
|
@ -160,20 +160,23 @@ class Parser:
|
||||||
self,
|
self,
|
||||||
name: str,
|
name: str,
|
||||||
help: str,
|
help: str,
|
||||||
type: Optional["Literal['pathlist', 'args', 'linelist', 'bool']"] = None,
|
type: Optional[
|
||||||
|
"Literal['string', 'pathlist', 'args', 'linelist', 'bool']"
|
||||||
|
] = None,
|
||||||
default=None,
|
default=None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Register an ini-file option.
|
"""Register an ini-file option.
|
||||||
|
|
||||||
:name: Name of the ini-variable.
|
:name: Name of the ini-variable.
|
||||||
:type: Type of the variable, can be ``pathlist``, ``args``, ``linelist``
|
:type: Type of the variable, can be ``string``, ``pathlist``, ``args``,
|
||||||
or ``bool``.
|
``linelist`` or ``bool``. Defaults to ``string`` if ``None`` or
|
||||||
|
not passed.
|
||||||
:default: Default value if no ini-file option exists but is queried.
|
:default: Default value if no ini-file option exists but is queried.
|
||||||
|
|
||||||
The value of ini-variables can be retrieved via a call to
|
The value of ini-variables can be retrieved via a call to
|
||||||
:py:func:`config.getini(name) <_pytest.config.Config.getini>`.
|
:py:func:`config.getini(name) <_pytest.config.Config.getini>`.
|
||||||
"""
|
"""
|
||||||
assert type in (None, "pathlist", "args", "linelist", "bool")
|
assert type in (None, "string", "pathlist", "args", "linelist", "bool")
|
||||||
self._inidict[name] = (help, type, default)
|
self._inidict[name] = (help, type, default)
|
||||||
self._ininames.append(name)
|
self._ininames.append(name)
|
||||||
|
|
||||||
|
|
|
@ -570,11 +570,17 @@ class TestConfigAPI:
|
||||||
assert pl[0] == tmpdir
|
assert pl[0] == tmpdir
|
||||||
assert pl[1] == somepath
|
assert pl[1] == somepath
|
||||||
|
|
||||||
def test_addini(self, testdir):
|
@pytest.mark.parametrize("maybe_type", ["not passed", "None", '"string"'])
|
||||||
|
def test_addini(self, testdir, maybe_type):
|
||||||
|
if maybe_type == "not passed":
|
||||||
|
type_string = ""
|
||||||
|
else:
|
||||||
|
type_string = f", {maybe_type}"
|
||||||
|
|
||||||
testdir.makeconftest(
|
testdir.makeconftest(
|
||||||
"""
|
f"""
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
parser.addini("myname", "my new ini value")
|
parser.addini("myname", "my new ini value"{type_string})
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
testdir.makeini(
|
testdir.makeini(
|
||||||
|
|
Loading…
Reference in New Issue