def validate_simple_token(request, **kwargs): if request.GET.get('token'): token = request.GET.get('token') # the token should have the format '{id}' id = parse_int_safe(token) if id is not None: request.validated['token_id'] = id return request.errors.add('querystring', 'token', 'invalid format')
def validate_token(request, **kwargs): if request.GET.get('token'): token = request.GET.get('token') # the token should have the format '{id},{datetime in isoformat}' if ',' in token: token_parts = token.split(',') if len(token_parts) == 2: id = parse_int_safe(token_parts[0]) time = parse_datetime(token_parts[1]) if id is not None and time: # everything ok request.validated['token_id'] = id request.validated['token_time'] = time return request.errors.add('querystring', 'token', 'invalid format')
def test_parse_int_safe_emptystr(): from webob.descriptors import parse_int_safe assert parse_int_safe('') == None
def test_parse_int_safe_none(): from webob.descriptors import parse_int_safe assert parse_int_safe(None) == None
def test_parse_int_safe_invalid(): from webob.descriptors import parse_int_safe eq_(parse_int_safe('abc'), None)
def test_parse_int_safe(): from webob.descriptors import parse_int_safe eq_(parse_int_safe('123'), 123)
def test_parse_int_safe(): from webob.descriptors import parse_int_safe assert parse_int_safe("123") == 123
def test_parse_int_safe_none(): from webob.descriptors import parse_int_safe assert parse_int_safe(None) is None
def test_parse_int_safe_emptystr(): from webob.descriptors import parse_int_safe eq_(parse_int_safe(''), None)
def test_parse_int_safe_none(): from webob.descriptors import parse_int_safe eq_(parse_int_safe(None), None)
def test_parse_int_safe_invalid(): from webob.descriptors import parse_int_safe assert parse_int_safe('abc') == None
def test_parse_int_safe(): from webob.descriptors import parse_int_safe assert parse_int_safe('123') == 123
def test_parse_int_safe_emptystr(): from webob.descriptors import parse_int_safe assert parse_int_safe("") is None
def test_parse_int_safe_invalid(): from webob.descriptors import parse_int_safe assert parse_int_safe("abc") is None