33from urllib .parse import parse_qs , urlparse
44
55from slack_sdk .errors import SlackRequestError
6+ from slack_sdk .models .blocks .basic_components import FeedbackButtonObject
7+ from slack_sdk .models .blocks .block_elements import FeedbackButtonsElement , IconButtonElement
8+ from slack_sdk .models .blocks .blocks import ContextActionsBlock
69from slack_sdk .web .async_client import AsyncWebClient
710from tests .mock_web_api_server import cleanup_mock_web_api_server , setup_mock_web_api_server
811from tests .slack_sdk .web .mock_web_api_handler import MockHandler
@@ -119,7 +122,24 @@ async def test_streams_a_long_message(self):
119122 await streamer .append (markdown_text = "e is" , token = "xoxb-chat_stream_test_token1" )
120123 await streamer .append (markdown_text = " bold!" )
121124 await streamer .append (markdown_text = "*" )
122- await streamer .stop (markdown_text = "*" , token = "xoxb-chat_stream_test_token2" )
125+ await streamer .stop (
126+ blocks = [
127+ ContextActionsBlock (
128+ elements = [
129+ FeedbackButtonsElement (
130+ positive_button = FeedbackButtonObject (text = "good" , value = "+1" ),
131+ negative_button = FeedbackButtonObject (text = "bad" , value = "-1" ),
132+ ),
133+ IconButtonElement (
134+ icon = "trash" ,
135+ text = "delete" ,
136+ ),
137+ ],
138+ )
139+ ],
140+ markdown_text = "*" ,
141+ token = "xoxb-chat_stream_test_token2" ,
142+ )
123143
124144 self .assertEqual (self .received_requests .get ("/chat.startStream" , 0 ), 1 )
125145 self .assertEqual (self .received_requests .get ("/chat.appendStream" , 0 ), 1 )
@@ -140,6 +160,10 @@ async def test_streams_a_long_message(self):
140160 self .assertEqual (append_request .get ("ts" ), "123.123" )
141161
142162 stop_request = self .thread .server .chat_stream_requests .get ("/chat.stopStream" , {})
163+ self .assertEqual (
164+ json .dumps (stop_request .get ("blocks" )),
165+ '[{"elements": [{"negative_button": {"text": {"emoji": true, "text": "bad", "type": "plain_text"}, "value": "-1"}, "positive_button": {"text": {"emoji": true, "text": "good", "type": "plain_text"}, "value": "+1"}, "type": "feedback_buttons"}, {"icon": "trash", "text": {"emoji": true, "text": "delete", "type": "plain_text"}, "type": "icon_button"}], "type": "context_actions"}]' ,
166+ )
143167 self .assertEqual (stop_request .get ("channel" ), "C0123456789" )
144168 self .assertEqual (stop_request .get ("markdown_text" ), "**" )
145169 self .assertEqual (stop_request .get ("token" ), "xoxb-chat_stream_test_token2" )
0 commit comments