From 2ee1de90df6a50b524eb5aaca11faad4d9580ce3 Mon Sep 17 00:00:00 2001 From: NotoriousBDG Date: Mon, 11 Dec 2017 18:16:37 -0500 Subject: [PATCH 1/2] Move IMAP Email Content body to an attribute --- .../components/sensor/imap_email_content.py | 6 +++-- .../sensor/test_imap_email_content.py | 26 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/sensor/imap_email_content.py b/homeassistant/components/sensor/imap_email_content.py index f4d4db201e50c1..32bc7c03418363 100644 --- a/homeassistant/components/sensor/imap_email_content.py +++ b/homeassistant/components/sensor/imap_email_content.py @@ -219,7 +219,7 @@ def update(self): return if self.sender_allowed(email_message): - message_body = EmailContentSensor.get_msg_text(email_message) + message_body = EmailContentSensor.get_msg_subject(email_message) if self._value_template is not None: message_body = self.render_template(email_message) @@ -231,5 +231,7 @@ def update(self): ATTR_SUBJECT: EmailContentSensor.get_msg_subject(email_message), ATTR_DATE: - email_message['Date'] + email_message['Date'], + ATTR_BODY: + EmailContentSensor.get_msg_text(email_message) } diff --git a/tests/components/sensor/test_imap_email_content.py b/tests/components/sensor/test_imap_email_content.py index 0bba3647c6ce01..cd5c079a431f62 100644 --- a/tests/components/sensor/test_imap_email_content.py +++ b/tests/components/sensor/test_imap_email_content.py @@ -60,7 +60,9 @@ def test_allowed_sender(self): sensor.entity_id = 'sensor.emailtest' sensor.schedule_update_ha_state(True) self.hass.block_till_done() - self.assertEqual("Test Message", sensor.state) + self.assertEqual('Test', sensor.state) + self.assertEqual("Test Message", + sensor.device_state_attributes['body']) self.assertEqual('sender@test.com', sensor.device_state_attributes['from']) self.assertEqual('Test', sensor.device_state_attributes['subject']) @@ -89,13 +91,15 @@ def test_multi_part_with_text(self): sensor.entity_id = "sensor.emailtest" sensor.schedule_update_ha_state(True) self.hass.block_till_done() - self.assertEqual("Test Message", sensor.state) + self.assertEqual('Link', sensor.state) + self.assertEqual("Test Message", + sensor.device_state_attributes['body']) def test_multi_part_only_html(self): """Test multi part emails with only HTML.""" msg = MIMEMultipart('alternative') - msg['Subject'] = "Link" - msg['From'] = "sender@test.com" + msg['Subject'] = 'Link' + msg['From'] = 'sender@test.com' html = "Test Message" @@ -113,9 +117,10 @@ def test_multi_part_only_html(self): sensor.entity_id = 'sensor.emailtest' sensor.schedule_update_ha_state(True) self.hass.block_till_done() + self.assertEqual('Link', sensor.state) self.assertEqual( "Test Message", - sensor.state) + sensor.device_state_attributes['body']) def test_multi_part_only_other_text(self): """Test multi part emails with only other text.""" @@ -136,7 +141,9 @@ def test_multi_part_only_other_text(self): sensor.entity_id = 'sensor.emailtest' sensor.schedule_update_ha_state(True) self.hass.block_till_done() - self.assertEqual("Test Message", sensor.state) + self.assertEqual('Link', sensor.state) + self.assertEqual("Test Message", + sensor.device_state_attributes['body']) def test_multiple_emails(self): """Test multiple emails.""" @@ -172,10 +179,11 @@ def state_changed_listener(entity_id, from_s, to_s): sensor.schedule_update_ha_state(True) self.hass.block_till_done() - self.assertEqual("Test Message", states[0].state) - self.assertEqual("Test Message 2", states[1].state) + self.assertEqual("Test", states[0].state) + self.assertEqual("Test 2", states[1].state) - self.assertEqual("Test Message 2", sensor.state) + self.assertEqual("Test Message 2", + sensor.device_state_attributes['body']) def test_sender_not_allowed(self): """Test not whitelisted emails.""" From 9e42140f4d1d91544dc679edfefdaf9c34957c24 Mon Sep 17 00:00:00 2001 From: NotoriousBDG Date: Tue, 12 Dec 2017 08:48:41 -0500 Subject: [PATCH 2/2] Fix variable names --- homeassistant/components/sensor/imap_email_content.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sensor/imap_email_content.py b/homeassistant/components/sensor/imap_email_content.py index 32bc7c03418363..1f04cd606d6c43 100644 --- a/homeassistant/components/sensor/imap_email_content.py +++ b/homeassistant/components/sensor/imap_email_content.py @@ -219,12 +219,12 @@ def update(self): return if self.sender_allowed(email_message): - message_body = EmailContentSensor.get_msg_subject(email_message) + message = EmailContentSensor.get_msg_subject(email_message) if self._value_template is not None: - message_body = self.render_template(email_message) + message = self.render_template(email_message) - self._message = message_body + self._message = message self._state_attributes = { ATTR_FROM: EmailContentSensor.get_msg_sender(email_message),