def __call__(self, v): try: validate.has_length(v, min=self.min, max=self.max, messages=self.messages) except Invalid, e: raise Invalid(e.message, validator=self)
def test_noattrs(self): try: validate.has_length(1) except: self.fail( 'unexpected error using no attrs for validate.has_length')
def test_noattrs(self): try: validate.has_length(1) except: self.fail('unexpected error using no attrs for validate.has_length')
class TestLength(unittest.TestCase): type = 'Length' fn_min = staticmethod(lambda v: validate.has_length(v, min=3)) class_fn_min = validator.Length(min=3) fn_max = staticmethod(lambda v: validate.has_length(v, max=3)) class_fn_max = validator.Length(max=3) def test_validate_min_pass(self): self.section = 'pass' values = [ 'abc', ['a', 'b', 'c'], ] check_pass('function', self, self.fn_min, values) check_pass('class', self, self.class_fn_min, values) def test_validate_min_fail(self): self.section = 'fail' values = [ 'a', 'ab', '', [], ['a'], ['ab'], ] check_fail('function', self, self.fn_min, values) check_fail('class', self, self.class_fn_min, values) def test_validate_max_pass(self): self.section = 'pass' values = [ 'abc', ['a', 'b', 'c'], '', [], ['abcd'], ] check_pass('function', self, self.fn_max, values) check_pass('class', self, self.class_fn_max, values) def test_validate_max_fail(self): self.section = 'fail' values = [ 'abcde', 'abcd', ['a', 'b', 'c', 'd'], ] check_fail('function', self, self.fn_max, values) check_fail('class', self, self.class_fn_max, values) def test_messages(self): try: self.fn_min('') except error.Invalid, e: assert 'more' in e.message try: self.fn_max('aaaaaaaaaa') except error.Invalid, e: assert 'fewer' in e.message