1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-26 22:18:40 +00:00
This commit is contained in:
Paulus Schoutsen
2019-07-31 12:25:30 -07:00
parent da05dfe708
commit 4de97abc3a
2676 changed files with 163166 additions and 140084 deletions

View File

@@ -5,8 +5,7 @@ from unittest.mock import call, mock_open, patch
from homeassistant.setup import setup_component
import homeassistant.components.notify as notify
from homeassistant.components.notify import (
ATTR_TITLE_DEFAULT)
from homeassistant.components.notify import ATTR_TITLE_DEFAULT
import homeassistant.util.dt as dt_util
from tests.common import assert_setup_component, get_test_home_assistant
@@ -25,60 +24,61 @@ class TestNotifyFile(unittest.TestCase):
def test_bad_config(self):
"""Test set up the platform with bad/missing config."""
config = {
notify.DOMAIN: {
'name': 'test',
'platform': 'file',
},
}
config = {notify.DOMAIN: {"name": "test", "platform": "file"}}
with assert_setup_component(0) as handle_config:
assert setup_component(self.hass, notify.DOMAIN, config)
assert not handle_config[notify.DOMAIN]
def _test_notify_file(self, timestamp):
"""Test the notify file output."""
filename = 'mock_file'
message = 'one, two, testing, testing'
filename = "mock_file"
message = "one, two, testing, testing"
with assert_setup_component(1) as handle_config:
assert setup_component(self.hass, notify.DOMAIN, {
'notify': {
'name': 'test',
'platform': 'file',
'filename': filename,
'timestamp': timestamp,
}
})
assert setup_component(
self.hass,
notify.DOMAIN,
{
"notify": {
"name": "test",
"platform": "file",
"filename": filename,
"timestamp": timestamp,
}
},
)
assert handle_config[notify.DOMAIN]
m_open = mock_open()
with patch(
'homeassistant.components.file.notify.open',
m_open, create=True
), patch('homeassistant.components.file.notify.os.stat') as mock_st, \
patch('homeassistant.util.dt.utcnow',
return_value=dt_util.utcnow()):
"homeassistant.components.file.notify.open", m_open, create=True
), patch("homeassistant.components.file.notify.os.stat") as mock_st, patch(
"homeassistant.util.dt.utcnow", return_value=dt_util.utcnow()
):
mock_st.return_value.st_size = 0
title = '{} notifications (Log started: {})\n{}\n'.format(
ATTR_TITLE_DEFAULT,
dt_util.utcnow().isoformat(),
'-' * 80)
title = "{} notifications (Log started: {})\n{}\n".format(
ATTR_TITLE_DEFAULT, dt_util.utcnow().isoformat(), "-" * 80
)
self.hass.services.call('notify', 'test', {'message': message},
blocking=True)
self.hass.services.call(
"notify", "test", {"message": message}, blocking=True
)
full_filename = os.path.join(self.hass.config.path(), filename)
assert m_open.call_count == 1
assert m_open.call_args == call(full_filename, 'a')
assert m_open.call_args == call(full_filename, "a")
assert m_open.return_value.write.call_count == 2
if not timestamp:
assert m_open.return_value.write.call_args_list == \
[call(title), call('{}\n'.format(message))]
assert m_open.return_value.write.call_args_list == [
call(title),
call("{}\n".format(message)),
]
else:
assert m_open.return_value.write.call_args_list == \
[call(title), call('{} {}\n'.format(
dt_util.utcnow().isoformat(), message))]
assert m_open.return_value.write.call_args_list == [
call(title),
call("{} {}\n".format(dt_util.utcnow().isoformat(), message)),
]
def test_notify_file(self):
"""Test the notify file output without timestamp."""