@@ -324,3 +324,151 @@ async def test_reject_with_message(task_updater, event_queue, sample_message):
324324 assert event .status .state == TaskState .rejected
325325 assert event .final is True
326326 assert event .status .message == sample_message
327+
328+
329+ @pytest .mark .asyncio
330+ async def test_requires_input_without_message (task_updater , event_queue ):
331+ """Test marking a task as input required without a message."""
332+ await task_updater .requires_input ()
333+
334+ event_queue .enqueue_event .assert_called_once ()
335+ event = event_queue .enqueue_event .call_args [0 ][0 ]
336+
337+ assert isinstance (event , TaskStatusUpdateEvent )
338+ assert event .status .state == TaskState .input_required
339+ assert event .final is False
340+ assert event .status .message is None
341+
342+
343+ @pytest .mark .asyncio
344+ async def test_requires_input_with_message (
345+ task_updater , event_queue , sample_message
346+ ):
347+ """Test marking a task as input required with a message."""
348+ await task_updater .requires_input (message = sample_message )
349+
350+ event_queue .enqueue_event .assert_called_once ()
351+ event = event_queue .enqueue_event .call_args [0 ][0 ]
352+
353+ assert isinstance (event , TaskStatusUpdateEvent )
354+ assert event .status .state == TaskState .input_required
355+ assert event .final is False
356+ assert event .status .message == sample_message
357+
358+
359+ @pytest .mark .asyncio
360+ async def test_requires_input_final_true (task_updater , event_queue ):
361+ """Test marking a task as input required with final=True."""
362+ await task_updater .requires_input (final = True )
363+
364+ event_queue .enqueue_event .assert_called_once ()
365+ event = event_queue .enqueue_event .call_args [0 ][0 ]
366+
367+ assert isinstance (event , TaskStatusUpdateEvent )
368+ assert event .status .state == TaskState .input_required
369+ assert event .final is True
370+ assert event .status .message is None
371+
372+
373+ @pytest .mark .asyncio
374+ async def test_requires_input_with_message_and_final (
375+ task_updater , event_queue , sample_message
376+ ):
377+ """Test marking a task as input required with message and final=True."""
378+ await task_updater .requires_input (message = sample_message , final = True )
379+
380+ event_queue .enqueue_event .assert_called_once ()
381+ event = event_queue .enqueue_event .call_args [0 ][0 ]
382+
383+ assert isinstance (event , TaskStatusUpdateEvent )
384+ assert event .status .state == TaskState .input_required
385+ assert event .final is True
386+ assert event .status .message == sample_message
387+
388+
389+ @pytest .mark .asyncio
390+ async def test_requires_auth_without_message (task_updater , event_queue ):
391+ """Test marking a task as auth required without a message."""
392+ await task_updater .requires_auth ()
393+
394+ event_queue .enqueue_event .assert_called_once ()
395+ event = event_queue .enqueue_event .call_args [0 ][0 ]
396+
397+ assert isinstance (event , TaskStatusUpdateEvent )
398+ assert event .status .state == TaskState .auth_required
399+ assert event .final is False
400+ assert event .status .message is None
401+
402+
403+ @pytest .mark .asyncio
404+ async def test_requires_auth_with_message (
405+ task_updater , event_queue , sample_message
406+ ):
407+ """Test marking a task as auth required with a message."""
408+ await task_updater .requires_auth (message = sample_message )
409+
410+ event_queue .enqueue_event .assert_called_once ()
411+ event = event_queue .enqueue_event .call_args [0 ][0 ]
412+
413+ assert isinstance (event , TaskStatusUpdateEvent )
414+ assert event .status .state == TaskState .auth_required
415+ assert event .final is False
416+ assert event .status .message == sample_message
417+
418+
419+ @pytest .mark .asyncio
420+ async def test_requires_auth_final_true (task_updater , event_queue ):
421+ """Test marking a task as auth required with final=True."""
422+ await task_updater .requires_auth (final = True )
423+
424+ event_queue .enqueue_event .assert_called_once ()
425+ event = event_queue .enqueue_event .call_args [0 ][0 ]
426+
427+ assert isinstance (event , TaskStatusUpdateEvent )
428+ assert event .status .state == TaskState .auth_required
429+ assert event .final is True
430+ assert event .status .message is None
431+
432+
433+ @pytest .mark .asyncio
434+ async def test_requires_auth_with_message_and_final (
435+ task_updater , event_queue , sample_message
436+ ):
437+ """Test marking a task as auth required with message and final=True."""
438+ await task_updater .requires_auth (message = sample_message , final = True )
439+
440+ event_queue .enqueue_event .assert_called_once ()
441+ event = event_queue .enqueue_event .call_args [0 ][0 ]
442+
443+ assert isinstance (event , TaskStatusUpdateEvent )
444+ assert event .status .state == TaskState .auth_required
445+ assert event .final is True
446+ assert event .status .message == sample_message
447+
448+
449+ @pytest .mark .asyncio
450+ async def test_cancel_without_message (task_updater , event_queue ):
451+ """Test marking a task as cancelled without a message."""
452+ await task_updater .cancel ()
453+
454+ event_queue .enqueue_event .assert_called_once ()
455+ event = event_queue .enqueue_event .call_args [0 ][0 ]
456+
457+ assert isinstance (event , TaskStatusUpdateEvent )
458+ assert event .status .state == TaskState .canceled
459+ assert event .final is True
460+ assert event .status .message is None
461+
462+
463+ @pytest .mark .asyncio
464+ async def test_cancel_with_message (task_updater , event_queue , sample_message ):
465+ """Test marking a task as cancelled with a message."""
466+ await task_updater .cancel (message = sample_message )
467+
468+ event_queue .enqueue_event .assert_called_once ()
469+ event = event_queue .enqueue_event .call_args [0 ][0 ]
470+
471+ assert isinstance (event , TaskStatusUpdateEvent )
472+ assert event .status .state == TaskState .canceled
473+ assert event .final is True
474+ assert event .status .message == sample_message
0 commit comments