@@ -160,6 +160,49 @@ def basic_test(self, cf):
160160 'this line is much, much longer than my editor\n likes it.' )
161161 if self .allow_no_value :
162162 eq (cf ['NoValue' ]['option-without-value' ], None )
163+ # test vars= and fallback=
164+ eq (cf ['Foo Bar' ].get ('foo' , 'baz' ), 'bar1' )
165+ eq (cf ['Foo Bar' ].get ('foo' , fallback = 'baz' ), 'bar1' )
166+ eq (cf ['Foo Bar' ].get ('foo' , vars = {'foo' : 'baz' }), 'baz' )
167+ with self .assertRaises (KeyError ):
168+ cf ['No Such Foo Bar' ]['foo' ]
169+ with self .assertRaises (KeyError ):
170+ cf ['Foo Bar' ]['no-such-foo' ]
171+ with self .assertRaises (KeyError ):
172+ cf ['No Such Foo Bar' ].get ('foo' , fallback = 'baz' )
173+ eq (cf ['Foo Bar' ].get ('no-such-foo' , 'baz' ), 'baz' )
174+ eq (cf ['Foo Bar' ].get ('no-such-foo' , fallback = 'baz' ), 'baz' )
175+ eq (cf ['Spacey Bar' ].get ('foo' , None ), 'bar2' )
176+ eq (cf ['Spacey Bar' ].get ('foo' , fallback = None ), 'bar2' )
177+ with self .assertRaises (KeyError ):
178+ cf ['No Such Spacey Bar' ].get ('foo' , None )
179+ eq (cf ['Types' ].getint ('int' , 18 ), 42 )
180+ eq (cf ['Types' ].getint ('int' , fallback = 18 ), 42 )
181+ eq (cf ['Types' ].getint ('no-such-int' , 18 ), 18 )
182+ eq (cf ['Types' ].getint ('no-such-int' , fallback = 18 ), 18 )
183+ eq (cf ['Types' ].getint ('no-such-int' , "18" ), "18" ) # sic!
184+ eq (cf ['Types' ].getint ('no-such-int' , fallback = "18" ), "18" ) # sic!
185+ self .assertAlmostEqual (cf ['Types' ].getfloat ('float' , 0.0 ), 0.44 )
186+ self .assertAlmostEqual (cf ['Types' ].getfloat ('float' ,
187+ fallback = 0.0 ), 0.44 )
188+ self .assertAlmostEqual (cf ['Types' ].getfloat ('no-such-float' , 0.0 ), 0.0 )
189+ self .assertAlmostEqual (cf ['Types' ].getfloat ('no-such-float' ,
190+ fallback = 0.0 ), 0.0 )
191+ eq (cf ['Types' ].getfloat ('no-such-float' , "0.0" ), "0.0" ) # sic!
192+ eq (cf ['Types' ].getfloat ('no-such-float' , fallback = "0.0" ), "0.0" ) # sic!
193+ eq (cf ['Types' ].getboolean ('boolean' , True ), False )
194+ eq (cf ['Types' ].getboolean ('boolean' , fallback = True ), False )
195+ eq (cf ['Types' ].getboolean ('no-such-boolean' , "yes" ), "yes" ) # sic!
196+ eq (cf ['Types' ].getboolean ('no-such-boolean' , fallback = "yes" ),
197+ "yes" ) # sic!
198+ eq (cf ['Types' ].getboolean ('no-such-boolean' , True ), True )
199+ eq (cf ['Types' ].getboolean ('no-such-boolean' , fallback = True ), True )
200+ if self .allow_no_value :
201+ eq (cf ['NoValue' ].get ('option-without-value' , False ), None )
202+ eq (cf ['NoValue' ].get ('option-without-value' , fallback = False ), None )
203+ eq (cf ['NoValue' ].get ('no-such-option-without-value' , False ), False )
204+ eq (cf ['NoValue' ].get ('no-such-option-without-value' ,
205+ fallback = False ), False )
163206
164207 # Make sure the right things happen for remove_option();
165208 # added to include check for SourceForge bug #123324:
0 commit comments