mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Move IMAP Email Content body to an attribute (#11096)
* Move IMAP Email Content body to an attribute * Fix variable names
This commit is contained in:
parent
0f914b4c20
commit
e2cec9b3ae
@ -219,17 +219,19 @@ class EmailContentSensor(Entity):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if self.sender_allowed(email_message):
|
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:
|
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 = {
|
self._state_attributes = {
|
||||||
ATTR_FROM:
|
ATTR_FROM:
|
||||||
EmailContentSensor.get_msg_sender(email_message),
|
EmailContentSensor.get_msg_sender(email_message),
|
||||||
ATTR_SUBJECT:
|
ATTR_SUBJECT:
|
||||||
EmailContentSensor.get_msg_subject(email_message),
|
EmailContentSensor.get_msg_subject(email_message),
|
||||||
ATTR_DATE:
|
ATTR_DATE:
|
||||||
email_message['Date']
|
email_message['Date'],
|
||||||
|
ATTR_BODY:
|
||||||
|
EmailContentSensor.get_msg_text(email_message)
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,9 @@ class EmailContentSensor(unittest.TestCase):
|
|||||||
sensor.entity_id = 'sensor.emailtest'
|
sensor.entity_id = 'sensor.emailtest'
|
||||||
sensor.schedule_update_ha_state(True)
|
sensor.schedule_update_ha_state(True)
|
||||||
self.hass.block_till_done()
|
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',
|
self.assertEqual('sender@test.com',
|
||||||
sensor.device_state_attributes['from'])
|
sensor.device_state_attributes['from'])
|
||||||
self.assertEqual('Test', sensor.device_state_attributes['subject'])
|
self.assertEqual('Test', sensor.device_state_attributes['subject'])
|
||||||
@ -89,13 +91,15 @@ class EmailContentSensor(unittest.TestCase):
|
|||||||
sensor.entity_id = "sensor.emailtest"
|
sensor.entity_id = "sensor.emailtest"
|
||||||
sensor.schedule_update_ha_state(True)
|
sensor.schedule_update_ha_state(True)
|
||||||
self.hass.block_till_done()
|
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):
|
def test_multi_part_only_html(self):
|
||||||
"""Test multi part emails with only HTML."""
|
"""Test multi part emails with only HTML."""
|
||||||
msg = MIMEMultipart('alternative')
|
msg = MIMEMultipart('alternative')
|
||||||
msg['Subject'] = "Link"
|
msg['Subject'] = 'Link'
|
||||||
msg['From'] = "sender@test.com"
|
msg['From'] = 'sender@test.com'
|
||||||
|
|
||||||
html = "<html><head></head><body>Test Message</body></html>"
|
html = "<html><head></head><body>Test Message</body></html>"
|
||||||
|
|
||||||
@ -113,9 +117,10 @@ class EmailContentSensor(unittest.TestCase):
|
|||||||
sensor.entity_id = 'sensor.emailtest'
|
sensor.entity_id = 'sensor.emailtest'
|
||||||
sensor.schedule_update_ha_state(True)
|
sensor.schedule_update_ha_state(True)
|
||||||
self.hass.block_till_done()
|
self.hass.block_till_done()
|
||||||
|
self.assertEqual('Link', sensor.state)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
"<html><head></head><body>Test Message</body></html>",
|
"<html><head></head><body>Test Message</body></html>",
|
||||||
sensor.state)
|
sensor.device_state_attributes['body'])
|
||||||
|
|
||||||
def test_multi_part_only_other_text(self):
|
def test_multi_part_only_other_text(self):
|
||||||
"""Test multi part emails with only other text."""
|
"""Test multi part emails with only other text."""
|
||||||
@ -136,7 +141,9 @@ class EmailContentSensor(unittest.TestCase):
|
|||||||
sensor.entity_id = 'sensor.emailtest'
|
sensor.entity_id = 'sensor.emailtest'
|
||||||
sensor.schedule_update_ha_state(True)
|
sensor.schedule_update_ha_state(True)
|
||||||
self.hass.block_till_done()
|
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):
|
def test_multiple_emails(self):
|
||||||
"""Test multiple emails."""
|
"""Test multiple emails."""
|
||||||
@ -172,10 +179,11 @@ class EmailContentSensor(unittest.TestCase):
|
|||||||
sensor.schedule_update_ha_state(True)
|
sensor.schedule_update_ha_state(True)
|
||||||
self.hass.block_till_done()
|
self.hass.block_till_done()
|
||||||
|
|
||||||
self.assertEqual("Test Message", states[0].state)
|
self.assertEqual("Test", states[0].state)
|
||||||
self.assertEqual("Test Message 2", states[1].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):
|
def test_sender_not_allowed(self):
|
||||||
"""Test not whitelisted emails."""
|
"""Test not whitelisted emails."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user