Function Captchas

Dorthu        
0 Likes   0 Comments  python

>>> def captcha(challenge=None, answer=None):
...   def _dec(f):
...     @wraps(f)
...     def _inner(*args, **kwargs):
...       if not challenge in kwargs or not kwargs[challenge] == answer:
...         raise ValueError('captcha failed!')
...       del kwargs[challenge]
...       return f(*args, **kwargs)
...     return _inner
...   return _dec
...
>>> @captcha(challenge='two_plus_three', answer=5)
... def foo(bar):
...   print("bar is {}".format(bar))
...
>>> foo('test')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in _inner
ValueError: captcha failed!
>>> foo('test', two_plus_three=5)
bar is test
created with codestagram