def test_delete_published_folder(published_folder):
    path, folder_name, *_ = published_folder

    response = helper.delete_resources_response(params=dict(path=path))

    check.response_has_status_code(response, 202, 204)

    with allure.step("Waiting when folder will be deleted"):
        wait(predicate=lambda: helper.get_resources_response(params=dict(
            path=path)).status_code == 404,
             timeout_seconds=30,
             sleep_seconds=(1, 2, 4))

    with allure.step("Deleted folder should be in trash folder"):
        folder_in_trash = helper.get_trash_resources(params=dict(
            path=folder_name))
        assert folder_in_trash[
            'name'] == folder_name, 'Unable to find deleted folder in trash'

    with allure.step("Deleted folder should be unpublished"):
        items = helper.get_public_resources().get('items')
        items_by_name = [
            item for item in items if item.get('name') == folder_name
        ]
        assert len(items_by_name) == 0, "Deleted file still published"
def test_delete_folder_force_async(temp_folder):
    path, folder_name, *_ = temp_folder()

    response = helper.delete_resources_response(
        params=dict(path=path, force_async=True))
    check.response_has_status_code(response, 202)

    operation_id = helper.get_operation_id_from_response(response)
    helper.when_operation_status(operation_id=operation_id, status='success')

    with allure.step("Deleted folder should be in trash folder"):
        file_in_trash = helper.get_trash_resources(params=dict(
            path=folder_name))
        assert file_in_trash[
            'name'] == folder_name, 'Unable to find deleted folder in trash'
def test_delete_file(temp_file):
    path, file_name, *_ = temp_file()

    response = helper.delete_resources_response(params=dict(path=path))

    check.response_has_status_code(response, 202, 204)

    with allure.step("Waiting when file will be deleted"):
        wait(predicate=lambda: helper.get_resources_response(params=dict(
            path=path)).status_code == 404,
             timeout_seconds=30,
             sleep_seconds=(1, 2, 4))

    with allure.step("Deleted file should be in trash folder"):
        file_in_trash = helper.get_trash_resources(params=dict(path=file_name))
        assert file_in_trash[
            'name'] == file_name, 'Unable to find deleted file in trash'