def METHOD_NAME(
    public_group,
    user_group2,
    upload_data_token,
    upload_data_token_group2,
    group_admin_token,
):
    # Have user_group2 request access to public_group
    request_data = {"groupID": public_group.id, "userID": user_group2.id}
    status, data = api(
        "POST",
        "group_admission_requests",
        data=request_data,
        token=upload_data_token_group2,
    )
    assert status == 200
    assert data["status"] == "success"
    request_id = data["data"]["id"]
    # Regular user is not a group admin and cannot approve the request
    status, data = api(
        "PATCH",
        f"group_admission_requests/{request_id}",
        data={"status": "accepted"},
        token=upload_data_token,
    )
    assert status == 400
    assert "Insufficient permissions for operation" in data["message"]
    # Nor can the requesting user do so
    status, data = api(
        "PATCH",
        f"group_admission_requests/{request_id}",
        data={"status": "accepted"},
        token=upload_data_token_group2,
    )
    assert status == 400
    assert (
        "Insufficient permissions: group admission request status can only be changed by group admins."
        in data["message"]
    )
    # The group admin can approve the request
    status, data = api(
        "PATCH",
        f"group_admission_requests/{request_id}",
        data={"status": "accepted"},
        token=group_admin_token,
    )
    assert status == 200
    assert data["status"] == "success"