MCPcopy Create free account
hub / github.com/pydantic/pydantic-settings / test_cli_bool_flags

Function test_cli_bool_flags

tests/test_source_cli.py:1775–1853  ·  view source on GitHub ↗
(monkeypatch, enforce_required, implicit_flags_mode)

Source from the content-addressed store, hash-verified

1773@pytest.mark.parametrize('enforce_required', [True, False])
1774@pytest.mark.parametrize('implicit_flags_mode', [None, True, 'dual', 'toggle'])
1775def test_cli_bool_flags(monkeypatch, enforce_required, implicit_flags_mode):
1776 class FlagSettings(BaseSettings, cli_implicit_flags=implicit_flags_mode, cli_enforce_required=enforce_required):
1777 explicit_req: CliExplicitFlag[bool]
1778 explicit_opt: CliExplicitFlag[bool] = False
1779 dual_req: CliDualFlag[bool]
1780 dual_opt: CliDualFlag[bool] = False
1781 toggle_def_t: CliToggleFlag[bool] = True
1782 toggle_def_f: CliToggleFlag[bool] = False
1783 implicit_req: bool
1784 implicit_opt: bool = False
1785
1786 expected = {
1787 'explicit_req': True,
1788 'explicit_opt': False,
1789 'implicit_req': True,
1790 'implicit_opt': False,
1791 'dual_req': True,
1792 'dual_opt': False,
1793 'toggle_def_t': True,
1794 'toggle_def_f': False,
1795 }
1796 flag_args = [
1797 '--explicit_req',
1798 'True',
1799 '--dual_req',
1800 ]
1801 flag_args += ['--implicit_req'] if implicit_flags_mode is not None else ['--implicit_req', 'True']
1802 implicit_settings = CliApp.run(FlagSettings, cli_args=flag_args)
1803 assert implicit_settings.model_dump() == expected
1804 serialized_args = CliApp.serialize(implicit_settings)
1805 assert serialized_args == flag_args
1806
1807 expected = {
1808 'explicit_req': False,
1809 'explicit_opt': False,
1810 'implicit_req': False,
1811 'implicit_opt': False,
1812 'dual_req': False,
1813 'dual_opt': False,
1814 'toggle_def_t': False,
1815 'toggle_def_f': False,
1816 }
1817 flag_args = [
1818 '--explicit_req',
1819 'False',
1820 '--no-dual_req',
1821 '--no-toggle_def_t',
1822 ]
1823 flag_args += ['--no-implicit_req'] if implicit_flags_mode is not None else ['--implicit_req', 'False']
1824 implicit_settings = CliApp.run(FlagSettings, cli_args=flag_args)
1825 assert implicit_settings.model_dump() == expected
1826 serialized_args = CliApp.serialize(implicit_settings)
1827 assert serialized_args == flag_args
1828
1829 expected = {
1830 'explicit_req': True,
1831 'explicit_opt': True,
1832 'implicit_req': True,

Callers

nothing calls this directly

Calls 2

runMethod · 0.80
serializeMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…