Skip to content

Commit 38ec262

Browse files
committed
test: confirm context actions can be sent with stop
1 parent dc88b03 commit 38ec262

File tree

2 files changed

+50
-2
lines changed

2 files changed

+50
-2
lines changed

tests/slack_sdk/web/test_chat_stream.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
from slack_sdk import WebClient
66
from slack_sdk.errors import SlackRequestError
7+
from slack_sdk.models.blocks.basic_components import FeedbackButtonObject
8+
from slack_sdk.models.blocks.block_elements import FeedbackButtonsElement, IconButtonElement
9+
from slack_sdk.models.blocks.blocks import ContextActionsBlock
710
from tests.mock_web_api_server import cleanup_mock_web_api_server, setup_mock_web_api_server
811
from tests.slack_sdk.web.mock_web_api_handler import MockHandler
912

@@ -116,7 +119,24 @@ def test_streams_a_long_message(self):
116119
streamer.append(markdown_text="e is", token="xoxb-chat_stream_test_token1")
117120
streamer.append(markdown_text=" bold!")
118121
streamer.append(markdown_text="*")
119-
streamer.stop(markdown_text="*", token="xoxb-chat_stream_test_token2")
122+
streamer.stop(
123+
blocks=[
124+
ContextActionsBlock(
125+
elements=[
126+
FeedbackButtonsElement(
127+
positive_button=FeedbackButtonObject(text="good", value="+1"),
128+
negative_button=FeedbackButtonObject(text="bad", value="-1"),
129+
),
130+
IconButtonElement(
131+
icon="trash",
132+
text="delete",
133+
),
134+
],
135+
)
136+
],
137+
markdown_text="*",
138+
token="xoxb-chat_stream_test_token2",
139+
)
120140

121141
self.assertEqual(self.received_requests.get("/chat.startStream", 0), 1)
122142
self.assertEqual(self.received_requests.get("/chat.appendStream", 0), 1)
@@ -137,6 +157,10 @@ def test_streams_a_long_message(self):
137157
self.assertEqual(append_request.get("ts"), "123.123")
138158

139159
stop_request = self.thread.server.chat_stream_requests.get("/chat.stopStream", {})
160+
self.assertEqual(
161+
json.dumps(stop_request.get("blocks")),
162+
'[{"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"}]',
163+
)
140164
self.assertEqual(stop_request.get("channel"), "C0123456789")
141165
self.assertEqual(stop_request.get("markdown_text"), "**")
142166
self.assertEqual(stop_request.get("token"), "xoxb-chat_stream_test_token2")

tests/slack_sdk_async/web/test_async_chat_stream.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
from urllib.parse import parse_qs, urlparse
44

55
from 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
69
from slack_sdk.web.async_client import AsyncWebClient
710
from tests.mock_web_api_server import cleanup_mock_web_api_server, setup_mock_web_api_server
811
from 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

Comments
 (0)