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
|
# -------------------------------------------------------------------------
# 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": [{"address": self.recipient_address, "displayName": "Customer Name"}]},
"senderAddress": self.sender_address,
}
async with email_client:
poller = await email_client.begin_send(message)
response = await poller.result()
assert response["status"] == "Succeeded"
@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": [
{"address": self.recipient_address, "displayName": "Customer Name"},
{"address": self.recipient_address, "displayName": "Customer Name 2"},
]
},
"senderAddress": self.sender_address,
}
async with email_client:
poller = await email_client.begin_send(message)
response = await poller.result()
assert response["status"] == "Succeeded"
@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": [{"address": self.recipient_address, "displayName": "Customer Name"}]},
"senderAddress": self.sender_address,
"attachments": [
{
"name": "readme.txt",
"contentType": "text/plain",
"contentInBase64": "ZW1haWwgdGVzdCBhdHRhY2htZW50", # cspell:disable-line
}
],
}
async with email_client:
poller = await email_client.begin_send(message)
response = await poller.result()
assert response["status"] == "Succeeded"
@email_decorator_async
@recorded_by_proxy_async
async def test_send_email_inline_attachment(self):
email_client = EmailClient.from_connection_string(self.communication_connection_string)
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
"html": '<html>This is the body<br /><img src="cid:my-inline-image" /></html>',
},
"recipients": {"to": [{"address": self.recipient_address, "displayName": "Customer Name"}]},
"senderAddress": self.sender_address,
"attachments": [
{
"name": "inline_image.bmp",
"contentType": "image/bmp",
"contentInBase64": "Qk06AAAAAAAAADYAAAAoAAAAAQAAAAEAAAABABgAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAzFUzAA==", # cspell:disable-line
"contentId": "my-inline-image",
}
],
}
async with email_client:
poller = await email_client.begin_send(message)
response = await poller.result()
assert response["status"] == "Succeeded"
|