def test_string_validator(self): v = validator.StringValidator() v.min = v.max = None self.assert_false(v.validate('')) def assert_type_error(min, max, o): v.min = min v.max = max with self.assert_raises(ayame.ValidationError) as cm: v.validate(o) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['StringValidator.type']) self.assert_equal(e.vars, {}) assert_type_error(None, None, 0) assert_type_error(0.0, None, '') assert_type_error(None, 0.0, '') v.min = 4 v.max = None self.assert_false(v.validate('.com')) with self.assert_raises(ayame.ValidationError) as cm: v.validate('.jp') e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['StringValidator.minimum']) self.assert_equal(e.vars, {'min': 4}) v.min = None v.max = 4 self.assert_false(v.validate('.com')) with self.assert_raises(ayame.ValidationError) as cm: v.validate('.info') e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['StringValidator.maximum']) self.assert_equal(e.vars, {'max': 4}) v.min = 4 v.max = 5 self.assert_false(v.validate('.com')) with self.assert_raises(ayame.ValidationError) as cm: v.validate('.jp') e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['StringValidator.range']) self.assert_equal(e.vars, {'min': 4, 'max': 5}) v.min = v.max = 4 self.assert_false(v.validate('.com')) with self.assert_raises(ayame.ValidationError) as cm: v.validate('.info') e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['StringValidator.exact']) self.assert_equal(e.vars, {'exact': 4})
def assert_error(o): with self.assert_raises(ayame.ValidationError) as cm: v.validate(o) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['EmailValidator']) self.assert_equal(e.vars, {'pattern': v.regex.pattern})
def assert_type_error(o): with self.assert_raises(ayame.ValidationError) as cm: v.validate(o) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['RangeValidator.type']) self.assert_equal(e.vars, {})
def assert_type_error(min, max, o): v.min = min v.max = max with self.assert_raises(ayame.ValidationError) as cm: v.validate(o) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['StringValidator.type']) self.assert_equal(e.vars, {})
def test_object(self): class O: pass class N(object): pass o = O() n = N() c = converter._ObjectConverter() self.assert_is(c.type, object) self.assert_is_instance(o, c.type) self.assert_is_instance(n, c.type) self.assert_is_none(c.to_python(None)) self.assert_is(c.to_python(o), o) self.assert_is(c.to_python(n), n) self.assert_equal(c.to_string(None), 'None') self.assert_equal(c.to_string(o), five.str(o)) self.assert_equal(c.to_string(n), five.str(n))
def test_range_validator(self): v = validator.RangeValidator() v.min = v.max = None self.assert_false(v.validate(None)) self.assert_false(v.validate('')) self.assert_false(v.validate(0)) def assert_type_error(o): with self.assert_raises(ayame.ValidationError) as cm: v.validate(o) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['RangeValidator.type']) self.assert_equal(e.vars, {}) v.min = v.max = 0 assert_type_error(None) assert_type_error('a') assert_type_error(0.0) v.min = v.max = 'a' assert_type_error(None) assert_type_error(0) assert_type_error(0.0) v.min = v.max = 0.0 assert_type_error(None) assert_type_error(0) assert_type_error('a') v.min = 0 v.max = None self.assert_false(v.validate(0)) with self.assert_raises(ayame.ValidationError) as cm: v.validate(-1) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['RangeValidator.minimum']) self.assert_equal(e.vars, {'min': 0}) v.min = None v.max = 9 self.assert_false(v.validate(9)) with self.assert_raises(ayame.ValidationError) as cm: v.validate(10) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['RangeValidator.maximum']) self.assert_equal(e.vars, {'max': 9}) v.min = 0 v.max = 9 self.assert_false(v.validate(0)) with self.assert_raises(ayame.ValidationError) as cm: v.validate(-1) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['RangeValidator.range']) self.assert_equal(e.vars, {'min': 0, 'max': 9}) v.min = v.max = 9 self.assert_false(v.validate(9)) with self.assert_raises(ayame.ValidationError) as cm: v.validate(10) e = cm.exception self.assert_equal(five.str(e), '') self.assert_equal(e.keys, ['RangeValidator.exact']) self.assert_equal(e.vars, {'exact': 9})
def to_python(self, value): return five.str(value)