From fcc493932859a7cb52550a0b68d35c1206b41798 Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Sun, 19 Jan 2025 11:56:49 -0500 Subject: [PATCH] bugfix - Office 365 include subject and body now (#1274) --- apprise/plugins/office365.py | 16 +++++++--------- test/test_plugin_office365.py | 14 +++++++++++++- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/apprise/plugins/office365.py b/apprise/plugins/office365.py index c0069f91..40620057 100644 --- a/apprise/plugins/office365.py +++ b/apprise/plugins/office365.py @@ -366,15 +366,13 @@ class NotifyOffice365(NotifyBase): if self.from_email: # Apply from email if it is known - payload.update({ - 'message': { - 'from': { - "emailAddress": { - "address": self.from_email, - "name": self.from_name or self.app_id, - } - }, - } + payload['message'].update({ + 'from': { + "emailAddress": { + "address": self.from_email, + "name": self.from_name or self.app_id, + } + }, }) # Create a copy of the email list diff --git a/test/test_plugin_office365.py b/test/test_plugin_office365.py index a1541e31..91b35452 100644 --- a/test/test_plugin_office365.py +++ b/test/test_plugin_office365.py @@ -32,7 +32,7 @@ from unittest import mock import pytest import requests from datetime import datetime -from json import dumps +from json import dumps, loads from apprise import Apprise from apprise import NotifyType from apprise import AppriseAttachment @@ -541,6 +541,18 @@ def test_plugin_office365_queries(mock_post, mock_get, mock_put): 'https://login.microsoftonline.com/{}/oauth2/v2.0/token'.format(tenant) assert mock_post.call_args_list[1][0][0] == \ 'https://graph.microsoft.com/v1.0/users/abc-1234-object-id/sendMail' + payload = loads(mock_post.call_args_list[1][1]['data']) + assert payload == { + 'message': { + 'subject': 'title', + 'body': { + 'contentType': 'HTML', + 'content': 'body', + }, + 'toRecipients': [ + {'emailAddress': {'address': 'target@example.ca'}}]}, + 'saveToSentItems': 'true', + } mock_post.reset_mock() # Now test a case where we just couldn't get any email details from the