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
|
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------
from azure.communication.email import EmailClient
from devtools_testutils import AzureRecordedTestCase, recorded_by_proxy
from preparers import email_decorator
class TestEmailClient(AzureRecordedTestCase):
@email_decorator
@recorded_by_proxy
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
}
response = email_client.send(message)
assert response['messageId'] is not None
@email_decorator
@recorded_by_proxy
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
}
response = email_client.send(message)
assert response['messageId'] is not None
@email_decorator
@recorded_by_proxy
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
}
]
}
response = email_client.send(message)
assert response['messageId'] is not None
@email_decorator
@recorded_by_proxy
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
}
response = email_client.send(message)
message_id = response['messageId']
if message_id is not None:
message_status_response = email_client.get_send_status(message_id)
assert message_status_response['status'] is not None
else:
assert False
@email_decorator
@recorded_by_proxy
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
}
response = email_client.send(message)
assert response['messageId'] is not None
|