370
370
class TestIniConfig(tests.TestCase):
372
def make_config_parser(self, s):
373
conf = config.IniBasedConfig(None)
374
parser = conf._get_parser(file=StringIO(s.encode('utf-8')))
378
class TestIniConfigBuilding(TestIniConfig):
380
372
def test_contructs(self):
381
373
my_config = config.IniBasedConfig("nothing")
393
385
parser = my_config._get_parser(file=config_file)
394
386
self.failUnless(my_config._get_parser() is parser)
397
class TestGetUserOptionAs(TestIniConfig):
399
388
def test_get_user_option_as_bool(self):
400
conf, parser = self.make_config_parser("""
389
config_file = StringIO("""
401
390
a_true_bool = true
403
392
an_invalid_bool = maybe
404
a_list = hmm, who knows ? # This is interpreted as a list !
406
get_bool = conf.get_user_option_as_bool
407
self.assertEqual(True, get_bool('a_true_bool'))
408
self.assertEqual(False, get_bool('a_false_bool'))
409
self.assertIs(None, get_bool('an_invalid_bool'))
410
self.assertIs(None, get_bool('not_defined_in_this_config'))
413
def test_get_user_option_as_list(self):
414
conf, parser = self.make_config_parser("""
419
get_list = conf.get_user_option_as_list
420
self.assertEqual(['a', 'b', 'c'], get_list('a_list'))
421
self.assertEqual(['1'], get_list('length_1'))
422
self.assertEqual('x', conf.get_user_option('one_item'))
423
# automatically cast to list
424
self.assertEqual(['x'], get_list('one_item'))
427
class TestSupressWarning(TestIniConfig):
429
def make_warnings_config(self, s):
430
conf, parser = self.make_config_parser(s)
431
return conf.suppress_warning
433
def test_suppress_warning_unknown(self):
434
suppress_warning = self.make_warnings_config('')
435
self.assertEqual(False, suppress_warning('unknown_warning'))
437
def test_suppress_warning_known(self):
438
suppress_warning = self.make_warnings_config('suppress_warnings=a,b')
439
self.assertEqual(False, suppress_warning('c'))
440
self.assertEqual(True, suppress_warning('a'))
441
self.assertEqual(True, suppress_warning('b'))
393
a_list = hmm, who knows ? # This interpreted as a list !
395
my_config = config.IniBasedConfig(None)
396
parser = my_config._get_parser(file=config_file)
397
get_option = my_config.get_user_option_as_bool
398
self.assertEqual(True, get_option('a_true_bool'))
399
self.assertEqual(False, get_option('a_false_bool'))
400
self.assertIs(None, get_option('an_invalid_bool'))
401
self.assertIs(None, get_option('not_defined_in_this_config'))
444
403
class TestGetConfig(tests.TestCase):