class TestAll_StringRequired(unittest.TestCase): type = 'All' fn = validator.All(validator.String(), validator.Required()) def test_validate_pass(self): self.section = 'pass' values = ['1', '4', u'3'] check_pass('class', self, self.fn, values) def test_validate_fail(self): self.section = 'fail' values = [ '', u'', 0, ] check_fail('class', self, self.fn, values) def test_messages(self): try: self.fn(None) except error.Invalid, e: self.assertEquals(len(e.errors), 1) self.assertEquals('is required', e.errors[0]) try: self.fn(1) except error.Invalid, e: self.assertEquals(len(e.errors), 1) self.assertEquals('must be a string', e.errors[0])
class Test_RequiredAndIntegerOrString(unittest.TestCase): type = 'RequiredAndIntegerOrString' fn = validator.All(validator.Required(), validator.Any(validator.String(), validator.Integer())) def test_validate_pass(self): self.section = 'pass' values = [ '1', 1, 1L, ] check_pass('class', self, self.fn, values) def test_validate_fail(self): self.section = 'fail' values = [ 0.5, datetime.now(), None, ] check_fail('class', self, self.fn, values) def test_messages(self): try: self.fn(datetime.now()) except error.Invalid, e: self.assertEquals(len(e.errors), 2) assert 'string' in ''.join(e.errors) assert 'integer' in ''.join(e.errors)
class TestString(unittest.TestCase): type = 'String' fn = staticmethod(validate.is_string) class_fn = validator.String() def test_validate_pass(self): self.section = 'pass' values = [ 'foo', '1', u'foobar', 'sad', None, ] check_pass('function', self, self.fn, values) check_pass('class', self, self.class_fn, values) def test_validate_fail(self): self.section = 'fail' values = [ 1, 1.01, ['a', 'b', 'c'], ['a'], ] check_fail('function', self, self.fn, values) check_fail('class', self, self.class_fn, values)