Skip to content

Commit 44e5554

Browse files
authored
Fix #1053 by changing request body format to params (#1054)
1 parent 3422a23 commit 44e5554

6 files changed

Lines changed: 80 additions & 32 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import logging
2+
import os
3+
import time
4+
import unittest
5+
6+
from integration_tests.env_variable_names import SLACK_SDK_TEST_BOT_TOKEN
7+
from slack_sdk.web import WebClient
8+
9+
10+
class TestWebClient(unittest.TestCase):
11+
"""Runs integration tests with real Slack API
12+
13+
https://github.com/slackapi/python-slack-sdk/issues/1053
14+
"""
15+
16+
def setUp(self):
17+
self.logger = logging.getLogger(__name__)
18+
self.bot_token = os.environ[SLACK_SDK_TEST_BOT_TOKEN]
19+
20+
def tearDown(self):
21+
pass
22+
23+
def test_issue_1053(self):
24+
client: WebClient = WebClient(token=self.bot_token)
25+
self_user_id = client.auth_test()["user_id"]
26+
channel_name = f"test-channel-{str(time.time()).replace('.', '-')}"
27+
channel_id = None
28+
try:
29+
creation = client.conversations_create(name=channel_name)
30+
self.assertIsNone(creation.get("error"))
31+
channel_id = creation["channel"]["id"]
32+
user_ids = [
33+
u["id"]
34+
for u in client.users_list(limit=100)["members"]
35+
if u["id"] not in {"USLACKBOT", self_user_id}
36+
and u.get("is_bot", False) is False
37+
and u.get("is_app_user", False) is False
38+
and u.get("is_restricted", False) is False
39+
and u.get("is_ultra_restricted", False) is False
40+
and u.get("is_email_confirmed", False) is True
41+
]
42+
invitations = client.conversations_invite(
43+
channel=channel_id, users=user_ids
44+
)
45+
self.assertIsNone(invitations.get("error"))
46+
finally:
47+
if channel_id is not None:
48+
client.conversations_archive(channel=channel_id)

integration_tests/webhook/test_async_webhook.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ async def setUp(self):
2626
].replace("#", "")
2727
client = AsyncWebClient(token=token)
2828
self.channel_id = None
29-
async for resp in await client.conversations_list(limit=10):
29+
async for resp in await client.conversations_list(limit=1000):
3030
for c in resp["channels"]:
3131
if c["name"] == channel_name:
3232
self.channel_id = c["id"]

integration_tests/webhook/test_webhook.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def setUp(self):
2424
].replace("#", "")
2525
client = WebClient(token=token)
2626
self.channel_id = None
27-
for resp in client.conversations_list(limit=10):
27+
for resp in client.conversations_list(limit=1000):
2828
for c in resp["channels"]:
2929
if c["name"] == channel_name:
3030
self.channel_id = c["id"]

slack_sdk/web/async_client.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ async def admin_users_session_getSettings(
621621
kwargs.update({"user_ids": ",".join(user_ids)})
622622
else:
623623
kwargs.update({"user_ids": user_ids})
624-
return await self.api_call("admin.users.session.getSettings", json=kwargs)
624+
return await self.api_call("admin.users.session.getSettings", params=kwargs)
625625

626626
async def admin_users_session_setSettings(
627627
self, *, user_ids: Union[str, Sequence[str]], **kwargs
@@ -636,7 +636,7 @@ async def admin_users_session_setSettings(
636636
kwargs.update({"user_ids": ",".join(user_ids)})
637637
else:
638638
kwargs.update({"user_ids": user_ids})
639-
return await self.api_call("admin.users.session.setSettings", json=kwargs)
639+
return await self.api_call("admin.users.session.setSettings", params=kwargs)
640640

641641
async def admin_users_session_clearSettings(
642642
self, *, user_ids: Union[str, Sequence[str]], **kwargs
@@ -651,7 +651,7 @@ async def admin_users_session_clearSettings(
651651
kwargs.update({"user_ids": ",".join(user_ids)})
652652
else:
653653
kwargs.update({"user_ids": user_ids})
654-
return await self.api_call("admin.users.session.clearSettings", json=kwargs)
654+
return await self.api_call("admin.users.session.clearSettings", params=kwargs)
655655

656656
async def admin_inviteRequests_approve(
657657
self, *, invite_request_id: str, **kwargs
@@ -815,7 +815,7 @@ async def admin_usergroups_addChannels(
815815
kwargs.update({"channel_ids": ",".join(channel_ids)})
816816
else:
817817
kwargs.update({"channel_ids": channel_ids})
818-
return await self.api_call("admin.usergroups.addChannels", json=kwargs)
818+
return await self.api_call("admin.usergroups.addChannels", params=kwargs)
819819

820820
async def admin_usergroups_addTeams(
821821
self, *, usergroup_id: str, team_ids: Union[str, Sequence[str]], **kwargs
@@ -833,7 +833,7 @@ async def admin_usergroups_addTeams(
833833
kwargs.update({"team_ids": ",".join(team_ids)})
834834
else:
835835
kwargs.update({"team_ids": team_ids})
836-
return await self.api_call("admin.usergroups.addTeams", json=kwargs)
836+
return await self.api_call("admin.usergroups.addTeams", params=kwargs)
837837

838838
async def admin_usergroups_listChannels(
839839
self, *, usergroup_id: str, **kwargs
@@ -860,7 +860,7 @@ async def admin_usergroups_removeChannels(
860860
kwargs.update({"channel_ids": ",".join(channel_ids)})
861861
else:
862862
kwargs.update({"channel_ids": channel_ids})
863-
return await self.api_call("admin.usergroups.removeChannels", json=kwargs)
863+
return await self.api_call("admin.usergroups.removeChannels", params=kwargs)
864864

865865
async def admin_users_assign(
866866
self, *, team_id: str, user_id: str, **kwargs
@@ -895,7 +895,7 @@ async def admin_users_invite(
895895
kwargs.update({"channel_ids": ",".join(channel_ids)})
896896
else:
897897
kwargs.update({"channel_ids": channel_ids})
898-
return await self.api_call("admin.users.invite", json=kwargs)
898+
return await self.api_call("admin.users.invite", params=kwargs)
899899

900900
async def admin_users_list(self, *, team_id: str, **kwargs) -> AsyncSlackResponse:
901901
"""List users on a workspace
@@ -1461,7 +1461,7 @@ async def conversations_invite(
14611461
kwargs.update({"users": ",".join(users)})
14621462
else:
14631463
kwargs.update({"users": users})
1464-
return await self.api_call("conversations.invite", json=kwargs)
1464+
return await self.api_call("conversations.invite", params=kwargs)
14651465

14661466
async def conversations_join(self, *, channel: str, **kwargs) -> AsyncSlackResponse:
14671467
"""Joins an existing conversation.
@@ -2081,7 +2081,7 @@ async def mpim_open(
20812081
kwargs.update({"users": ",".join(users)})
20822082
else:
20832083
kwargs.update({"users": users})
2084-
return await self.api_call("mpim.open", json=kwargs)
2084+
return await self.api_call("mpim.open", params=kwargs)
20852085

20862086
async def mpim_replies(
20872087
self, *, channel: str, thread_ts: str, **kwargs
@@ -2431,7 +2431,7 @@ async def usergroups_users_update(
24312431
kwargs.update({"users": ",".join(users)})
24322432
else:
24332433
kwargs.update({"users": users})
2434-
return await self.api_call("usergroups.users.update", json=kwargs)
2434+
return await self.api_call("usergroups.users.update", params=kwargs)
24352435

24362436
async def users_conversations(self, **kwargs) -> AsyncSlackResponse:
24372437
"""List conversations the calling user may access."""

slack_sdk/web/client.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ def admin_users_session_getSettings(
584584
kwargs.update({"user_ids": ",".join(user_ids)})
585585
else:
586586
kwargs.update({"user_ids": user_ids})
587-
return self.api_call("admin.users.session.getSettings", json=kwargs)
587+
return self.api_call("admin.users.session.getSettings", params=kwargs)
588588

589589
def admin_users_session_setSettings(
590590
self, *, user_ids: Union[str, Sequence[str]], **kwargs
@@ -599,7 +599,7 @@ def admin_users_session_setSettings(
599599
kwargs.update({"user_ids": ",".join(user_ids)})
600600
else:
601601
kwargs.update({"user_ids": user_ids})
602-
return self.api_call("admin.users.session.setSettings", json=kwargs)
602+
return self.api_call("admin.users.session.setSettings", params=kwargs)
603603

604604
def admin_users_session_clearSettings(
605605
self, *, user_ids: Union[str, Sequence[str]], **kwargs
@@ -614,7 +614,7 @@ def admin_users_session_clearSettings(
614614
kwargs.update({"user_ids": ",".join(user_ids)})
615615
else:
616616
kwargs.update({"user_ids": user_ids})
617-
return self.api_call("admin.users.session.clearSettings", json=kwargs)
617+
return self.api_call("admin.users.session.clearSettings", params=kwargs)
618618

619619
def admin_inviteRequests_approve(
620620
self, *, invite_request_id: str, **kwargs
@@ -766,7 +766,7 @@ def admin_usergroups_addChannels(
766766
kwargs.update({"channel_ids": ",".join(channel_ids)})
767767
else:
768768
kwargs.update({"channel_ids": channel_ids})
769-
return self.api_call("admin.usergroups.addChannels", json=kwargs)
769+
return self.api_call("admin.usergroups.addChannels", params=kwargs)
770770

771771
def admin_usergroups_addTeams(
772772
self, *, usergroup_id: str, team_ids: Union[str, Sequence[str]], **kwargs
@@ -784,7 +784,7 @@ def admin_usergroups_addTeams(
784784
kwargs.update({"team_ids": ",".join(team_ids)})
785785
else:
786786
kwargs.update({"team_ids": team_ids})
787-
return self.api_call("admin.usergroups.addTeams", json=kwargs)
787+
return self.api_call("admin.usergroups.addTeams", params=kwargs)
788788

789789
def admin_usergroups_listChannels(
790790
self, *, usergroup_id: str, **kwargs
@@ -811,7 +811,7 @@ def admin_usergroups_removeChannels(
811811
kwargs.update({"channel_ids": ",".join(channel_ids)})
812812
else:
813813
kwargs.update({"channel_ids": channel_ids})
814-
return self.api_call("admin.usergroups.removeChannels", json=kwargs)
814+
return self.api_call("admin.usergroups.removeChannels", params=kwargs)
815815

816816
def admin_users_assign(
817817
self, *, team_id: str, user_id: str, **kwargs
@@ -846,7 +846,7 @@ def admin_users_invite(
846846
kwargs.update({"channel_ids": ",".join(channel_ids)})
847847
else:
848848
kwargs.update({"channel_ids": channel_ids})
849-
return self.api_call("admin.users.invite", json=kwargs)
849+
return self.api_call("admin.users.invite", params=kwargs)
850850

851851
def admin_users_list(self, *, team_id: str, **kwargs) -> SlackResponse:
852852
"""List users on a workspace
@@ -1374,7 +1374,7 @@ def conversations_invite(
13741374
kwargs.update({"users": ",".join(users)})
13751375
else:
13761376
kwargs.update({"users": users})
1377-
return self.api_call("conversations.invite", json=kwargs)
1377+
return self.api_call("conversations.invite", params=kwargs)
13781378

13791379
def conversations_join(self, *, channel: str, **kwargs) -> SlackResponse:
13801380
"""Joins an existing conversation.
@@ -1956,7 +1956,7 @@ def mpim_open(self, *, users: Union[str, Sequence[str]], **kwargs) -> SlackRespo
19561956
kwargs.update({"users": ",".join(users)})
19571957
else:
19581958
kwargs.update({"users": users})
1959-
return self.api_call("mpim.open", json=kwargs)
1959+
return self.api_call("mpim.open", params=kwargs)
19601960

19611961
def mpim_replies(self, *, channel: str, thread_ts: str, **kwargs) -> SlackResponse:
19621962
"""Retrieve a thread of messages posted to a direct message conversation from a
@@ -2288,7 +2288,7 @@ def usergroups_users_update(
22882288
kwargs.update({"users": ",".join(users)})
22892289
else:
22902290
kwargs.update({"users": users})
2291-
return self.api_call("usergroups.users.update", json=kwargs)
2291+
return self.api_call("usergroups.users.update", params=kwargs)
22922292

22932293
def users_conversations(self, **kwargs) -> SlackResponse:
22942294
"""List conversations the calling user may access."""

slack_sdk/web/legacy_client.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ def admin_users_session_getSettings(
603603
kwargs.update({"user_ids": ",".join(user_ids)})
604604
else:
605605
kwargs.update({"user_ids": user_ids})
606-
return self.api_call("admin.users.session.getSettings", json=kwargs)
606+
return self.api_call("admin.users.session.getSettings", params=kwargs)
607607

608608
def admin_users_session_setSettings(
609609
self, *, user_ids: Union[str, Sequence[str]], **kwargs
@@ -618,7 +618,7 @@ def admin_users_session_setSettings(
618618
kwargs.update({"user_ids": ",".join(user_ids)})
619619
else:
620620
kwargs.update({"user_ids": user_ids})
621-
return self.api_call("admin.users.session.setSettings", json=kwargs)
621+
return self.api_call("admin.users.session.setSettings", params=kwargs)
622622

623623
def admin_users_session_clearSettings(
624624
self, *, user_ids: Union[str, Sequence[str]], **kwargs
@@ -633,7 +633,7 @@ def admin_users_session_clearSettings(
633633
kwargs.update({"user_ids": ",".join(user_ids)})
634634
else:
635635
kwargs.update({"user_ids": user_ids})
636-
return self.api_call("admin.users.session.clearSettings", json=kwargs)
636+
return self.api_call("admin.users.session.clearSettings", params=kwargs)
637637

638638
def admin_inviteRequests_approve(
639639
self, *, invite_request_id: str, **kwargs
@@ -795,7 +795,7 @@ def admin_usergroups_addChannels(
795795
kwargs.update({"channel_ids": ",".join(channel_ids)})
796796
else:
797797
kwargs.update({"channel_ids": channel_ids})
798-
return self.api_call("admin.usergroups.addChannels", json=kwargs)
798+
return self.api_call("admin.usergroups.addChannels", params=kwargs)
799799

800800
def admin_usergroups_addTeams(
801801
self, *, usergroup_id: str, team_ids: Union[str, Sequence[str]], **kwargs
@@ -813,7 +813,7 @@ def admin_usergroups_addTeams(
813813
kwargs.update({"team_ids": ",".join(team_ids)})
814814
else:
815815
kwargs.update({"team_ids": team_ids})
816-
return self.api_call("admin.usergroups.addTeams", json=kwargs)
816+
return self.api_call("admin.usergroups.addTeams", params=kwargs)
817817

818818
def admin_usergroups_listChannels(
819819
self, *, usergroup_id: str, **kwargs
@@ -840,7 +840,7 @@ def admin_usergroups_removeChannels(
840840
kwargs.update({"channel_ids": ",".join(channel_ids)})
841841
else:
842842
kwargs.update({"channel_ids": channel_ids})
843-
return self.api_call("admin.usergroups.removeChannels", json=kwargs)
843+
return self.api_call("admin.usergroups.removeChannels", params=kwargs)
844844

845845
def admin_users_assign(
846846
self, *, team_id: str, user_id: str, **kwargs
@@ -875,7 +875,7 @@ def admin_users_invite(
875875
kwargs.update({"channel_ids": ",".join(channel_ids)})
876876
else:
877877
kwargs.update({"channel_ids": channel_ids})
878-
return self.api_call("admin.users.invite", json=kwargs)
878+
return self.api_call("admin.users.invite", params=kwargs)
879879

880880
def admin_users_list(
881881
self, *, team_id: str, **kwargs
@@ -1449,7 +1449,7 @@ def conversations_invite(
14491449
kwargs.update({"users": ",".join(users)})
14501450
else:
14511451
kwargs.update({"users": users})
1452-
return self.api_call("conversations.invite", json=kwargs)
1452+
return self.api_call("conversations.invite", params=kwargs)
14531453

14541454
def conversations_join(
14551455
self, *, channel: str, **kwargs
@@ -2075,7 +2075,7 @@ def mpim_open(
20752075
kwargs.update({"users": ",".join(users)})
20762076
else:
20772077
kwargs.update({"users": users})
2078-
return self.api_call("mpim.open", json=kwargs)
2078+
return self.api_call("mpim.open", params=kwargs)
20792079

20802080
def mpim_replies(
20812081
self, *, channel: str, thread_ts: str, **kwargs
@@ -2425,7 +2425,7 @@ def usergroups_users_update(
24252425
kwargs.update({"users": ",".join(users)})
24262426
else:
24272427
kwargs.update({"users": users})
2428-
return self.api_call("usergroups.users.update", json=kwargs)
2428+
return self.api_call("usergroups.users.update", params=kwargs)
24292429

24302430
def users_conversations(self, **kwargs) -> Union[Future, SlackResponse]:
24312431
"""List conversations the calling user may access."""

0 commit comments

Comments
 (0)