@@ -493,3 +493,34 @@ def callback_handler(**kwargs):
493
493
None ,
494
494
"test prompt" ,
495
495
)
496
+
497
+
498
+ def test_process_stream_redacted_content_callback ():
499
+ callback_args = []
500
+
501
+ def callback_handler (** kwargs ):
502
+ callback_args .append (kwargs )
503
+
504
+ response = [
505
+ {"messageStart" : {"role" : "assistant" }},
506
+ {"contentBlockStart" : {"start" : {}}},
507
+ {"contentBlockDelta" : {"delta" : {"reasoningContent" : {"redactedContent" : b"encoded_data_1" }}}},
508
+ {"contentBlockDelta" : {"delta" : {"reasoningContent" : {"redactedContent" : b"encoded_data_2" }}}},
509
+ {"contentBlockStop" : {}},
510
+ {"messageStop" : {"stopReason" : "end_turn" }},
511
+ ]
512
+
513
+ messages = [{"role" : "user" , "content" : [{"text" : "Some input!" }]}]
514
+
515
+ strands .event_loop .streaming .process_stream (response , callback_handler , messages )
516
+
517
+ redacted_callbacks = [args for args in callback_args if "redactedContent" in args ]
518
+ assert len (redacted_callbacks ) == 2
519
+
520
+ assert redacted_callbacks [0 ]["redactedContent" ] == b"encoded_data_1"
521
+ assert redacted_callbacks [0 ]["delta" ] == {"reasoningContent" : {"redactedContent" : b"encoded_data_1" }}
522
+ assert redacted_callbacks [0 ]["reasoning" ] is True
523
+
524
+ assert redacted_callbacks [1 ]["redactedContent" ] == b"encoded_data_2"
525
+ assert redacted_callbacks [1 ]["delta" ] == {"reasoningContent" : {"redactedContent" : b"encoded_data_2" }}
526
+ assert redacted_callbacks [1 ]["reasoning" ] is True
0 commit comments