def METHOD_NAME(self, client, **kwargs):
    set_bodiless_matcher()
    # list initial role definitions
    scope = KeyVaultRoleScope.GLOBAL
    original_definitions = [d for d in client.list_role_definitions(scope)]
    assert len(original_definitions)
    # create custom role definition
    role_name = self.get_resource_name("role-name")
    definition_name = self.get_replayable_uuid("definition-name")
    add_general_regex_sanitizer(regex=definition_name, value = "definition-name")
    permissions = [KeyVaultPermission(data_actions=[KeyVaultDataAction.READ_HSM_KEY])]
    created_definition = client.set_role_definition(
        scope=scope,
        name=definition_name,
        role_name=role_name,
        description="test",
        permissions=permissions
    )
    assert "/" in created_definition.assignable_scopes
    assert created_definition.role_name == role_name
    assert created_definition.name == definition_name
    assert created_definition.description == "test"
    assert len(created_definition.permissions) == 1
    assert created_definition.permissions[0].data_actions == [KeyVaultDataAction.READ_HSM_KEY]
    assert created_definition.assignable_scopes == [KeyVaultRoleScope.GLOBAL]
    # update custom role definition
    permissions = [
        KeyVaultPermission(data_actions=[], not_data_actions=[KeyVaultDataAction.READ_HSM_KEY])
    ]
    updated_definition = client.set_role_definition(
        scope=scope, name=definition_name, permissions=permissions
    )
    assert updated_definition.role_name == ""
    assert updated_definition.description == ""
    assert len(updated_definition.permissions) == 1
    assert len(updated_definition.permissions[0].data_actions) == 0
    assert updated_definition.permissions[0].not_data_actions == [KeyVaultDataAction.READ_HSM_KEY]
    assert updated_definition.assignable_scopes == [KeyVaultRoleScope.GLOBAL]
    # assert that the created role definition isn't duplicated
    matching_definitions = [d for d in client.list_role_definitions(scope) if d.id == updated_definition.id]
    assert len(matching_definitions) == 1
    # get custom role definition
    definition = client.get_role_definition(scope=scope, name=definition_name)
    assert_role_definitions_equal(definition, updated_definition)
    # delete custom role definition
    client.delete_role_definition(scope, definition_name)
    assert not any(d.id == definition.id for d in client.list_role_definitions(scope))
    if self.is_live:
        time.sleep(60)  # additional waiting to avoid conflicts with resources in other tests