def test_validate_bad_template(self): class BadTemplate(object): pass config = _root({}) with self.assertRaises(confit.ConfigTemplateError): config.get(confit.OneOf([BadTemplate()])) del BadTemplate
def test_validate_no_choice_in_list(self): config = _root({'foo': None}) with self.assertRaises(confit.ConfigValueError): config['foo'].get( confit.OneOf([ confit.String(), confit.Integer(), ]))
def test_validate_first_good_choice_in_list(self): config = _root({'foo': 3.14}) valid = config['foo'].get( confit.OneOf([ confit.Integer(), confit.Number(), ])) self.assertEqual(valid, 3)
def test_validate_good_choice_in_list(self): config = _root({'foo': 2}) valid = config['foo'].get( confit.OneOf([ confit.String(), confit.Integer(), ])) self.assertEqual(valid, 2)
def test_default_value(self): config = _root({}) valid = config['foo'].get(confit.OneOf([], default='bar')) self.assertEqual(valid, 'bar')
"""An example application using Confit for configuration.""" from __future__ import print_function from __future__ import unicode_literals import os import confit import argparse template = { 'library': confit.Filename(), 'import_write': confit.OneOf([bool, 'true', 'false']), 'ignore': confit.StrSeq(), 'plugins': list, 'paths': { 'directory': confit.Filename(), 'default': confit.Filename(relative_to='directory'), } } config = confit.LazyConfig( 'ConfitExample', file="~/PycharmProjects/confit/example/config_default.yaml") def main(): parser = argparse.ArgumentParser(description='example Confit program') parser.add_argument('--library', '-l', dest='library', metavar='LIBPATH', help='library database file') parser.add_argument('--directory',