async def test_remove_participant():
    thread_id = "19:[email protected]"
    participant_id = "8:acs:57b9bac9-df6c-4d39-a73b-26e944adf6ea_9b0110-08007f1041"
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=204)

    chat_thread_client = ChatThreadClient("https://endpoint",
                                          credential,
                                          thread_id,
                                          transport=Mock(send=mock_send))

    try:
        await chat_thread_client.remove_participant(
            identifier=CommunicationUserIdentifier(participant_id))
    except:
        raised = True

    assert raised == False
Пример #2
0
async def test_add_participant():
    thread_id = "19:[email protected]"
    new_participant_id="8:acs:57b9bac9-df6c-4d39-a73b-26e944adf6ea_9b0110-08007f1041"
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=201)
    chat_thread_client = ChatThreadClient("https://endpoint", credential, thread_id, transport=Mock(send=mock_send))

    new_participant = ChatThreadParticipant(
            user=CommunicationUserIdentifier(new_participant_id),
            display_name='name',
            share_history_time=datetime.utcnow())

    try:
        await chat_thread_client.add_participant(new_participant)
    except:
        raised = True

    assert raised == False
async def test_update_message():
    thread_id = "19:[email protected]"
    message_id = '1596823919339'
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=204)

    chat_thread_client = ChatThreadClient("https://endpoint",
                                          credential,
                                          thread_id,
                                          transport=Mock(send=mock_send))

    try:
        content = "updated message content"
        await chat_thread_client.update_message(message_id, content=content)
    except:
        raised = True

    assert raised == False
Пример #4
0
async def test_get_message():
    thread_id = "19:[email protected]"
    message_id='1596823919339'
    raised = False
    message_str = "Hi I am Bob."

    async def mock_send(*_, **__):
        return mock_response(status_code=200, json_payload={
                        "id": message_id,
                        "type": "text",
                        "sequenceId": "3",
                        "version": message_id,
                        "content": {
                            "message": message_str,
                            "topic": "Lunch Chat thread",
                            "participants": [
                                {
                                    "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
                                    "displayName": "Bob",
                                    "shareHistoryTime": "2020-10-30T10:50:50Z"
                                }
                            ],
                            "initiator": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                        },
                        "senderDisplayName": "Bob",
                        "createdOn": "2021-01-27T01:37:33Z",
                        "senderId": "8:acs:46849534-eb08-4ab7-bde7-c36928cd1547_00000007-e155-1f06-1db7-3a3a0d00004b"
                    })
    chat_thread_client = ChatThreadClient("https://endpoint", credential, thread_id, transport=Mock(send=mock_send))

    message = None
    try:
        message = await chat_thread_client.get_message(message_id)
    except:
        raised = True

    assert raised == False
    assert message.id == message_id
    assert message.type == ChatMessageType.TEXT
    assert message.content.message == message_str
    assert len(message.content.participants) > 0
async def test_get_message():
    thread_id = "19:[email protected]"
    message_id = '1596823919339'
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=200, json_payload={"id": message_id})

    chat_thread_client = ChatThreadClient("https://endpoint",
                                          credential,
                                          thread_id,
                                          transport=Mock(send=mock_send))

    message = None
    try:
        message = await chat_thread_client.get_message(message_id)
    except:
        raised = True

    assert raised == False
    assert message.id == message_id
    async def send_message_async(self):
        from azure.communication.chat.aio import ChatThreadClient, CommunicationUserCredential
        chat_thread_client = ChatThreadClient(
            self.endpoint, CommunicationUserCredential(self.token),
            self._thread_id)

        async with chat_thread_client:
            # [START send_message]
            from azure.communication.chat import ChatMessagePriority

            priority = ChatMessagePriority.NORMAL
            content = 'hello world'
            sender_display_name = 'sender name'

            send_message_result = await chat_thread_client.send_message(
                content,
                priority=priority,
                sender_display_name=sender_display_name)
            # [END send_message]
            self._message_id = send_message_result.id
            print("send_message succeeded, message id:", self._message_id)
Пример #7
0
async def test_add_participants_w_failed_participants_returns_nonempty_list():
    thread_id = "19:[email protected]"
    new_participant_id="8:acs:57b9bac9-df6c-4d39-a73b-26e944adf6ea_9b0110-08007f1041"
    raised = False
    error_message = "some error message"

    async def mock_send(*_, **__):
        return mock_response(status_code=201, json_payload={
            "invalidParticipants": [
                {
                    "code": "string",
                    "message": error_message,
                    "target": new_participant_id,
                    "details": []
                }
            ]
        })
    chat_thread_client = ChatThreadClient("https://endpoint", credential, thread_id, transport=Mock(send=mock_send))

    new_participant = ChatThreadParticipant(
            user=CommunicationUserIdentifier(new_participant_id),
            display_name='name',
            share_history_time=datetime.utcnow())
    participants = [new_participant]

    try:
        result = await chat_thread_client.add_participants(participants)
    except:
        raised = True

    assert raised == False
    assert len(result) == 1

    failed_participant = result[0][0]
    communication_error = result[0][1]

    assert new_participant.user.identifier == failed_participant.user.identifier
    assert new_participant.display_name == failed_participant.display_name
    assert new_participant.share_history_time == failed_participant.share_history_time
    assert error_message == communication_error.message
Пример #8
0
async def test_send_message():
    thread_id = "19:[email protected]"
    message_id='1596823919339'
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=201, json_payload={"id": message_id})
    chat_thread_client = ChatThreadClient("https://endpoint", credential, thread_id, transport=Mock(send=mock_send))

    create_message_result_id = None
    try:
        content='hello world'
        sender_display_name='sender name'

        create_message_result_id = await chat_thread_client.send_message(
            content,
            sender_display_name=sender_display_name)
    except:
        raised = True

    assert raised == False
    assert create_message_result_id == message_id
async def test_get_properties():
    thread_id = "19:[email protected]"
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=200, json_payload={
                "id": thread_id,
                "topic": "Lunch Chat thread",
                "createdOn": "2020-10-30T10:50:50Z",
                "deletedOn": "2020-10-30T10:50:50Z",
                "createdByCommunicationIdentifier": {"rawId": "string", "communicationUser": {"id": "string"}}
                })
    chat_thread_client = ChatThreadClient("https://endpoint", credential, thread_id, transport=Mock(send=mock_send))

    get_thread_result = None
    try:
        get_thread_result = await chat_thread_client.get_properties(thread_id)
    except:
        raised = True

    assert raised == False
    assert get_thread_result.id == thread_id
Пример #10
0
async def test_send_message_w_invalid_type_throws_error():
    thread_id = "19:[email protected]"
    message_id = '1596823919339'
    raised = False

    # the payload is irrelevant - it'll fail before
    async def mock_send(*_, **__):
        return mock_response(status_code=201, json_payload={"id": message_id})

    chat_thread_client = ChatThreadClient("https://endpoint",
                                          credential,
                                          thread_id,
                                          transport=Mock(send=mock_send))

    create_message_result_id = None

    chat_message_types = [
        ChatMessageType.PARTICIPANT_ADDED, ChatMessageType.PARTICIPANT_REMOVED,
        ChatMessageType.TOPIC_UPDATED, "participant_added",
        "participant_removed", "topic_updated", "ChatMessageType.TEXT",
        "ChatMessageType.HTML", "ChatMessageType.PARTICIPANT_ADDED",
        "ChatMessageType.PARTICIPANT_REMOVED", "ChatMessageType.TOPIC_UPDATED"
    ]

    for chat_message_type in chat_message_types:
        try:
            content = 'hello world'
            sender_display_name = 'sender name'

            create_message_result = await chat_thread_client.send_message(
                content,
                chat_message_type=chat_message_type,
                sender_display_name=sender_display_name)
        except:
            raised = True

        assert raised == True
Пример #11
0
async def test_send_message_w_type():
    thread_id = "19:[email protected]"
    message_id = '1596823919339'
    raised = False
    message_str = "Hi I am Bob."

    create_message_result_id = None

    chat_message_types = [
        ChatMessageType.TEXT, ChatMessageType.HTML, "text", "html"
    ]

    for chat_message_type in chat_message_types:

        async def mock_send(*_, **__):
            return mock_response(
                status_code=201,
                json_payload={
                    "id":
                    message_id,
                    "type":
                    chat_message_type,
                    "sequenceId":
                    "3",
                    "version":
                    message_id,
                    "content": {
                        "message":
                        message_str,
                        "topic":
                        "Lunch Chat thread",
                        "participants": [{
                            "id":
                            "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
                            "displayName":
                            "Bob",
                            "shareHistoryTime":
                            "2020-10-30T10:50:50Z"
                        }],
                        "initiator":
                        "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                    },
                    "senderDisplayName":
                    "Bob",
                    "createdOn":
                    "2021-01-27T01:37:33Z",
                    "senderId":
                    "8:acs:46849534-eb08-4ab7-bde7-c36928cd1547_00000007-e155-1f06-1db7-3a3a0d00004b"
                })

        chat_thread_client = ChatThreadClient("https://endpoint",
                                              credential,
                                              thread_id,
                                              transport=Mock(send=mock_send))

        try:
            content = 'hello world'
            sender_display_name = 'sender name'

            create_message_result = await chat_thread_client.send_message(
                content,
                chat_message_type=chat_message_type,
                sender_display_name=sender_display_name)
            create_message_result_id = create_message_result.id
        except:
            raised = True

        assert raised == False
        assert create_message_result_id == message_id
Пример #12
0
async def test_list_messages_with_start_time():
    thread_id = "19:[email protected]"
    raised = False

    async def mock_send(*_, **__):
        return mock_response(
            status_code=200,
            json_payload={
                "value": [{
                    "id": "message_id_1",
                    "type": "text",
                    "sequenceId": "3",
                    "version": "message_id_1",
                    "content": {
                        "message":
                        "message_str",
                        "topic":
                        "Lunch Chat thread",
                        "participants": [{
                            "communicationIdentifier": {
                                "rawId": "string",
                                "communicationUser": {
                                    "id":
                                    "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                                }
                            },
                            "displayName":
                            "Bob",
                            "shareHistoryTime":
                            "2020-10-30T10:50:50Z"
                        }],
                        "initiatorCommunicationIdentifier": {
                            "rawId": "string",
                            "communicationUser": {
                                "id":
                                "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                            }
                        }
                    },
                    "senderDisplayName": "Bob",
                    "createdOn": "2021-01-27T01:37:33Z",
                    "senderCommunicationIdentifier": {
                        "rawId": "string",
                        "communicationUser": {
                            "id":
                            "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                        }
                    },
                    "deletedOn": "2021-01-27T01:37:33Z",
                    "editedOn": "2021-01-27T01:37:33Z"
                }, {
                    "id": "message_id_2",
                    "type": "text",
                    "sequenceId": "3",
                    "version": "message_id_2",
                    "content": {
                        "message":
                        "message_str",
                        "topic":
                        "Lunch Chat thread",
                        "participants": [{
                            "communicationIdentifier": {
                                "rawId": "string",
                                "communicationUser": {
                                    "id":
                                    "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                                }
                            },
                            "displayName":
                            "Bob",
                            "shareHistoryTime":
                            "2020-10-30T10:50:50Z"
                        }],
                        "initiatorCommunicationIdentifier": {
                            "rawId": "string",
                            "communicationUser": {
                                "id":
                                "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                            }
                        }
                    },
                    "senderDisplayName": "Bob",
                    "createdOn": "2021-01-27T01:37:33Z",
                    "senderCommunicationIdentifier": {
                        "rawId": "string",
                        "communicationUser": {
                            "id":
                            "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                        }
                    },
                    "deletedOn": "2021-01-27T01:37:33Z",
                    "editedOn": "2021-01-27T01:37:33Z"
                }]
            })

    chat_thread_client = ChatThreadClient("https://endpoint",
                                          credential,
                                          thread_id,
                                          transport=Mock(send=mock_send))

    chat_messages = None
    try:
        chat_messages = chat_thread_client.list_messages(
            start_time=datetime(2020, 8, 17, 18, 0, 0))
    except:
        raised = True

    assert raised == False

    items = []
    async for item in chat_messages:
        items.append(item)

    assert len(items) == 2
Пример #13
0
async def test_list_messages_with_start_time():
    thread_id = "19:[email protected]"
    raised = False

    async def mock_send(*_, **__):
        return mock_response(status_code=200, json_payload={
            "value": [
                {
                    "id": "message_id1",
                    "type": "text",
                    "sequenceId": "3",
                    "version": "message_id1",
                    "content": {
                        "message": "message_str",
                        "topic": "Lunch Chat thread",
                        "participants": [
                            {
                                "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
                                "displayName": "Bob",
                                "shareHistoryTime": "2020-10-30T10:50:50Z"
                            }
                        ],
                        "initiator": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                    },
                    "senderDisplayName": "Bob",
                    "createdOn": "2020-08-17T18:05:44Z",
                    "senderId": "8:acs:46849534-eb08-4ab7-bde7-c36928cd1547_00000007-e155-1f06-1db7-3a3a0d00004b"
                },
                {
                    "id": "message_id2",
                    "type": "text",
                    "sequenceId": "3",
                    "version": "message_id2",
                    "content": {
                        "message": "message_str",
                        "topic": "Lunch Chat thread",
                        "participants": [
                            {
                                "id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b",
                                "displayName": "Bob",
                                "shareHistoryTime": "2020-10-30T10:50:50Z"
                            }
                        ],
                        "initiator": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_0e59221d-0c1d-46ae-9544-c963ce56c10b"
                    },
                    "senderDisplayName": "Bob",
                    "createdOn": "2020-08-17T23:13:33Z",
                    "senderId": "8:acs:46849534-eb08-4ab7-bde7-c36928cd1547_00000007-e155-1f06-1db7-3a3a0d00004b"
                }]})
    chat_thread_client = ChatThreadClient("https://endpoint", credential, thread_id, transport=Mock(send=mock_send))

    chat_messages = None
    try:
        chat_messages = chat_thread_client.list_messages(
            start_time=datetime(2020, 8, 17, 18, 0, 0)
        )
    except:
        raised = True

    assert raised == False

    items = []
    async for item in chat_messages:
        items.append(item)

    assert len(items) == 2