mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Renamed test to ha_test because of conflict with built-in python test package
This commit is contained in:
parent
5835d502c7
commit
ed150b8ea5
29
ha_test/config/custom_components/light/test.py
Normal file
29
ha_test/config/custom_components/light/test.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
"""
|
||||||
|
custom_components.light.test
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Provides a mock switch platform.
|
||||||
|
|
||||||
|
Call init before using it in your tests to ensure clean test data.
|
||||||
|
"""
|
||||||
|
import homeassistant.components as components
|
||||||
|
from ha_test.helper import MockToggleDevice
|
||||||
|
|
||||||
|
|
||||||
|
DEVICES = []
|
||||||
|
|
||||||
|
|
||||||
|
def init(empty=False):
|
||||||
|
""" (re-)initalizes the platform with devices. """
|
||||||
|
global DEVICES
|
||||||
|
|
||||||
|
DEVICES = [] if empty else [
|
||||||
|
MockToggleDevice('Ceiling', components.STATE_ON),
|
||||||
|
MockToggleDevice('Ceiling', components.STATE_OFF),
|
||||||
|
MockToggleDevice(None, components.STATE_OFF)
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def get_lights(hass, config):
|
||||||
|
""" Returns mock devices. """
|
||||||
|
return DEVICES
|
29
ha_test/config/custom_components/switch/test.py
Normal file
29
ha_test/config/custom_components/switch/test.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
"""
|
||||||
|
custom_components.switch.test
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Provides a mock switch platform.
|
||||||
|
|
||||||
|
Call init before using it in your tests to ensure clean test data.
|
||||||
|
"""
|
||||||
|
import homeassistant.components as components
|
||||||
|
from ha_test.helper import MockToggleDevice
|
||||||
|
|
||||||
|
|
||||||
|
DEVICES = []
|
||||||
|
|
||||||
|
|
||||||
|
def init(empty=False):
|
||||||
|
""" (re-)initalizes the platform with devices. """
|
||||||
|
global DEVICES
|
||||||
|
|
||||||
|
DEVICES = [] if empty else [
|
||||||
|
MockToggleDevice('AC', components.STATE_ON),
|
||||||
|
MockToggleDevice('AC', components.STATE_OFF),
|
||||||
|
MockToggleDevice(None, components.STATE_OFF)
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def get_switches(hass, config):
|
||||||
|
""" Returns mock devices. """
|
||||||
|
return DEVICES
|
@ -1,16 +1,48 @@
|
|||||||
"""
|
"""
|
||||||
test.mock.switch_platform
|
ha_test.helper
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
Provides a mock switch platform.
|
Helper method for writing tests.
|
||||||
|
|
||||||
Call init before using it in your tests to ensure clean test data.
|
|
||||||
"""
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
import homeassistant as ha
|
||||||
import homeassistant.components as components
|
import homeassistant.components as components
|
||||||
|
|
||||||
|
|
||||||
|
def get_test_home_assistant():
|
||||||
|
""" Returns a Home Assistant object pointing at test config dir. """
|
||||||
|
hass = ha.HomeAssistant()
|
||||||
|
hass.config_dir = os.path.join(os.path.dirname(__file__), "config")
|
||||||
|
|
||||||
|
return hass
|
||||||
|
|
||||||
|
|
||||||
|
def mock_service(hass, domain, service):
|
||||||
|
"""
|
||||||
|
Sets up a fake service.
|
||||||
|
Returns a list that logs all calls to fake service.
|
||||||
|
"""
|
||||||
|
calls = []
|
||||||
|
|
||||||
|
hass.services.register(
|
||||||
|
domain, service, lambda call: calls.append(call))
|
||||||
|
|
||||||
|
return calls
|
||||||
|
|
||||||
|
|
||||||
|
class MockModule(object):
|
||||||
|
""" Provides a fake module. """
|
||||||
|
|
||||||
|
def __init__(self, domain, dependencies=[], setup=None):
|
||||||
|
self.DOMAIN = domain
|
||||||
|
self.DEPENDENCIES = dependencies
|
||||||
|
# Setup a mock setup if none given.
|
||||||
|
self.setup = lambda hass, config: False if setup is None else setup
|
||||||
|
|
||||||
|
|
||||||
class MockToggleDevice(components.ToggleDevice):
|
class MockToggleDevice(components.ToggleDevice):
|
||||||
""" Fake switch. """
|
""" Provides a mock toggle device. """
|
||||||
def __init__(self, name, state):
|
def __init__(self, name, state):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.state = state
|
self.state = state
|
||||||
@ -42,23 +74,3 @@ class MockToggleDevice(components.ToggleDevice):
|
|||||||
else:
|
else:
|
||||||
return next(call for call in reversed(self.calls)
|
return next(call for call in reversed(self.calls)
|
||||||
if call[0] == method)
|
if call[0] == method)
|
||||||
|
|
||||||
DEVICES = []
|
|
||||||
|
|
||||||
|
|
||||||
def init(empty=False):
|
|
||||||
""" (re-)initalizes the platform with devices. """
|
|
||||||
global DEVICES
|
|
||||||
|
|
||||||
DEVICES = [] if empty else [
|
|
||||||
MockToggleDevice('AC', components.STATE_ON),
|
|
||||||
MockToggleDevice('AC', components.STATE_OFF),
|
|
||||||
MockToggleDevice(None, components.STATE_OFF)
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def get_switches(hass, config):
|
|
||||||
""" Returns mock devices. """
|
|
||||||
return DEVICES
|
|
||||||
|
|
||||||
get_lights = get_switches
|
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_chromecast
|
ha_test.test_component_chromecast
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests Chromecast component.
|
Tests Chromecast component.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_core
|
ha_test.test_component_core
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests core compoments.
|
Tests core compoments.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_demo
|
ha_test.test_component_demo
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests demo component.
|
Tests demo component.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_group
|
ha_test.test_component_group
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests the group compoments.
|
Tests the group compoments.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_http
|
ha_test.test_component_http
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests Home Assistant HTTP component does what it should do.
|
Tests Home Assistant HTTP component does what it should do.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_switch
|
ha_test.test_component_switch
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests switch component.
|
Tests switch component.
|
||||||
"""
|
"""
|
||||||
@ -11,11 +11,11 @@ import os
|
|||||||
import homeassistant as ha
|
import homeassistant as ha
|
||||||
import homeassistant.loader as loader
|
import homeassistant.loader as loader
|
||||||
import homeassistant.util as util
|
import homeassistant.util as util
|
||||||
import homeassistant.components as components
|
from homeassistant.components import (
|
||||||
|
get_component, ATTR_ENTITY_ID, STATE_ON, STATE_OFF,
|
||||||
|
SERVICE_TURN_ON, SERVICE_TURN_OFF)
|
||||||
import homeassistant.components.light as light
|
import homeassistant.components.light as light
|
||||||
|
|
||||||
import mock_toggledevice_platform
|
|
||||||
|
|
||||||
from helper import mock_service, get_test_home_assistant
|
from helper import mock_service, get_test_home_assistant
|
||||||
|
|
||||||
|
|
||||||
@ -25,7 +25,6 @@ class TestLight(unittest.TestCase):
|
|||||||
def setUp(self): # pylint: disable=invalid-name
|
def setUp(self): # pylint: disable=invalid-name
|
||||||
self.hass = get_test_home_assistant()
|
self.hass = get_test_home_assistant()
|
||||||
loader.prepare(self.hass)
|
loader.prepare(self.hass)
|
||||||
loader.set_component('light.test', mock_toggledevice_platform)
|
|
||||||
|
|
||||||
def tearDown(self): # pylint: disable=invalid-name
|
def tearDown(self): # pylint: disable=invalid-name
|
||||||
""" Stop down stuff we started. """
|
""" Stop down stuff we started. """
|
||||||
@ -39,21 +38,21 @@ class TestLight(unittest.TestCase):
|
|||||||
def test_methods(self):
|
def test_methods(self):
|
||||||
""" Test if methods call the services as expected. """
|
""" Test if methods call the services as expected. """
|
||||||
# Test is_on
|
# Test is_on
|
||||||
self.hass.states.set('light.test', components.STATE_ON)
|
self.hass.states.set('light.test', STATE_ON)
|
||||||
self.assertTrue(light.is_on(self.hass, 'light.test'))
|
self.assertTrue(light.is_on(self.hass, 'light.test'))
|
||||||
|
|
||||||
self.hass.states.set('light.test', components.STATE_OFF)
|
self.hass.states.set('light.test', STATE_OFF)
|
||||||
self.assertFalse(light.is_on(self.hass, 'light.test'))
|
self.assertFalse(light.is_on(self.hass, 'light.test'))
|
||||||
|
|
||||||
self.hass.states.set(light.ENTITY_ID_ALL_LIGHTS, components.STATE_ON)
|
self.hass.states.set(light.ENTITY_ID_ALL_LIGHTS, STATE_ON)
|
||||||
self.assertTrue(light.is_on(self.hass))
|
self.assertTrue(light.is_on(self.hass))
|
||||||
|
|
||||||
self.hass.states.set(light.ENTITY_ID_ALL_LIGHTS, components.STATE_OFF)
|
self.hass.states.set(light.ENTITY_ID_ALL_LIGHTS, STATE_OFF)
|
||||||
self.assertFalse(light.is_on(self.hass))
|
self.assertFalse(light.is_on(self.hass))
|
||||||
|
|
||||||
# Test turn_on
|
# Test turn_on
|
||||||
turn_on_calls = mock_service(
|
turn_on_calls = mock_service(
|
||||||
self.hass, light.DOMAIN, components.SERVICE_TURN_ON)
|
self.hass, light.DOMAIN, SERVICE_TURN_ON)
|
||||||
|
|
||||||
light.turn_on(
|
light.turn_on(
|
||||||
self.hass,
|
self.hass,
|
||||||
@ -70,17 +69,19 @@ class TestLight(unittest.TestCase):
|
|||||||
call = turn_on_calls[-1]
|
call = turn_on_calls[-1]
|
||||||
|
|
||||||
self.assertEqual(light.DOMAIN, call.domain)
|
self.assertEqual(light.DOMAIN, call.domain)
|
||||||
self.assertEqual(components.SERVICE_TURN_ON, call.service)
|
self.assertEqual(SERVICE_TURN_ON, call.service)
|
||||||
self.assertEqual('entity_id_val', call.data[components.ATTR_ENTITY_ID])
|
self.assertEqual('entity_id_val', call.data.get(ATTR_ENTITY_ID))
|
||||||
self.assertEqual('transition_val', call.data[light.ATTR_TRANSITION])
|
self.assertEqual(
|
||||||
self.assertEqual('brightness_val', call.data[light.ATTR_BRIGHTNESS])
|
'transition_val', call.data.get(light.ATTR_TRANSITION))
|
||||||
self.assertEqual('rgb_color_val', call.data[light.ATTR_RGB_COLOR])
|
self.assertEqual(
|
||||||
self.assertEqual('xy_color_val', call.data[light.ATTR_XY_COLOR])
|
'brightness_val', call.data.get(light.ATTR_BRIGHTNESS))
|
||||||
self.assertEqual('profile_val', call.data[light.ATTR_PROFILE])
|
self.assertEqual('rgb_color_val', call.data.get(light.ATTR_RGB_COLOR))
|
||||||
|
self.assertEqual('xy_color_val', call.data.get(light.ATTR_XY_COLOR))
|
||||||
|
self.assertEqual('profile_val', call.data.get(light.ATTR_PROFILE))
|
||||||
|
|
||||||
# Test turn_off
|
# Test turn_off
|
||||||
turn_off_calls = mock_service(
|
turn_off_calls = mock_service(
|
||||||
self.hass, light.DOMAIN, components.SERVICE_TURN_OFF)
|
self.hass, light.DOMAIN, SERVICE_TURN_OFF)
|
||||||
|
|
||||||
light.turn_off(
|
light.turn_off(
|
||||||
self.hass, entity_id='entity_id_val', transition='transition_val')
|
self.hass, entity_id='entity_id_val', transition='transition_val')
|
||||||
@ -91,17 +92,19 @@ class TestLight(unittest.TestCase):
|
|||||||
call = turn_off_calls[-1]
|
call = turn_off_calls[-1]
|
||||||
|
|
||||||
self.assertEqual(light.DOMAIN, call.domain)
|
self.assertEqual(light.DOMAIN, call.domain)
|
||||||
self.assertEqual(components.SERVICE_TURN_OFF, call.service)
|
self.assertEqual(SERVICE_TURN_OFF, call.service)
|
||||||
self.assertEqual('entity_id_val', call.data[components.ATTR_ENTITY_ID])
|
self.assertEqual('entity_id_val', call.data[ATTR_ENTITY_ID])
|
||||||
self.assertEqual('transition_val', call.data[light.ATTR_TRANSITION])
|
self.assertEqual('transition_val', call.data[light.ATTR_TRANSITION])
|
||||||
|
|
||||||
def test_services(self):
|
def test_services(self):
|
||||||
""" Test the provided services. """
|
""" Test the provided services. """
|
||||||
mock_toggledevice_platform.init()
|
platform = get_component('light.test')
|
||||||
|
|
||||||
|
platform.init()
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
light.setup(self.hass, {light.DOMAIN: {ha.CONF_TYPE: 'test'}}))
|
light.setup(self.hass, {light.DOMAIN: {ha.CONF_TYPE: 'test'}}))
|
||||||
|
|
||||||
dev1, dev2, dev3 = mock_toggledevice_platform.get_lights(None, None)
|
dev1, dev2, dev3 = platform.get_lights(None, None)
|
||||||
|
|
||||||
# Test init
|
# Test init
|
||||||
self.assertTrue(light.is_on(self.hass, dev1.entity_id))
|
self.assertTrue(light.is_on(self.hass, dev1.entity_id))
|
||||||
@ -224,10 +227,10 @@ class TestLight(unittest.TestCase):
|
|||||||
))
|
))
|
||||||
|
|
||||||
# Test if light component returns 0 lightes
|
# Test if light component returns 0 lightes
|
||||||
mock_toggledevice_platform.init(True)
|
platform = get_component('light.test')
|
||||||
|
platform.init(True)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual([], platform.get_lights(None, None))
|
||||||
[], mock_toggledevice_platform.get_lights(None, None))
|
|
||||||
|
|
||||||
self.assertFalse(light.setup(
|
self.assertFalse(light.setup(
|
||||||
self.hass, {light.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
self.hass, {light.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
||||||
@ -235,7 +238,8 @@ class TestLight(unittest.TestCase):
|
|||||||
|
|
||||||
def test_light_profiles(self):
|
def test_light_profiles(self):
|
||||||
""" Test light profiles. """
|
""" Test light profiles. """
|
||||||
mock_toggledevice_platform.init()
|
platform = get_component('light.test')
|
||||||
|
platform.init()
|
||||||
|
|
||||||
user_light_file = self.hass.get_config_path(light.LIGHT_PROFILES_FILE)
|
user_light_file = self.hass.get_config_path(light.LIGHT_PROFILES_FILE)
|
||||||
|
|
||||||
@ -259,7 +263,7 @@ class TestLight(unittest.TestCase):
|
|||||||
self.hass, {light.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
self.hass, {light.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
||||||
))
|
))
|
||||||
|
|
||||||
dev1, dev2, dev3 = mock_toggledevice_platform.get_lights(None, None)
|
dev1, dev2, dev3 = platform.get_lights(None, None)
|
||||||
|
|
||||||
light.turn_on(self.hass, dev1.entity_id, profile='test')
|
light.turn_on(self.hass, dev1.entity_id, profile='test')
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_sun
|
ha_test.test_component_sun
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests Sun component.
|
Tests Sun component.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_component_switch
|
ha_test.test_component_switch
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests switch component.
|
Tests switch component.
|
||||||
"""
|
"""
|
||||||
@ -9,28 +9,29 @@ import unittest
|
|||||||
|
|
||||||
import homeassistant as ha
|
import homeassistant as ha
|
||||||
import homeassistant.loader as loader
|
import homeassistant.loader as loader
|
||||||
import homeassistant.components as components
|
from homeassistant.components import get_component, STATE_ON, STATE_OFF
|
||||||
import homeassistant.components.switch as switch
|
import homeassistant.components.switch as switch
|
||||||
|
|
||||||
import mock_toggledevice_platform
|
from helper import get_test_home_assistant
|
||||||
|
|
||||||
|
|
||||||
class TestSwitch(unittest.TestCase):
|
class TestSwitch(unittest.TestCase):
|
||||||
""" Test the switch module. """
|
""" Test the switch module. """
|
||||||
|
|
||||||
def setUp(self): # pylint: disable=invalid-name
|
def setUp(self): # pylint: disable=invalid-name
|
||||||
self.hass = ha.HomeAssistant()
|
self.hass = get_test_home_assistant()
|
||||||
loader.prepare(self.hass)
|
loader.prepare(self.hass)
|
||||||
loader.set_component('switch.test', mock_toggledevice_platform)
|
|
||||||
|
|
||||||
mock_toggledevice_platform.init()
|
platform = get_component('switch.test')
|
||||||
|
|
||||||
|
platform.init()
|
||||||
self.assertTrue(switch.setup(
|
self.assertTrue(switch.setup(
|
||||||
self.hass, {switch.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
self.hass, {switch.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
||||||
))
|
))
|
||||||
|
|
||||||
# Switch 1 is ON, switch 2 is OFF
|
# Switch 1 is ON, switch 2 is OFF
|
||||||
self.switch_1, self.switch_2, self.switch_3 = \
|
self.switch_1, self.switch_2, self.switch_3 = \
|
||||||
mock_toggledevice_platform.get_switches(None, None)
|
platform.get_switches(None, None)
|
||||||
|
|
||||||
def tearDown(self): # pylint: disable=invalid-name
|
def tearDown(self): # pylint: disable=invalid-name
|
||||||
""" Stop down stuff we started. """
|
""" Stop down stuff we started. """
|
||||||
@ -40,7 +41,7 @@ class TestSwitch(unittest.TestCase):
|
|||||||
""" Test is_on, turn_on, turn_off methods. """
|
""" Test is_on, turn_on, turn_off methods. """
|
||||||
self.assertTrue(switch.is_on(self.hass))
|
self.assertTrue(switch.is_on(self.hass))
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
components.STATE_ON,
|
STATE_ON,
|
||||||
self.hass.states.get(switch.ENTITY_ID_ALL_SWITCHES).state)
|
self.hass.states.get(switch.ENTITY_ID_ALL_SWITCHES).state)
|
||||||
self.assertTrue(switch.is_on(self.hass, self.switch_1.entity_id))
|
self.assertTrue(switch.is_on(self.hass, self.switch_1.entity_id))
|
||||||
self.assertFalse(switch.is_on(self.hass, self.switch_2.entity_id))
|
self.assertFalse(switch.is_on(self.hass, self.switch_2.entity_id))
|
||||||
@ -62,7 +63,7 @@ class TestSwitch(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertFalse(switch.is_on(self.hass))
|
self.assertFalse(switch.is_on(self.hass))
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
components.STATE_OFF,
|
STATE_OFF,
|
||||||
self.hass.states.get(switch.ENTITY_ID_ALL_SWITCHES).state)
|
self.hass.states.get(switch.ENTITY_ID_ALL_SWITCHES).state)
|
||||||
self.assertFalse(switch.is_on(self.hass, self.switch_1.entity_id))
|
self.assertFalse(switch.is_on(self.hass, self.switch_1.entity_id))
|
||||||
self.assertFalse(switch.is_on(self.hass, self.switch_2.entity_id))
|
self.assertFalse(switch.is_on(self.hass, self.switch_2.entity_id))
|
||||||
@ -75,7 +76,7 @@ class TestSwitch(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertTrue(switch.is_on(self.hass))
|
self.assertTrue(switch.is_on(self.hass))
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
components.STATE_ON,
|
STATE_ON,
|
||||||
self.hass.states.get(switch.ENTITY_ID_ALL_SWITCHES).state)
|
self.hass.states.get(switch.ENTITY_ID_ALL_SWITCHES).state)
|
||||||
self.assertTrue(switch.is_on(self.hass, self.switch_1.entity_id))
|
self.assertTrue(switch.is_on(self.hass, self.switch_1.entity_id))
|
||||||
self.assertTrue(switch.is_on(self.hass, self.switch_2.entity_id))
|
self.assertTrue(switch.is_on(self.hass, self.switch_2.entity_id))
|
||||||
@ -93,10 +94,10 @@ class TestSwitch(unittest.TestCase):
|
|||||||
))
|
))
|
||||||
|
|
||||||
# Test if switch component returns 0 switches
|
# Test if switch component returns 0 switches
|
||||||
mock_toggledevice_platform.init(True)
|
get_component('switch.test').init(True)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[], mock_toggledevice_platform.get_switches(None, None))
|
[], get_component('switch.test').get_switches(None, None))
|
||||||
|
|
||||||
self.assertFalse(switch.setup(
|
self.assertFalse(switch.setup(
|
||||||
self.hass, {switch.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
self.hass, {switch.DOMAIN: {ha.CONF_TYPE: 'test'}}
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_core
|
ha_test.test_core
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Provides tests to verify that Home Assistant core works.
|
Provides tests to verify that Home Assistant core works.
|
||||||
"""
|
"""
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_loader
|
ha_ha_test.test_loader
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Provides tests to verify that we can load components.
|
Provides tests to verify that we can load components.
|
||||||
"""
|
"""
|
||||||
@ -10,7 +10,6 @@ import unittest
|
|||||||
import homeassistant.loader as loader
|
import homeassistant.loader as loader
|
||||||
import homeassistant.components.http as http
|
import homeassistant.components.http as http
|
||||||
|
|
||||||
import mock_toggledevice_platform
|
|
||||||
from helper import get_test_home_assistant, MockModule
|
from helper import get_test_home_assistant, MockModule
|
||||||
|
|
||||||
|
|
||||||
@ -26,16 +25,15 @@ class TestLoader(unittest.TestCase):
|
|||||||
|
|
||||||
def test_set_component(self):
|
def test_set_component(self):
|
||||||
""" Test if set_component works. """
|
""" Test if set_component works. """
|
||||||
loader.set_component('switch.test', mock_toggledevice_platform)
|
loader.set_component('switch.test', http)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(http, loader.get_component('switch.test'))
|
||||||
mock_toggledevice_platform, loader.get_component('switch.test'))
|
|
||||||
|
|
||||||
def test_get_component(self):
|
def test_get_component(self):
|
||||||
""" Test if get_component works. """
|
""" Test if get_component works. """
|
||||||
self.assertEqual(http, loader.get_component('http'))
|
self.assertEqual(http, loader.get_component('http'))
|
||||||
|
|
||||||
self.assertIsNotNone(loader.get_component('custom_one'))
|
self.assertIsNotNone(loader.get_component('switch.test'))
|
||||||
|
|
||||||
def test_load_order_component(self):
|
def test_load_order_component(self):
|
||||||
""" Test if we can get the proper load order of components. """
|
""" Test if we can get the proper load order of components. """
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.remote
|
ha_test.remote
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests Home Assistant remote methods and classes.
|
Tests Home Assistant remote methods and classes.
|
||||||
Uses port 8122 for master, 8123 for slave
|
Uses port 8122 for master, 8123 for slave
|
@ -1,6 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
test.test_util
|
ha_test.test_util
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Tests Home Assistant util methods.
|
Tests Home Assistant util methods.
|
||||||
"""
|
"""
|
@ -62,9 +62,12 @@ def prepare(hass):
|
|||||||
# just might output more errors.
|
# just might output more errors.
|
||||||
for fil in os.listdir(custom_path):
|
for fil in os.listdir(custom_path):
|
||||||
if os.path.isdir(os.path.join(custom_path, fil)):
|
if os.path.isdir(os.path.join(custom_path, fil)):
|
||||||
AVAILABLE_COMPONENTS.append('custom_components.{}'.format(fil))
|
if fil != '__pycache__':
|
||||||
|
AVAILABLE_COMPONENTS.append(
|
||||||
|
'custom_components.{}'.format(fil))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
# For files we will strip out .py extension
|
||||||
AVAILABLE_COMPONENTS.append(
|
AVAILABLE_COMPONENTS.append(
|
||||||
'custom_components.{}'.format(fil[0:-3]))
|
'custom_components.{}'.format(fil[0:-3]))
|
||||||
|
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
pylint homeassistant
|
pylint homeassistant
|
||||||
flake8 homeassistant --exclude bower_components,external
|
flake8 homeassistant --exclude bower_components,external
|
||||||
python3 -m unittest discover test
|
python3 -m unittest discover ha_test
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
"""
|
|
||||||
Module to be loaded by the Loader test.
|
|
||||||
"""
|
|
@ -1,40 +0,0 @@
|
|||||||
"""
|
|
||||||
test.helper
|
|
||||||
~~~~~~~~~~~
|
|
||||||
|
|
||||||
Helper method for writing tests.
|
|
||||||
"""
|
|
||||||
import os
|
|
||||||
|
|
||||||
import homeassistant as ha
|
|
||||||
|
|
||||||
|
|
||||||
def get_test_home_assistant():
|
|
||||||
""" Returns a Home Assistant object pointing at test config dir. """
|
|
||||||
hass = ha.HomeAssistant()
|
|
||||||
hass.config_dir = os.path.join(os.path.dirname(__file__), "config")
|
|
||||||
|
|
||||||
return hass
|
|
||||||
|
|
||||||
|
|
||||||
def mock_service(hass, domain, service):
|
|
||||||
"""
|
|
||||||
Sets up a fake service.
|
|
||||||
Returns a list that logs all calls to fake service.
|
|
||||||
"""
|
|
||||||
calls = []
|
|
||||||
|
|
||||||
hass.services.register(
|
|
||||||
domain, service, lambda call: calls.append(call))
|
|
||||||
|
|
||||||
return calls
|
|
||||||
|
|
||||||
|
|
||||||
class MockModule(object):
|
|
||||||
""" Provides a fake module. """
|
|
||||||
|
|
||||||
def __init__(self, domain, dependencies=[], setup=None):
|
|
||||||
self.DOMAIN = domain
|
|
||||||
self.DEPENDENCIES = dependencies
|
|
||||||
# Setup a mock setup if none given.
|
|
||||||
self.setup = lambda hass, config: False if setup is None else setup
|
|
Loading…
x
Reference in New Issue
Block a user