def test_lazy_proxy(self): """Tests that the validators support lazy translation strings for messages.""" class ReallyLazyProxy(object): def __unicode__(self): raise Exception( 'Translator function called during form declaration: it should be called at response time.' ) __str__ = __unicode__ message = ReallyLazyProxy() self.assertRaises(Exception, str, message) self.assertRaises(Exception, text_type, message) self.assertTrue(equal_to('fieldname', message=message)) self.assertTrue(length(min=1, message=message)) self.assertTrue(NumberRange(1, 5, message=message)) self.assertTrue(data_required(message=message)) self.assertTrue(regexp('.+', message=message)) self.assertTrue(email(message=message)) self.assertTrue(ip_address(message=message)) self.assertTrue(url(message=message))
def test_data_required(self): # Make sure we stop the validation chain self.assertEqual(data_required()(self.form, DummyField('foobar')), None) self.assertRaises(StopValidation, data_required(), self.form, DummyField('')) self.assertRaises(StopValidation, data_required(), self.form, DummyField(' ')) self.assertEqual(data_required().field_flags, ('required',)) # Make sure we clobber errors f = DummyField('', ['Invalid Integer Value']) self.assertEqual(len(f.errors), 1) self.assertRaises(StopValidation, data_required(), self.form, f) self.assertEqual(len(f.errors), 0) # Check message and custom message grab = lambda **k: grab_stop_message(data_required(**k), self.form, DummyField('')) self.assertEqual(grab(), 'This field is required.') self.assertEqual(grab(message='foo'), 'foo')
def test_required(self): self.assertEqual(data_required()(self.form, DummyField('foobar')), None) self.assertRaises(StopValidation, data_required(), self.form, DummyField(''))