* 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
79 lines
2.3 KiB
Python
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'
|
|
}
|