MCPcopy
hub / github.com/pytest-dev/pytest / _getini

Method _getini

src/_pytest/config/__init__.py:1722–1757  ·  view source on GitHub ↗
(self, name: str)

Source from the content-addressed store, hash-verified

1720 raise ValueError(msg) # pragma: no cover
1721
1722 def _getini(self, name: str):
1723 # If this is an alias, resolve to canonical name.
1724 canonical_name = self._parser._ini_aliases.get(name, name)
1725
1726 try:
1727 _description, type, default = self._parser._inidict[canonical_name]
1728 except KeyError as e:
1729 raise ValueError(f"unknown configuration value: {name!r}") from e
1730
1731 # Collect all possible values (canonical name + aliases) from _inicfg.
1732 # Each candidate is (ConfigValue, is_canonical).
1733 candidates = []
1734 if canonical_name in self._inicfg:
1735 candidates.append((self._inicfg[canonical_name], True))
1736 for alias, target in self._parser._ini_aliases.items():
1737 if target == canonical_name and alias in self._inicfg:
1738 candidates.append((self._inicfg[alias], False))
1739
1740 if not candidates:
1741 return default
1742
1743 # Pick the best candidate based on precedence:
1744 # 1. CLI override takes precedence over file, then
1745 # 2. Canonical name takes precedence over alias.
1746 selected = max(candidates, key=lambda x: (x[0].origin == "override", x[1]))[0]
1747 value = selected.value
1748 mode = selected.mode
1749
1750 if mode == "ini":
1751 # In ini mode, values are always str | list[str].
1752 assert isinstance(value, (str, list))
1753 return self._getini_ini(name, canonical_name, type, value, default)
1754 elif mode == "toml":
1755 return self._getini_toml(name, canonical_name, type, value, default)
1756 else:
1757 assert_never(mode)
1758
1759 def _getini_ini(
1760 self,

Callers 1

getiniMethod · 0.95

Calls 5

_getini_iniMethod · 0.95
_getini_tomlMethod · 0.95
assert_neverFunction · 0.90
appendMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected