diff --git a/homeassistant/components/sensor/imap_email_content.py b/homeassistant/components/sensor/imap_email_content.py index f4d4db201e5..1f04cd606d6 100644 --- a/homeassistant/components/sensor/imap_email_content.py +++ b/homeassistant/components/sensor/imap_email_content.py @@ -219,17 +219,19 @@ class EmailContentSensor(Entity): return if self.sender_allowed(email_message): - message_body = EmailContentSensor.get_msg_text(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), 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 0bba3647c6c..cd5c079a431 100644 --- a/tests/components/sensor/test_imap_email_content.py +++ b/tests/components/sensor/test_imap_email_content.py @@ -60,7 +60,9 @@ class EmailContentSensor(unittest.TestCase): 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 @@ class EmailContentSensor(unittest.TestCase): 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 @@ class EmailContentSensor(unittest.TestCase): 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 @@ class EmailContentSensor(unittest.TestCase): 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 @@ class EmailContentSensor(unittest.TestCase): 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."""