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_nested_attribute_access(self): config = _root({ 'foo': { 'bar': 8 }, }) valid = config.get({ 'foo': { 'bar': confit.Integer() }, }) self.assertEqual(valid.foo.bar, 8)
def test_nested_dict_template(self): config = _root({ 'foo': { 'bar': 9 }, }) valid = config.get({ 'foo': { 'bar': confit.Integer() }, }) self.assertEqual(valid['foo']['bar'], 9)
def test_validate_simple_dict(self): config = _root({'foo': 5}) valid = config.get({'foo': confit.Integer()}) self.assertEqual(valid['foo'], 5)
def test_validate_individual_value(self): config = _root({'foo': 5}) valid = config['foo'].get(confit.Integer()) self.assertEqual(valid, 5)
def test_wrong_type_raises_error_on_validate(self): config = _root({'foo': 'bar'}) with self.assertRaises(confit.ConfigTypeError): config.get({'foo': confit.Integer()})
def test_none_as_default(self): config = _root({}) valid = config.get({'foo': confit.Integer(None)}) self.assertIsNone(valid['foo'])
def test_missing_required_value_raises_error_on_validate(self): config = _root({}) with self.assertRaises(confit.NotFoundError): config.get({'foo': confit.Integer()})
def test_attribute_access(self): config = _root({'foo': 5}) valid = config.get({'foo': confit.Integer()}) self.assertEqual(valid.foo, 5)
def test_undeclared_key_ignored_from_input(self): config = _root({'foo': 5, 'bar': 6}) valid = config.get({'foo': confit.Integer()}) with self.assertRaises(KeyError): valid['bar']
def test_undeclared_key_raises_keyerror(self): config = _root({'foo': 5}) valid = config.get({'foo': confit.Integer()}) with self.assertRaises(KeyError): valid['bar']
def test_default_value(self): config = _root({}) valid = config.get({'foo': confit.Integer(8)}) self.assertEqual(valid['foo'], 8)