(env)
| 207 | |
| 208 | |
| 209 | def test_cli_source_prioritization(env): |
| 210 | class CfgDefault(BaseSettings): |
| 211 | foo: str |
| 212 | |
| 213 | class CfgPrioritized(BaseSettings): |
| 214 | foo: str |
| 215 | |
| 216 | @classmethod |
| 217 | def settings_customise_sources( |
| 218 | cls, |
| 219 | settings_cls: type[BaseSettings], |
| 220 | init_settings: PydanticBaseSettingsSource, |
| 221 | env_settings: PydanticBaseSettingsSource, |
| 222 | dotenv_settings: PydanticBaseSettingsSource, |
| 223 | file_secret_settings: PydanticBaseSettingsSource, |
| 224 | ) -> tuple[PydanticBaseSettingsSource, ...]: |
| 225 | return env_settings, CliSettingsSource(settings_cls, cli_parse_args=['--foo', 'FOO FROM CLI']) |
| 226 | |
| 227 | env.set('FOO', 'FOO FROM ENV') |
| 228 | |
| 229 | cfg = CliApp.run(CfgDefault, cli_args=['--foo', 'FOO FROM CLI']) |
| 230 | assert cfg.model_dump() == {'foo': 'FOO FROM CLI'} |
| 231 | |
| 232 | cfg = CfgPrioritized() |
| 233 | assert cfg.model_dump() == {'foo': 'FOO FROM ENV'} |
| 234 | |
| 235 | |
| 236 | def test_cli_alias_subcommand_and_positional_args(capsys, monkeypatch): |
nothing calls this directly
no test coverage detected
searching dependent graphs…