core/tests/components/emulated_hue/test_init.py

125 lines
4.1 KiB
Python
Raw Normal View History

"""Test the Emulated Hue component."""
from unittest.mock import patch, Mock, MagicMock
from homeassistant.components.emulated_hue import Config
def test_config_google_home_entity_id_to_number():
"""Test config adheres to the type."""
mock_hass = Mock()
mock_hass.config.path = MagicMock("path", return_value="test_path")
conf = Config(mock_hass, {
'type': 'google_home'
})
with patch('homeassistant.components.emulated_hue.load_json',
return_value={'1': 'light.test2'}) as json_loader:
with patch('homeassistant.components.emulated_hue'
'.save_json') as json_saver:
number = conf.entity_id_to_number('light.test')
assert number == '2'
assert json_saver.mock_calls[0][1][1] == {
'1': 'light.test2', '2': 'light.test'
}
assert json_saver.call_count == 1
assert json_loader.call_count == 1
number = conf.entity_id_to_number('light.test')
assert number == '2'
assert json_saver.call_count == 1
number = conf.entity_id_to_number('light.test2')
assert number == '1'
assert json_saver.call_count == 1
entity_id = conf.number_to_entity_id('1')
assert entity_id == 'light.test2'
def test_config_google_home_entity_id_to_number_altered():
"""Test config adheres to the type."""
mock_hass = Mock()
mock_hass.config.path = MagicMock("path", return_value="test_path")
conf = Config(mock_hass, {
'type': 'google_home'
})
with patch('homeassistant.components.emulated_hue.load_json',
return_value={'21': 'light.test2'}) as json_loader:
with patch('homeassistant.components.emulated_hue'
'.save_json') as json_saver:
number = conf.entity_id_to_number('light.test')
assert number == '22'
assert json_saver.call_count == 1
assert json_loader.call_count == 1
assert json_saver.mock_calls[0][1][1] == {
'21': 'light.test2',
'22': 'light.test',
}
number = conf.entity_id_to_number('light.test')
assert number == '22'
assert json_saver.call_count == 1
number = conf.entity_id_to_number('light.test2')
assert number == '21'
assert json_saver.call_count == 1
entity_id = conf.number_to_entity_id('21')
assert entity_id == 'light.test2'
def test_config_google_home_entity_id_to_number_empty():
"""Test config adheres to the type."""
mock_hass = Mock()
mock_hass.config.path = MagicMock("path", return_value="test_path")
conf = Config(mock_hass, {
'type': 'google_home'
})
with patch('homeassistant.components.emulated_hue.load_json',
return_value={}) as json_loader:
with patch('homeassistant.components.emulated_hue'
'.save_json') as json_saver:
number = conf.entity_id_to_number('light.test')
assert number == '1'
assert json_saver.call_count == 1
assert json_loader.call_count == 1
assert json_saver.mock_calls[0][1][1] == {
'1': 'light.test',
}
number = conf.entity_id_to_number('light.test')
assert number == '1'
assert json_saver.call_count == 1
number = conf.entity_id_to_number('light.test2')
assert number == '2'
assert json_saver.call_count == 2
entity_id = conf.number_to_entity_id('2')
assert entity_id == 'light.test2'
def test_config_alexa_entity_id_to_number():
"""Test config adheres to the type."""
conf = Config(None, {
'type': 'alexa'
})
number = conf.entity_id_to_number('light.test')
assert number == 'light.test'
number = conf.entity_id_to_number('light.test')
assert number == 'light.test'
number = conf.entity_id_to_number('light.test2')
assert number == 'light.test2'
entity_id = conf.number_to_entity_id('light.test')
assert entity_id == 'light.test'