11import pytest
2+ from unittest .mock import patch , MagicMock
3+
24from slack_sdk import WebClient
35
46from slack_bolt .context .say_stream .say_stream import SayStream
5- from tests .mock_web_api_server import cleanup_mock_web_api_server , setup_mock_web_api_server
67
78
89class TestSayStream :
9- default_chat_stream_buffer_size = WebClient .chat_stream .__kwdefaults__ ["buffer_size" ]
10-
1110 def setup_method (self ):
12- setup_mock_web_api_server (self )
13- valid_token = "xoxb-valid"
14- mock_api_server_base_url = "http://localhost:8888"
15- self .web_client = WebClient (token = valid_token , base_url = mock_api_server_base_url )
16-
17- def teardown_method (self ):
18- cleanup_mock_web_api_server (self )
11+ self .web_client = WebClient (token = "xoxb-valid" )
1912
2013 def test_missing_channel_raises (self ):
2114 say_stream = SayStream (client = self .web_client , channel = None , thread_ts = "111.222" )
@@ -35,16 +28,17 @@ def test_default_params(self):
3528 recipient_user_id = "U111" ,
3629 thread_ts = "111.222" ,
3730 )
38- stream = say_stream ()
39-
40- assert stream ._buffer_size == self .default_chat_stream_buffer_size
41- assert stream ._stream_args == {
42- "channel" : "C111" ,
43- "thread_ts" : "111.222" ,
44- "recipient_team_id" : "T111" ,
45- "recipient_user_id" : "U111" ,
46- "task_display_mode" : None ,
47- }
31+ with patch .object (self .web_client , "chat_stream" , return_value = MagicMock ()) as mock_chat_stream :
32+ say_stream ()
33+ mock_chat_stream .assert_called_once_with (
34+ channel = "C111" ,
35+ recipient_team_id = "T111" ,
36+ recipient_user_id = "U111" ,
37+ thread_ts = "111.222" ,
38+ icon_emoji = None ,
39+ icon_url = None ,
40+ username = None ,
41+ )
4842
4943 def test_parameter_overrides (self ):
5044 say_stream = SayStream (
@@ -54,16 +48,17 @@ def test_parameter_overrides(self):
5448 recipient_user_id = "U111" ,
5549 thread_ts = "111.222" ,
5650 )
57- stream = say_stream (channel = "C222" , thread_ts = "333.444" , recipient_team_id = "T222" , recipient_user_id = "U222" )
58-
59- assert stream ._buffer_size == self .default_chat_stream_buffer_size
60- assert stream ._stream_args == {
61- "channel" : "C222" ,
62- "thread_ts" : "333.444" ,
63- "recipient_team_id" : "T222" ,
64- "recipient_user_id" : "U222" ,
65- "task_display_mode" : None ,
66- }
51+ with patch .object (self .web_client , "chat_stream" , return_value = MagicMock ()) as mock_chat_stream :
52+ say_stream (channel = "C222" , thread_ts = "333.444" , recipient_team_id = "T222" , recipient_user_id = "U222" )
53+ mock_chat_stream .assert_called_once_with (
54+ channel = "C222" ,
55+ recipient_team_id = "T222" ,
56+ recipient_user_id = "U222" ,
57+ thread_ts = "333.444" ,
58+ icon_emoji = None ,
59+ icon_url = None ,
60+ username = None ,
61+ )
6762
6863 def test_buffer_size_overrides (self ):
6964 say_stream = SayStream (
@@ -73,19 +68,41 @@ def test_buffer_size_overrides(self):
7368 recipient_user_id = "U111" ,
7469 thread_ts = "111.222" ,
7570 )
76- stream = say_stream (
77- buffer_size = 100 ,
78- channel = "C222" ,
79- thread_ts = "333.444" ,
80- recipient_team_id = "T222" ,
81- recipient_user_id = "U222" ,
82- )
71+ with patch .object (self .web_client , "chat_stream" , return_value = MagicMock ()) as mock_chat_stream :
72+ say_stream (
73+ buffer_size = 100 ,
74+ channel = "C222" ,
75+ thread_ts = "333.444" ,
76+ recipient_team_id = "T222" ,
77+ recipient_user_id = "U222" ,
78+ )
79+ mock_chat_stream .assert_called_once_with (
80+ buffer_size = 100 ,
81+ channel = "C222" ,
82+ recipient_team_id = "T222" ,
83+ recipient_user_id = "U222" ,
84+ thread_ts = "333.444" ,
85+ icon_emoji = None ,
86+ icon_url = None ,
87+ username = None ,
88+ )
8389
84- assert stream ._buffer_size == 100
85- assert stream ._stream_args == {
86- "channel" : "C222" ,
87- "thread_ts" : "333.444" ,
88- "recipient_team_id" : "T222" ,
89- "recipient_user_id" : "U222" ,
90- "task_display_mode" : None ,
91- }
90+ def test_authorship_overrides (self ):
91+ say_stream = SayStream (
92+ client = self .web_client ,
93+ channel = "C111" ,
94+ recipient_team_id = "T111" ,
95+ recipient_user_id = "U111" ,
96+ thread_ts = "111.222" ,
97+ )
98+ with patch .object (self .web_client , "chat_stream" , return_value = MagicMock ()) as mock_chat_stream :
99+ say_stream (icon_emoji = ":maple_leaf:" , username = "Charlie Brown" )
100+ mock_chat_stream .assert_called_once_with (
101+ channel = "C111" ,
102+ recipient_team_id = "T111" ,
103+ recipient_user_id = "U111" ,
104+ thread_ts = "111.222" ,
105+ icon_emoji = ":maple_leaf:" ,
106+ icon_url = None ,
107+ username = "Charlie Brown" ,
108+ )
0 commit comments