hass-core/tests/components/test_panel_custom.py
Paulus Schoutsen 2bdad5388b Consolidate frontend (#9915)
* Consolidate frontend

* Remove home-assistant-polymer submodule

* Convert to using a pypi package for frontend

* fix release script

* Lint

* Remove unused file

* Remove frontend related scripts

* Move hass_frontend to frontend REQUIREMENTS

* Fix tests

* lint

* Address comments

* Lint + fix tests in py34

* Fix py34 tests again

* fix typo
2017-10-24 19:36:27 -07:00

79 lines
2.3 KiB
Python

"""The tests for the panel_custom component."""
import asyncio
from unittest.mock import Mock, patch
import pytest
from homeassistant import setup
from tests.common import mock_coro, mock_component
@pytest.fixture
def mock_register(hass):
"""Mock the frontend component being loaded and yield register method."""
mock_component(hass, 'frontend')
with patch('homeassistant.components.frontend.async_register_panel',
return_value=mock_coro()) as mock_register:
yield mock_register
@asyncio.coroutine
def test_webcomponent_custom_path_not_found(hass, mock_register):
"""Test if a web component is found in config panels dir."""
filename = 'mock.file'
config = {
'panel_custom': {
'name': 'todomvc',
'webcomponent_path': filename,
'sidebar_title': 'Sidebar Title',
'sidebar_icon': 'mdi:iconicon',
'url_path': 'nice_url',
'config': 5,
}
}
with patch('os.path.isfile', Mock(return_value=False)):
result = yield from setup.async_setup_component(
hass, 'panel_custom', config
)
assert not result
assert not mock_register.called
@asyncio.coroutine
def test_webcomponent_custom_path(hass, mock_register):
"""Test if a web component is found in config panels dir."""
filename = 'mock.file'
config = {
'panel_custom': {
'name': 'todomvc',
'webcomponent_path': filename,
'sidebar_title': 'Sidebar Title',
'sidebar_icon': 'mdi:iconicon',
'url_path': 'nice_url',
'config': 5,
}
}
with patch('os.path.isfile', Mock(return_value=True)):
with patch('os.access', Mock(return_value=True)):
result = yield from setup.async_setup_component(
hass, 'panel_custom', config
)
assert result
assert mock_register.called
args = mock_register.mock_calls[0][1]
assert args == (hass, 'todomvc', filename)
kwargs = mock_register.mock_calls[0][2]
assert kwargs == {
'config': 5,
'url_path': 'nice_url',
'sidebar_icon': 'mdi:iconicon',
'sidebar_title': 'Sidebar Title'
}