"""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'