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":
|
||||
return _strtobool(str(value).strip())
|
||||
else:
|
||||
assert type is None
|
||||
assert type in [None, "string"]
|
||||
return value
|
||||
|
||||
def _getconftest_pathlist(
|
||||
|
|
|
@ -160,20 +160,23 @@ class Parser:
|
|||
self,
|
||||
name: str,
|
||||
help: str,
|
||||
type: Optional["Literal['pathlist', 'args', 'linelist', 'bool']"] = None,
|
||||
type: Optional[
|
||||
"Literal['string', 'pathlist', 'args', 'linelist', 'bool']"
|
||||
] = None,
|
||||
default=None,
|
||||
) -> None:
|
||||
"""Register an ini-file option.
|
||||
|
||||
:name: Name of the ini-variable.
|
||||
:type: Type of the variable, can be ``pathlist``, ``args``, ``linelist``
|
||||
or ``bool``.
|
||||
:type: Type of the variable, can be ``string``, ``pathlist``, ``args``,
|
||||
``linelist`` or ``bool``. Defaults to ``string`` if ``None`` or
|
||||
not passed.
|
||||
:default: Default value if no ini-file option exists but is queried.
|
||||
|
||||
The value of ini-variables can be retrieved via a call to
|
||||
: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._ininames.append(name)
|
||||
|
||||
|
|
|
@ -570,11 +570,17 @@ class TestConfigAPI:
|
|||
assert pl[0] == tmpdir
|
||||
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(
|
||||
"""
|
||||
f"""
|
||||
def pytest_addoption(parser):
|
||||
parser.addini("myname", "my new ini value")
|
||||
parser.addini("myname", "my new ini value"{type_string})
|
||||
"""
|
||||
)
|
||||
testdir.makeini(
|
||||
|
|
Loading…
Reference in New Issue