def test_jsonrpc_superuser_auth(live_server, superuser, common_pwd):

    c = HTTPClient(live_server.url + '/all-rpc/')
    c.session.auth = (superuser.username, common_pwd)

    assert c.logged_user_required(5) == 5
    assert c.logged_user_required_alt(5) == 5
    assert c.logged_superuser_required(5) == 5
    assert c.logged_superuser_required_alt(5) == 5
    assert c.delete_user_perm_required(5) == 5
    assert c.any_permission_required(5) == 5
    assert c.all_permissions_required(5) == 5
    assert c.in_group_A_required(5) == 5
    assert c.in_groups_A_and_B_required(5) == 5
    assert c.in_groups_A_and_B_required_alt(5) == 5
    assert c.in_group_A_or_B_required(5) == 5
def test_jsonrpc_user_permissions(live_server, john_doe, common_pwd,
                                  delete_user_perm, add_user_perm,
                                  change_user_perm):

    c = HTTPClient(live_server.url + '/all-rpc/')
    c.session.auth = (john_doe.username, common_pwd)

    john_doe.user_permissions.add(delete_user_perm)

    assert c.delete_user_perm_required(5) == 5
    assert c.any_permission_required(5) == 5

    with raises(ReceivedErrorResponse) as exc_info:
        c.all_permissions_required(5)

    assert exc_info.value.code == RPC_INTERNAL_ERROR

    john_doe.user_permissions.add(add_user_perm, change_user_perm)
    assert c.all_permissions_required(5) == 5