def test_deletes_some_tasks(self, mocker):
        mock_task_from_id = mocker.patch("cli.schedule.get_task_from_id")

        runner.invoke(delete_app, ["id", "24", "42"])

        assert mock_task_from_id.call_args_list == [
            call(24, no_exit=True),
            call(42, no_exit=True),
        ]
        assert mock_task_from_id.return_value.method_calls == [
            call.delete_schedule(),
            call.delete_schedule(),
        ]
    def test_deletes_all_tasks_when_forced(self, task_list, mock_confirm):
        runner.invoke(delete_app, ["all", "--force"])

        assert mock_confirm.call_count == 0
        assert task_list.call_count == 1
        for task in task_list.return_value.tasks:
            assert task.method_calls == [call.delete_schedule()]
    def test_deletes_all_when_forced(self, task_list, mocker):
        mock_input = mocker.patch("scripts.pa_delete_scheduled_task.input")

        _delete_all(force=True)

        assert mock_input.call_count == 0
        assert task_list.call_count == 1
        for task in task_list.return_value.tasks:
            assert task.method_calls == [call.delete_schedule()]
    def test_deletes_one_task(self, mocker):
        mock_task_from_id = mocker.patch(
            "scripts.pa_delete_scheduled_task.get_task_from_id")

        _delete_by_id(id_numbers=[42])

        assert mock_task_from_id.call_args == call(42, no_exit=True)
        assert mock_task_from_id.return_value.method_calls == [
            call.delete_schedule()
        ]
    def test_deletes_all_tasks_with_user_permission(self, task_list, mock_confirm):
        mock_confirm.return_value = True

        runner.invoke(delete_app, ["all"])

        assert mock_confirm.call_args == call(
            "This will irrevocably delete all your tasks, proceed?"
        )
        assert task_list.call_count == 1
        for task in task_list.return_value.tasks:
            assert task.method_calls == [call.delete_schedule()]
    def test_deletes_all_tasks_with_user_permission(self, task_list, mocker):
        mock_input = mocker.patch("scripts.pa_delete_scheduled_task.input")
        mock_input.return_value = "y"

        _delete_all(force=False)

        assert mock_input.call_args == call(
            "This will irrevocably delete all your tasks, proceed? [y/N] ")
        assert task_list.call_count == 1
        for task in task_list.return_value.tasks:
            assert task.method_calls == [call.delete_schedule()]