Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions integration_tests/web/test_issue_1053.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import logging
import os
import time
import unittest

from integration_tests.env_variable_names import SLACK_SDK_TEST_BOT_TOKEN
from slack_sdk.web import WebClient


class TestWebClient(unittest.TestCase):
"""Runs integration tests with real Slack API

https://github.com/slackapi/python-slack-sdk/issues/1053
"""

def setUp(self):
self.logger = logging.getLogger(__name__)
self.bot_token = os.environ[SLACK_SDK_TEST_BOT_TOKEN]

def tearDown(self):
pass

def test_issue_1053(self):
client: WebClient = WebClient(token=self.bot_token)
self_user_id = client.auth_test()["user_id"]
channel_name = f"test-channel-{str(time.time()).replace('.', '-')}"
channel_id = None
try:
creation = client.conversations_create(name=channel_name)
self.assertIsNone(creation.get("error"))
channel_id = creation["channel"]["id"]
user_ids = [
u["id"]
for u in client.users_list(limit=100)["members"]
if u["id"] not in {"USLACKBOT", self_user_id}
and u.get("is_bot", False) is False
and u.get("is_app_user", False) is False
and u.get("is_restricted", False) is False
and u.get("is_ultra_restricted", False) is False
and u.get("is_email_confirmed", False) is True
]
invitations = client.conversations_invite(
channel=channel_id, users=user_ids
)
self.assertIsNone(invitations.get("error"))
finally:
if channel_id is not None:
client.conversations_archive(channel=channel_id)
2 changes: 1 addition & 1 deletion integration_tests/webhook/test_async_webhook.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ async def setUp(self):
].replace("#", "")
client = AsyncWebClient(token=token)
self.channel_id = None
async for resp in await client.conversations_list(limit=10):
async for resp in await client.conversations_list(limit=1000):

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid ratelimited errors with my test workspace (it has a very large number of channels)

for c in resp["channels"]:
if c["name"] == channel_name:
self.channel_id = c["id"]
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/webhook/test_webhook.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def setUp(self):
].replace("#", "")
client = WebClient(token=token)
self.channel_id = None
for resp in client.conversations_list(limit=10):
for resp in client.conversations_list(limit=1000):
for c in resp["channels"]:
if c["name"] == channel_name:
self.channel_id = c["id"]
Expand Down
20 changes: 10 additions & 10 deletions slack_sdk/web/async_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -621,7 +621,7 @@ async def admin_users_session_getSettings(
kwargs.update({"user_ids": ",".join(user_ids)})

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code currently works but the server-side may stop accepting this format in the future. That's the reason why we want to make the changes in this PR.

else:
kwargs.update({"user_ids": user_ids})
return await self.api_call("admin.users.session.getSettings", json=kwargs)
return await self.api_call("admin.users.session.getSettings", params=kwargs)

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

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

async def admin_inviteRequests_approve(
self, *, invite_request_id: str, **kwargs
Expand Down Expand Up @@ -815,7 +815,7 @@ async def admin_usergroups_addChannels(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return await self.api_call("admin.usergroups.addChannels", json=kwargs)
return await self.api_call("admin.usergroups.addChannels", params=kwargs)

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

async def admin_usergroups_listChannels(
self, *, usergroup_id: str, **kwargs
Expand All @@ -860,7 +860,7 @@ async def admin_usergroups_removeChannels(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return await self.api_call("admin.usergroups.removeChannels", json=kwargs)
return await self.api_call("admin.usergroups.removeChannels", params=kwargs)

async def admin_users_assign(
self, *, team_id: str, user_id: str, **kwargs
Expand Down Expand Up @@ -895,7 +895,7 @@ async def admin_users_invite(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return await self.api_call("admin.users.invite", json=kwargs)
return await self.api_call("admin.users.invite", params=kwargs)

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

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

async def mpim_replies(
self, *, channel: str, thread_ts: str, **kwargs
Expand Down Expand Up @@ -2431,7 +2431,7 @@ async def usergroups_users_update(
kwargs.update({"users": ",".join(users)})
else:
kwargs.update({"users": users})
return await self.api_call("usergroups.users.update", json=kwargs)
return await self.api_call("usergroups.users.update", params=kwargs)

async def users_conversations(self, **kwargs) -> AsyncSlackResponse:
"""List conversations the calling user may access."""
Expand Down
20 changes: 10 additions & 10 deletions slack_sdk/web/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,7 @@ def admin_users_session_getSettings(
kwargs.update({"user_ids": ",".join(user_ids)})
else:
kwargs.update({"user_ids": user_ids})
return self.api_call("admin.users.session.getSettings", json=kwargs)
return self.api_call("admin.users.session.getSettings", params=kwargs)

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

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

def admin_inviteRequests_approve(
self, *, invite_request_id: str, **kwargs
Expand Down Expand Up @@ -766,7 +766,7 @@ def admin_usergroups_addChannels(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return self.api_call("admin.usergroups.addChannels", json=kwargs)
return self.api_call("admin.usergroups.addChannels", params=kwargs)

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

def admin_usergroups_listChannels(
self, *, usergroup_id: str, **kwargs
Expand All @@ -811,7 +811,7 @@ def admin_usergroups_removeChannels(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return self.api_call("admin.usergroups.removeChannels", json=kwargs)
return self.api_call("admin.usergroups.removeChannels", params=kwargs)

def admin_users_assign(
self, *, team_id: str, user_id: str, **kwargs
Expand Down Expand Up @@ -846,7 +846,7 @@ def admin_users_invite(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return self.api_call("admin.users.invite", json=kwargs)
return self.api_call("admin.users.invite", params=kwargs)

def admin_users_list(self, *, team_id: str, **kwargs) -> SlackResponse:
"""List users on a workspace
Expand Down Expand Up @@ -1374,7 +1374,7 @@ def conversations_invite(
kwargs.update({"users": ",".join(users)})
else:
kwargs.update({"users": users})
return self.api_call("conversations.invite", json=kwargs)
return self.api_call("conversations.invite", params=kwargs)

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

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

def users_conversations(self, **kwargs) -> SlackResponse:
"""List conversations the calling user may access."""
Expand Down
20 changes: 10 additions & 10 deletions slack_sdk/web/legacy_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ def admin_users_session_getSettings(
kwargs.update({"user_ids": ",".join(user_ids)})
else:
kwargs.update({"user_ids": user_ids})
return self.api_call("admin.users.session.getSettings", json=kwargs)
return self.api_call("admin.users.session.getSettings", params=kwargs)

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

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

def admin_inviteRequests_approve(
self, *, invite_request_id: str, **kwargs
Expand Down Expand Up @@ -795,7 +795,7 @@ def admin_usergroups_addChannels(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return self.api_call("admin.usergroups.addChannels", json=kwargs)
return self.api_call("admin.usergroups.addChannels", params=kwargs)

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

def admin_usergroups_listChannels(
self, *, usergroup_id: str, **kwargs
Expand All @@ -840,7 +840,7 @@ def admin_usergroups_removeChannels(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return self.api_call("admin.usergroups.removeChannels", json=kwargs)
return self.api_call("admin.usergroups.removeChannels", params=kwargs)

def admin_users_assign(
self, *, team_id: str, user_id: str, **kwargs
Expand Down Expand Up @@ -875,7 +875,7 @@ def admin_users_invite(
kwargs.update({"channel_ids": ",".join(channel_ids)})
else:
kwargs.update({"channel_ids": channel_ids})
return self.api_call("admin.users.invite", json=kwargs)
return self.api_call("admin.users.invite", params=kwargs)

def admin_users_list(
self, *, team_id: str, **kwargs
Expand Down Expand Up @@ -1449,7 +1449,7 @@ def conversations_invite(
kwargs.update({"users": ",".join(users)})
else:
kwargs.update({"users": users})
return self.api_call("conversations.invite", json=kwargs)
return self.api_call("conversations.invite", params=kwargs)

def conversations_join(
self, *, channel: str, **kwargs
Expand Down Expand Up @@ -2075,7 +2075,7 @@ def mpim_open(
kwargs.update({"users": ",".join(users)})
else:
kwargs.update({"users": users})
return self.api_call("mpim.open", json=kwargs)
return self.api_call("mpim.open", params=kwargs)

def mpim_replies(
self, *, channel: str, thread_ts: str, **kwargs
Expand Down Expand Up @@ -2425,7 +2425,7 @@ def usergroups_users_update(
kwargs.update({"users": ",".join(users)})
else:
kwargs.update({"users": users})
return self.api_call("usergroups.users.update", json=kwargs)
return self.api_call("usergroups.users.update", params=kwargs)

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