Skip to content

Commit eda8e73

Browse files
surface the buffer_size override
1 parent 42b6c4d commit eda8e73

File tree

4 files changed

+65
-6
lines changed

4 files changed

+65
-6
lines changed

slack_bolt/context/say_stream/async_say_stream.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@ def __init__(
3232
async def __call__(
3333
self,
3434
*,
35+
buffer_size: Optional[int] = None,
3536
channel: Optional[str] = None,
36-
thread_ts: Optional[str] = None,
3737
recipient_team_id: Optional[str] = None,
3838
recipient_user_id: Optional[str] = None,
39+
thread_ts: Optional[str] = None,
3940
**kwargs,
4041
) -> AsyncChatStream:
4142
warnings.warn(
@@ -51,6 +52,15 @@ async def __call__(
5152
if thread_ts is None:
5253
raise ValueError("say_stream without thread_ts here is unsupported")
5354

55+
if buffer_size is not None:
56+
return await self.client.chat_stream(
57+
channel=channel,
58+
thread_ts=thread_ts,
59+
buffer_size=buffer_size,
60+
recipient_team_id=recipient_team_id or self.recipient_team_id,
61+
recipient_user_id=recipient_user_id or self.recipient_user_id,
62+
**kwargs,
63+
)
5464
return await self.client.chat_stream(
5565
channel=channel,
5666
thread_ts=thread_ts,

slack_bolt/context/say_stream/say_stream.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@ def __init__(
3232
def __call__(
3333
self,
3434
*,
35+
buffer_size: Optional[int] = None,
3536
channel: Optional[str] = None,
36-
thread_ts: Optional[str] = None,
3737
recipient_team_id: Optional[str] = None,
3838
recipient_user_id: Optional[str] = None,
39+
thread_ts: Optional[str] = None,
3940
**kwargs,
4041
) -> ChatStream:
4142
warnings.warn(
@@ -51,6 +52,15 @@ def __call__(
5152
if thread_ts is None:
5253
raise ValueError("say_stream without thread_ts here is unsupported")
5354

55+
if buffer_size is not None:
56+
return self.client.chat_stream(
57+
channel=channel,
58+
thread_ts=thread_ts,
59+
buffer_size=buffer_size,
60+
recipient_team_id=recipient_team_id or self.recipient_team_id,
61+
recipient_user_id=recipient_user_id or self.recipient_user_id,
62+
**kwargs,
63+
)
5464
return self.client.chat_stream(
5565
channel=channel,
5666
thread_ts=thread_ts,

tests/slack_bolt/context/test_say_stream.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88

99
class TestSayStream:
10+
default_chat_stream_buffer_size = WebClient.chat_stream.__kwdefaults__["buffer_size"]
11+
1012
def setup_method(self):
1113
setup_mock_web_api_server(self)
1214
valid_token = "xoxb-valid"
@@ -38,6 +40,7 @@ def test_default_params(self):
3840
)
3941
stream = say_stream()
4042

43+
assert stream._buffer_size == self.default_chat_stream_buffer_size
4144
assert stream._stream_args == {
4245
"channel": "C111",
4346
"thread_ts": "111.222",
@@ -56,6 +59,7 @@ def test_parameter_overrides(self):
5659
)
5760
stream = say_stream(channel="C222", thread_ts="333.444", recipient_team_id="T222", recipient_user_id="U222")
5861

62+
assert stream._buffer_size == self.default_chat_stream_buffer_size
5963
assert stream._stream_args == {
6064
"channel": "C222",
6165
"thread_ts": "333.444",
@@ -64,15 +68,30 @@ def test_parameter_overrides(self):
6468
"task_display_mode": None,
6569
}
6670

67-
def test_buffer_size_passthrough(self):
71+
def test_buffer_size_overrides(self):
6872
say_stream = SayStream(
6973
client=self.web_client,
7074
channel="C111",
7175
thread_ts="111.222",
76+
recipient_team_id="T111",
77+
recipient_user_id="U111",
78+
)
79+
stream = say_stream(
80+
buffer_size=100,
81+
channel="C222",
82+
thread_ts="333.444",
83+
recipient_team_id="T222",
84+
recipient_user_id="U222",
7285
)
73-
stream = say_stream(buffer_size=100)
7486

7587
assert stream._buffer_size == 100
88+
assert stream._stream_args == {
89+
"channel": "C222",
90+
"thread_ts": "333.444",
91+
"recipient_team_id": "T222",
92+
"recipient_user_id": "U222",
93+
"task_display_mode": None,
94+
}
7695

7796
def test_experimental_warning(self):
7897
say_stream = SayStream(

tests/slack_bolt_async/context/test_async_say_stream.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212

1313
class TestAsyncSayStream:
14+
default_chat_stream_buffer_size = AsyncWebClient.chat_stream.__kwdefaults__["buffer_size"]
15+
1416
@pytest.fixture(scope="function", autouse=True)
1517
def setup_teardown(self):
1618
old_os_env = remove_os_env_temporarily()
@@ -48,6 +50,8 @@ async def test_default_params(self):
4850
recipient_user_id="U111",
4951
)
5052
stream = await say_stream()
53+
54+
assert stream._buffer_size == self.default_chat_stream_buffer_size
5155
assert stream._stream_args == {
5256
"channel": "C111",
5357
"thread_ts": "111.222",
@@ -67,6 +71,7 @@ async def test_parameter_overrides(self):
6771
)
6872
stream = await say_stream(channel="C222", thread_ts="333.444", recipient_team_id="T222", recipient_user_id="U222")
6973

74+
assert stream._buffer_size == self.default_chat_stream_buffer_size
7075
assert stream._stream_args == {
7176
"channel": "C222",
7277
"thread_ts": "333.444",
@@ -76,15 +81,30 @@ async def test_parameter_overrides(self):
7681
}
7782

7883
@pytest.mark.asyncio
79-
async def test_buffer_size_passthrough(self):
84+
async def test_buffer_size_overrides(self):
8085
say_stream = AsyncSayStream(
8186
client=self.web_client,
8287
channel="C111",
8388
thread_ts="111.222",
89+
recipient_team_id="T111",
90+
recipient_user_id="U111",
91+
)
92+
stream = await say_stream(
93+
buffer_size=100,
94+
channel="C222",
95+
thread_ts="333.444",
96+
recipient_team_id="T222",
97+
recipient_user_id="U222",
8498
)
85-
stream = await say_stream(buffer_size=100)
8699

87100
assert stream._buffer_size == 100
101+
assert stream._stream_args == {
102+
"channel": "C222",
103+
"thread_ts": "333.444",
104+
"recipient_team_id": "T222",
105+
"recipient_user_id": "U222",
106+
"task_display_mode": None,
107+
}
88108

89109
@pytest.mark.asyncio
90110
async def test_experimental_warning(self):

0 commit comments

Comments
 (0)