def test_value_type_one(): field = cfglib.Setting(name='a', validators=[val.value_type(str)]) field.validate_value('string') with pytest.raises(cfglib.ValidationError): field.validate_value(b'bytes')
def test_field(): field = cfglib.Setting(name='a', validators=[val.value_type((str, int))]) field.validate_value('string') field.validate_value(42) with pytest.raises(cfglib.ValidationError): field.validate_value(42.0)
def test_spec(): spec = cfglib.ConfigSpec([ cfglib.Setting(name='a', validators=[val.value_type((str, int))]), ]) spec.validate_config(cfglib.DictConfig({'a': 'string'})) spec.validate_config(cfglib.DictConfig({'a': 42})) with pytest.raises(cfglib.ValidationError): spec.validate_config(cfglib.DictConfig({'a': 42.0}))
def test_one_of(): field = cfglib.Setting(name='a', validators=[val.one_of([1, "hello"])]) field.validate_value('hello') with pytest.raises(cfglib.ValidationError): field.validate_value('string') field.validate_value(1) with pytest.raises(cfglib.ValidationError): field.validate_value(2)
class TestCfg(cfglib.SpecValidatedConfig): a = cfglib.Setting(validators=[val.value_type((str, int))])