def test_request_pagination_stops_when_next_cursor_is_missing( self, mock_request): mock_request.response.side_effect = [ { "data": { "ok": True, "members": ["Bob", "cat"] }, "status_code": 200, "headers": {}, }, { "data": { "ok": True, "members": ["Kevin", "dog"] }, "status_code": 200, "headers": {}, }, ] users = [] for page in self.client.users_list(limit=2): users = users + page["members"] self.assertTrue(len(users) == 2) mock_request.assert_called_once_with( http_verb="GET", api_url="https://www.slack.com/api/users.list", req_args=fake_req_args(params={"limit": 2}), )
def test_builtin_api_methods_send_json(self, mock_request): self.client.api_test(msg="bye") mock_request.assert_called_once_with( http_verb="POST", api_url="https://www.slack.com/api/api.test", req_args=fake_req_args(json={"msg": "bye"}), )
def test_the_api_call_files_argument_creates_the_expected_data(self, mock_request): self.client.token = "xoxa-123" with mock.patch("builtins.open", mock.mock_open(read_data="fake")): self.client.users_setPhoto(image="/fake/path") mock_request.assert_called_once_with( http_verb="POST", api_url="https://www.slack.com/api/users.setPhoto", req_args=fake_req_args(), )
def test_start_calls_rtm_connect_by_default(self, mock_rtm_response): @slack.RTMClient.run_on(event="open") def stop_on_open(**payload): self.assertFalse(self.client._websocket.closed) rtm_client = payload["rtm_client"] rtm_client.stop() self.client.start() mock_rtm_response.assert_called_once_with( http_verb="GET", api_url="https://www.slack.com/api/rtm.connect", req_args=fake_req_args(), )
def test_the_api_call_files_argument_creates_the_expected_data( self, mock_add_field, mock_request ): self.client.token = "xoxa-123" with mock.patch("builtins.open", mock.mock_open(read_data="fake")): self.client.users_setPhoto(image="/fake/path") mock_add_field.assert_called_once_with("image", mock.ANY) mock_request.assert_called_once_with( http_verb="POST", api_url="https://www.slack.com/api/users.setPhoto", req_args=fake_req_args(), )
def test_request_pagination_stops_when_next_cursor_is_missing(self, mock_request): mock_request.response.side_effect = [ { "data": {"ok": True, "members": ["Bob", "cat"]}, "status_code": 200, "headers": {}, }, { "data": {"ok": True, "members": ["Kevin", "dog"]}, "status_code": 200, "headers": {}, }, ] users = [] for page in self.client.users_list(limit=2): users = users + page["members"] self.assertTrue(len(users) == 2) mock_request.assert_called_once_with( http_verb="GET", api_url="https://www.slack.com/api/users.list", req_args=fake_req_args(params={"limit": 2}), )