0001-misc-don-t-display-wrong-answer-on-initial-display-o.patch
tests/test_form_pages.py | ||
---|---|---|
1199 | 1199 |
resp = resp.click('test') |
1200 | 1200 |
assert 'Some field' in resp.body |
1201 | 1201 | |
1202 |
def test_form_captcha_and_tracking_code(pub): |
|
1203 |
user = create_user(pub) |
|
1204 |
formdef = create_formdef() |
|
1205 |
formdef.data_class().wipe() |
|
1206 |
formdef.fields = [fields.StringField(id='0', label='Some field')] |
|
1207 |
formdef.has_captcha = True |
|
1208 |
formdef.enable_tracking_codes = True |
|
1209 |
formdef.store() |
|
1210 | ||
1211 |
# check the captcha is not given as being an error |
|
1212 |
app = get_app(pub) |
|
1213 |
resp = app.get('/') |
|
1214 |
resp = resp.click('test') |
|
1215 |
assert 'form_captcha' in resp.body |
|
1216 |
assert not 'wrong answer' in resp.body |
|
1217 | ||
1218 |
resp.form['captcha$q'] = 'az' # wrong answer |
|
1219 |
resp = resp.form.submit() |
|
1220 |
assert 'form_captcha' in resp.body |
|
1221 |
assert 'wrong answer' in resp.body |
|
1222 | ||
1223 |
session_id = app.cookies.values()[0].strip('"') |
|
1224 |
session = BasicSession.get(session_id) |
|
1225 |
resp.form['captcha$q'] = session.get_captcha_token(resp.forms[0]['captcha$token'].value)['answer'] |
|
1226 |
resp = resp.form.submit() |
|
1227 |
assert 'f0' in resp.form.fields |
|
1228 | ||
1202 | 1229 |
def test_form_file_field_submit(pub): |
1203 | 1230 |
formdef = create_formdef() |
1204 | 1231 |
formdef.fields = [fields.FileField(id='0', label='file')] |
wcs/qommon/form.py | ||
---|---|---|
1134 | 1134 |
self.hint = kwargs.get('hint') |
1135 | 1135 |
if self.hint is None: |
1136 | 1136 |
self.hint = _('Please answer this simple mathematical question as proof you are not a bot.') |
1137 |
self.add(StringWidget, 'q', required=True) |
|
1137 |
self.add(StringWidget, 'q', required=True, attrs={'required': 'required'})
|
|
1138 | 1138 |
token['answer'] = str(answer) |
1139 | 1139 | |
1140 | 1140 |
def _parse(self, request): |
... | ... | |
1144 | 1144 |
if v['answer'] and token and token['answer'] == v['answer'].strip(): |
1145 | 1145 |
get_session().won_captcha = True |
1146 | 1146 |
self.value = v |
1147 |
else:
|
|
1147 |
elif v['answer']:
|
|
1148 | 1148 |
self.error = _('wrong answer') |
1149 | 1149 | |
1150 | 1150 |
def get_title(self): |
1151 |
- |