async def test_respond_join_room(self): event = events.JoinRoom(target="#test:localhost") with amock.patch(api_string.format("get_room_id")) as patched_get_room_id: patched_get_room_id.return_value = asyncio.Future() patched_get_room_id.return_value.set_result("!test:localhost") with amock.patch(api_string.format("join_room")) as patched_send: patched_send.return_value = asyncio.Future() patched_send.return_value.set_result({}) await self.connector.send(event) assert patched_send.called_once_with("#test:localhost")
async def create_join_room(self, event, roomid): """Send a JoinRoomEvent.""" if event["content"]["membership"] == "join": return events.JoinRoom( user=await self.connector.get_nick(roomid, event["sender"]), user_id=event["sender"], target=roomid, connector=self.connector, event_id=event["event_id"], raw_event=event, )
async def handle_channel_join(self, event, channel): """Send a JoinRoom event when a user joins the channel.""" user_id = event["user"] user_info = await self.connector.lookup_username(user_id) return events.JoinRoom( user_id=user_id, user=user_info["name"], target=event["channel"], connector=self.connector, event_id=event["event_ts"], raw_event=event, )
async def test_handle_message_join_event(opsdroid): message = ":[email protected] JOIN #channel" join_event = opsdroid_events.JoinRoom(user="******") connector = ConnectorTwitch(connector_config, opsdroid=opsdroid) opsdroid.parse = amock.CoroutineMock() await connector._handle_message(message) assert opsdroid.parse.called assert "username" in join_event.user
async def test_parse_event_with_constraint(self): with OpsDroid() as opsdroid: opsdroid.run_skill = amock.CoroutineMock() mock_skill = await self.getMockSkill() mock_skill = match_event(events.JoinRoom)(mock_skill) mock_skill = constrain_rooms(["#general"])(mock_skill) opsdroid.skills.append(mock_skill) mock_connector = amock.CoroutineMock() mock_connector.lookup_target = amock.Mock(return_value="some_room_id") message = events.JoinRoom( user="******", target="some_room_id", connector=mock_connector ) await opsdroid.parse(message) self.assertTrue(opsdroid.run_skill.called)
async def test_join_room(self): connector = ConnectorSlack({"token": "abc123"}, opsdroid=self.od) connector.slack_user.api_call = amock.CoroutineMock() await connector.send(events.JoinRoom(target="an-existing-room")) connector.slack_user.api_call.assert_called_once_with( "conversations.join", data={"channel": "an-existing-room"})
async def test_join_room(send_event): event = events.JoinRoom(target="room") payload, response = await send_event(CONVERSATIONS_JOIN, event) assert payload == {"channel": "room"} assert response["ok"]