1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------
import pytest
from azure.communication.email.aio import EmailClient
from devtools_testutils import AzureRecordedTestCase
from devtools_testutils.aio import recorded_by_proxy_async
from async_preparers import email_decorator_async
class TestEmailClient(AzureRecordedTestCase):
@email_decorator_async
@recorded_by_proxy_async
async def test_send_email_single_recipient(self):
email_client = EmailClient.from_connection_string(self.communication_connection_string)
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
},
"recipients": {
"to": [
{
"email": self.recipient_address,
"displayName": "Customer Name"
}
]
},
"sender": self.sender_address
}
async with email_client:
response = await email_client.send(message)
assert response['messageId'] is not None
@email_decorator_async
@recorded_by_proxy_async
async def test_send_email_multiple_recipients(self):
email_client = EmailClient.from_connection_string(self.communication_connection_string)
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
},
"recipients": {
"to": [
{
"email": self.recipient_address,
"displayName": "Customer Name"
},
{
"email": self.recipient_address,
"displayName": "Customer Name 2"
}
]
},
"sender": self.sender_address
}
async with email_client:
response = await email_client.send(message)
assert response['messageId'] is not None
@email_decorator_async
@recorded_by_proxy_async
async def test_send_email_attachment(self):
email_client = EmailClient.from_connection_string(self.communication_connection_string)
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
},
"recipients": {
"to": [
{
"email": self.recipient_address,
"displayName": "Customer Name"
}
]
},
"sender": self.sender_address,
"attachments": [
{
"name": "readme.txt",
"attachmentType": "txt",
"contentBytesBase64": "ZW1haWwgdGVzdCBhdHRhY2htZW50" #cspell:disable-line
}
]
}
async with email_client:
response = await email_client.send(message)
assert response['messageId'] is not None
@email_decorator_async
@recorded_by_proxy_async
async def test_check_message_status(self):
email_client = EmailClient.from_connection_string(self.communication_connection_string)
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
},
"recipients": {
"to": [
{
"email": self.recipient_address,
"displayName": "Customer Name"
}
]
},
"sender": self.sender_address
}
async with email_client:
response = await email_client.send(message)
message_id = response['messageId']
if message_id is not None:
message_status_response = await email_client.get_send_status(message_id)
assert message_status_response['status'] is not None
else:
assert False
@email_decorator_async
@recorded_by_proxy_async
async def test_send_email_empty_to_recipients(self):
email_client = EmailClient.from_connection_string(self.communication_connection_string)
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
},
"recipients": {
"cc": [
{
"email": self.recipient_address,
"displayName": "Customer Name"
}
],
"bcc": [
{
"email": self.recipient_address,
"displayName": "Customer Name"
}
]
},
"sender": self.sender_address
}
async with email_client:
response = await email_client.send(message)
assert response['messageId'] is not None
|