示例#1
0
def test_verify_class_is_subclass_of_decode_token():
    def token_finder():
        return None

    db = DecoratorBuilder(verify_class=VerifyTokenAuth, token_finder_func=token_finder)
    protect = db.create()

    assert callable(protect) is True
示例#2
0
def test_auth_exception_with_invalid_scopes():
    def token_finder():
        return None

    db = DecoratorBuilder(verify_class=VerifyTokenAuth, token_finder_func=token_finder)
    protect = db.create()
    result = dict()

    @protect(user={'req': 'user'}, rule={'path': 'scopes.bar', 'op': 'eq1', 'value': 'foo'})
    def my_endpoint(user_token, *args, **kwargs):
        result['user_token'] = user_token
        return True

    res = my_endpoint()

    assert res == {'error': 'token not found'}
示例#3
0
def test_auth_exception():
    def token_finder():
        return None

    db = DecoratorBuilder(verify_class=VerifyTokenAuth, token_finder_func=token_finder)
    protect = db.create()
    result = dict()

    @protect()
    def my_endpoint(user_token, *args, **kwargs):
        result['user_token'] = user_token
        return True

    res = my_endpoint()

    assert res == {'error': 'token not found'}
示例#4
0
def test_verify_class_is_not_subclass_of_decode_token():
    def token_finder():
        return None

    class Foo:
        pass

    with pytest.raises(AttributeError):
        DecoratorBuilder(verify_class=Foo, token_finder_func=token_finder)
示例#5
0
def test_create_decorator():
    def token_finder():
        return {'token': 'bar'}

    db = DecoratorBuilder(verify_class=VerifyTokenAuth, token_finder_func=token_finder)
    protect = db.create()
    result = dict()

    @protect(user={'req': 'user'})
    def my_endpoint(user_token, *args, **kwargs):
        result['user_token'] = user_token
        return True

    res = my_endpoint()
    usr_token = result['user_token']

    assert res is True
    assert usr_token is not None
    assert usr_token['username'] == 'crl'
示例#6
0
def test_auth_with_valid_scopes():
    def token_finder():
        return {'token': 'bar'}

    db = DecoratorBuilder(verify_class=VerifyTokenAuth, token_finder_func=token_finder)
    protect = db.create()
    result = dict()

    @protect(user={'req': 'user'}, rule={'path': 'scopes.bar', 'op': 'eq', 'value': 'foo'})
    def my_endpoint(user_token, *args, **kwargs):
        result['user_token'] = user_token
        return True

    res = my_endpoint()
    usr_token = result['user_token']

    assert res is True
    assert usr_token is not None
    assert usr_token['username'] == 'crl'
示例#7
0
def test_auth_with_valid_scopes():
    def token_finder():
        return {'token': 'bar'}

    db = DecoratorBuilder(verify_class=VerifyTokenAuth,
                          token_finder_func=token_finder)
    protect = db.create()
    result = dict()

    @protect(scopes_check={'bar': 'foo'})
    def my_endpoint(user_token, *args, **kwargs):
        result['user_token'] = user_token
        return True

    res = my_endpoint()
    usr_token = result['user_token']

    assert res is True
    assert usr_token is not None
    assert usr_token.username == 'crl'
示例#8
0
def test_token_finder_func_is_not_callable():
    token = {}

    with pytest.raises(AttributeError):
        DecoratorBuilder(verify_class=VerifyTokenAuth, token_finder_func=token)