|
a/AlluraTesting/alluratest/validation.py |
|
b/AlluraTesting/alluratest/validation.py |
|
... |
|
... |
266 |
if Config.instance().validation_enabled('html5'):
|
266 |
if Config.instance().validation_enabled('html5'):
|
267 |
validate_html(html_or_response)
|
267 |
validate_html(html_or_response)
|
268 |
if Config.instance().validation_enabled('inlinejs'):
|
268 |
if Config.instance().validation_enabled('inlinejs'):
|
269 |
validate_js(html_or_response)
|
269 |
validate_js(html_or_response)
|
270 |
|
270 |
|
271 |
|
|
|
272 |
class AntiSpamTestApp(TestApp):
|
271 |
class AntiSpamTestApp(TestApp):
|
273 |
|
272 |
|
274 |
def post(self, *args, **kwargs):
|
273 |
def post(self, *args, **kwargs):
|
275 |
if kwargs.pop('antispam', False):
|
274 |
if kwargs.pop('antispam', False):
|
276 |
antispam = utils.AntiSpam()
|
275 |
antispam = utils.AntiSpam()
|
|
... |
|
... |
283 |
for k, v in kwargs['params'].iteritems():
|
282 |
for k, v in kwargs['params'].iteritems():
|
284 |
params[antispam.enc(k)] = v
|
283 |
params[antispam.enc(k)] = v
|
285 |
kwargs['params'] = params
|
284 |
kwargs['params'] = params
|
286 |
return super(AntiSpamTestApp, self).post(*args, **kwargs)
|
285 |
return super(AntiSpamTestApp, self).post(*args, **kwargs)
|
287 |
|
286 |
|
288 |
class ValidatingTestApp(AntiSpamTestApp):
|
287 |
class PostParamCheckingTestApp(AntiSpamTestApp):
|
|
|
288 |
|
|
|
289 |
def _validate_params(self, params, method):
|
|
|
290 |
if not params:
|
|
|
291 |
return
|
|
|
292 |
# params can be a list or a dict
|
|
|
293 |
if hasattr(params, 'items'):
|
|
|
294 |
params = params.items()
|
|
|
295 |
for k, v in params:
|
|
|
296 |
if not isinstance(k, basestring):
|
|
|
297 |
raise TypeError('%s key %s is %s, not str' % (method, k, type(k)))
|
|
|
298 |
if not isinstance(v, basestring):
|
|
|
299 |
raise TypeError('%s key %s has value %s of type %s, not str. ' % (method, k, v, type(v)))
|
|
|
300 |
|
|
|
301 |
def get(self, *args, **kwargs):
|
|
|
302 |
self._validate_params(kwargs.get('params'), 'get')
|
|
|
303 |
return super(PostParamCheckingTestApp, self).get(*args, **kwargs)
|
|
|
304 |
|
|
|
305 |
def post(self, *args, **kwargs):
|
|
|
306 |
self._validate_params(kwargs.get('params'), 'post')
|
|
|
307 |
return super(PostParamCheckingTestApp, self).post(*args, **kwargs)
|
|
|
308 |
|
|
|
309 |
class ValidatingTestApp(PostParamCheckingTestApp):
|
289 |
|
310 |
|
290 |
# Subclasses may set this to True to skip validation altogether
|
311 |
# Subclasses may set this to True to skip validation altogether
|
291 |
validate_skip = False
|
312 |
validate_skip = False
|
292 |
|
313 |
|
293 |
def _validate(self, resp, method, val_params):
|
314 |
def _validate(self, resp, method, val_params):
|