def METHOD_NAME(
    app_api_client,
    page_type_list,
    page_file_attribute,
    permission_manage_page_types_and_attributes,
):
    # given
    app_api_client.app.permissions.add(permission_manage_page_types_and_attributes)
    page_type = page_type_list[1]
    page_type_count = len(page_type_list)
    page = Page.objects.filter(page_type=page_type.pk)[0]
    value = page_file_attribute.values.first()
    page_type.page_attributes.add(page_file_attribute)
    associate_attribute_values_to_instance(page, page_file_attribute, value)
    pages_pks = list(
        Page.objects.filter(page_type__in=page_type_list).values_list("pk", flat=True)
    )
    variables = {
        "ids": [
            graphene.Node.to_global_id("PageType", page_type.pk)
            for page_type in page_type_list
        ]
    }
    # when
    response = app_api_client.post_graphql(PAGE_TYPE_BULK_DELETE_MUTATION, variables)
    # then
    content = get_graphql_content(response)
    data = content["data"]["pageTypeBulkDelete"]
    assert not data["errors"]
    assert data["count"] == page_type_count
    with pytest.raises(page_type._meta.model.DoesNotExist):
        page_type.refresh_from_db()
    with pytest.raises(value._meta.model.DoesNotExist):
        value.refresh_from_db()
    assert not Page.objects.filter(pk__in=pages_pks)