def test_object(self): captcha = MathCaptcha('1 * 2') self.assertFalse( captcha.validate(1) ) self.assertTrue( captcha.validate(2) ) restored = MathCaptcha.from_hash(captcha.hashed) self.assertEqual( captcha.question, restored.question ) self.assertRaises( ValueError, MathCaptcha.from_hash, captcha.hashed[:40] )
def __init__(self, data=None, *args, **kwargs): super(CaptchaRegistrationForm, self).__init__( data, *args, **kwargs ) # Load data self.tampering = False if data is None or 'captcha_id' not in data: self.captcha = MathCaptcha() else: try: self.captcha = MathCaptcha.from_hash(data['captcha_id']) except ValueError: self.captcha = MathCaptcha() self.tampering = True # Set correct label self.fields['captcha'].label = _('What is %s') % self.captcha.display self.fields['captcha_id'].initial = self.captcha.hashed