@@ -201,6 +201,27 @@ class Foo(Command):
201201 self .assert_parse_results_cases (Foo , success_cases )
202202 self .assert_parse_fails_cases (Foo , fail_cases , UsageError )
203203
204+ def test_choice_map_default_fixed (self ):
205+ class Foo (Command ):
206+ bar = Option ('-b' , default = 'a' , type = ChoiceMap ({'a' : 'ABC' , 'x' : 'XYZ' }))
207+
208+ success_cases = [([], {'bar' : 'ABC' }), (['-b' , 'a' ], {'bar' : 'ABC' }), (['-b' , 'x' ], {'bar' : 'XYZ' })]
209+ self .assert_parse_results_cases (Foo , success_cases )
210+
211+ def test_choice_map_default_in_values (self ):
212+ class Foo (Command ):
213+ bar = Option ('-b' , default = 'ABC' , type = ChoiceMap ({'a' : 'ABC' , 'x' : 'XYZ' }))
214+
215+ success_cases = [([], {'bar' : 'ABC' }), (['-b' , 'a' ], {'bar' : 'ABC' }), (['-b' , 'x' ], {'bar' : 'XYZ' })]
216+ self .assert_parse_results_cases (Foo , success_cases )
217+
218+ def test_choice_map_default_not_fixed (self ):
219+ class Foo (Command ):
220+ bar = Option ('-b' , default = 'a' , type = ChoiceMap ({'a' : 'ABC' , 'x' : 'XYZ' }), strict_default = True )
221+
222+ success_cases = [([], {'bar' : 'a' }), (['-b' , 'a' ], {'bar' : 'ABC' }), (['-b' , 'x' ], {'bar' : 'XYZ' })]
223+ self .assert_parse_results_cases (Foo , success_cases )
224+
204225
205226if __name__ == '__main__' :
206227 # import logging
0 commit comments