121 lines
3.8 KiB
Python
121 lines
3.8 KiB
Python
"""Test the Emulated Hue component."""
|
|
from unittest.mock import MagicMock, Mock, patch
|
|
|
|
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, 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, 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, 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"
|