@@ -2694,18 +2694,27 @@ class BadCliPositionalArg(BaseSettings):
26942694
26952695def test_cli_case_insensitive_arg ():
26962696 class Cfg (BaseSettings , cli_exit_on_error = False ):
2697- Foo : str
2698- Bar : str
2697+ foo : str = Field ( validation_alias = AliasChoices ( 'F' , 'Foo' ))
2698+ bar : str = Field ( validation_alias = AliasChoices ( 'B' , 'Bar' ))
26992699
2700- cfg = Cfg (_cli_parse_args = ['--FOO=--VAL' , '--BAR' , '"--VAL"' ])
2701- assert cfg .model_dump () == {'Foo' : '--VAL' , 'Bar' : '"--VAL"' }
2700+ cfg = Cfg (_cli_parse_args = ['--FOO=--VAL' , '--BAR' , '"--VAL"' , ])
2701+ assert cfg .model_dump () == {'foo' : '--VAL' , 'bar' : '"--VAL"' }
2702+
2703+ cfg = Cfg (_cli_parse_args = ['-f=-V' , '-b' , '"-V"' , ])
2704+ assert cfg .model_dump () == {'foo' : '-V' , 'bar' : '"-V"' }
27022705
27032706 cfg = Cfg (_cli_parse_args = ['--Foo=--VAL' , '--Bar' , '"--VAL"' ], _case_sensitive = True )
2704- assert cfg .model_dump () == {'Foo' : '--VAL' , 'Bar' : '"--VAL"' }
2707+ assert cfg .model_dump () == {'foo' : '--VAL' , 'bar' : '"--VAL"' }
2708+
2709+ cfg = Cfg (_cli_parse_args = ['-F=-V' , '-B' , '"-V"' ], _case_sensitive = True )
2710+ assert cfg .model_dump () == {'foo' : '-V' , 'bar' : '"-V"' }
27052711
27062712 with pytest .raises (SettingsError , match = 'error parsing CLI: unrecognized arguments: --FOO=--VAL --BAR "--VAL"' ):
27072713 Cfg (_cli_parse_args = ['--FOO=--VAL' , '--BAR' , '"--VAL"' ], _case_sensitive = True )
27082714
2715+ with pytest .raises (SettingsError , match = 'error parsing CLI: unrecognized arguments: -f=-V -b "-V"' ):
2716+ Cfg (_cli_parse_args = ['-f=-V' , '-b' , '"-V"' ], _case_sensitive = True )
2717+
27092718 with pytest .raises (SettingsError , match = 'Case-insensitive matching is only supported on the internal root parser' ):
27102719 CliSettingsSource (Cfg , root_parser = CliDummyParser (), case_sensitive = False )
27112720
0 commit comments