def mock_registry(hass, mock_entries=None): """Mock the Entity Registry.""" registry = entity_registry.EntityRegistry(hass) registry.entities = mock_entries or OrderedDict() hass.data[entity_registry.DATA_REGISTRY] = registry return registry
async def test_loading_saving_data(hass, registry): """Test that we load/save data correctly.""" orig_entry1 = registry.async_get_or_create('light', 'hue', '1234') orig_entry2 = registry.async_get_or_create('light', 'hue', '5678', config_entry_id='mock-id') assert len(registry.entities) == 2 # Now load written data in new registry registry2 = entity_registry.EntityRegistry(hass) await flush_store(registry._store) await registry2.async_load() # Ensure same order assert list(registry.entities) == list(registry2.entities) new_entry1 = registry.async_get_or_create('light', 'hue', '1234') new_entry2 = registry.async_get_or_create('light', 'hue', '5678', config_entry_id='mock-id') assert orig_entry1 == new_entry1 assert orig_entry2 == new_entry2
def test_loading_saving_data(hass, registry): """Test that we load/save data correctly.""" orig_entry1 = registry.async_get_or_create('light', 'hue', '1234') orig_entry2 = registry.async_get_or_create('light', 'hue', '5678') assert len(registry.entities) == 2 with patch(YAML__OPEN_PATH, mock_open(), create=True) as mock_write: yield from registry._async_save() # Mock open calls are: open file, context enter, write, context leave written = mock_write.mock_calls[2][1][0] # Now load written data in new registry registry2 = entity_registry.EntityRegistry(hass) with patch('os.path.isfile', return_value=True), \ patch(YAML__OPEN_PATH, mock_open(read_data=written), create=True): yield from registry2._async_load() # Ensure same order assert list(registry.entities) == list(registry2.entities) new_entry1 = registry.async_get_or_create('light', 'hue', '1234') new_entry2 = registry.async_get_or_create('light', 'hue', '5678') assert orig_entry1 == new_entry1 assert orig_entry2 == new_entry2
async def test_loading_saving_data(hass, registry): """Test that we load/save data correctly.""" mock_config = MockConfigEntry(domain="light") orig_entry1 = registry.async_get_or_create("light", "hue", "1234") orig_entry2 = registry.async_get_or_create("light", "hue", "5678", config_entry=mock_config) assert len(registry.entities) == 2 # Now load written data in new registry registry2 = entity_registry.EntityRegistry(hass) await flush_store(registry._store) await registry2.async_load() # Ensure same order assert list(registry.entities) == list(registry2.entities) new_entry1 = registry.async_get_or_create("light", "hue", "1234") new_entry2 = registry.async_get_or_create("light", "hue", "5678", config_entry=mock_config) assert orig_entry1 == new_entry1 assert orig_entry2 == new_entry2
async def test_loading_saving_data(hass, registry): """Test that we load/save data correctly.""" mock_config = MockConfigEntry(domain="light") orig_entry1 = registry.async_get_or_create("light", "hue", "1234") orig_entry2 = registry.async_get_or_create( "light", "hue", "5678", area_id="mock-area-id", capabilities={"max": 100}, config_entry=mock_config, device_id="mock-dev-id", disabled_by=er.DISABLED_HASS, entity_category="config", original_device_class="mock-device-class", original_icon="hass:original-icon", original_name="Original Name", supported_features=5, unit_of_measurement="initial-unit_of_measurement", ) orig_entry2 = registry.async_update_entity( orig_entry2.entity_id, device_class="user-class", name="User Name", icon="hass:user-icon", ) assert len(registry.entities) == 2 # Now load written data in new registry registry2 = er.EntityRegistry(hass) await flush_store(registry._store) await registry2.async_load() # Ensure same order assert list(registry.entities) == list(registry2.entities) new_entry1 = registry.async_get_or_create("light", "hue", "1234") new_entry2 = registry.async_get_or_create("light", "hue", "5678") assert orig_entry1 == new_entry1 assert orig_entry2 == new_entry2 assert new_entry2.area_id == "mock-area-id" assert new_entry2.capabilities == {"max": 100} assert new_entry2.config_entry_id == mock_config.entry_id assert new_entry2.device_class == "user-class" assert new_entry2.device_id == "mock-dev-id" assert new_entry2.disabled_by == er.DISABLED_HASS assert new_entry2.entity_category == "config" assert new_entry2.icon == "hass:user-icon" assert new_entry2.name == "User Name" assert new_entry2.original_device_class == "mock-device-class" assert new_entry2.original_icon == "hass:original-icon" assert new_entry2.original_name == "Original Name" assert new_entry2.supported_features == 5 assert new_entry2.unit_of_measurement == "initial-unit_of_measurement"
def mock_registry(hass, mock_entries=None): """Mock the Entity Registry.""" registry = entity_registry.EntityRegistry(hass) registry.entities = mock_entries or OrderedDict() async def _get_reg(): return registry hass.data[entity_registry.DATA_REGISTRY] = \ hass.loop.create_task(_get_reg()) return registry
def mock_registry(hass, mock_entries=None): """Mock the Entity Registry.""" registry = entity_registry.EntityRegistry(hass) if mock_entries is None: mock_entries = {} registry.entities = entity_registry.EntityRegistryItems() for key, entry in mock_entries.items(): registry.entities[key] = entry hass.data[entity_registry.DATA_REGISTRY] = registry return registry
def test_loading_extra_values(hass): """Test we load extra data from the registry.""" written = """ test.named: platform: super_platform unique_id: with-name name: registry override test.no_name: platform: super_platform unique_id: without-name test.disabled_user: platform: super_platform unique_id: disabled-user disabled_by: user test.disabled_hass: platform: super_platform unique_id: disabled-hass disabled_by: hass """ registry = entity_registry.EntityRegistry(hass) with patch('os.path.isfile', return_value=True), \ patch(YAML__OPEN_PATH, mock_open(read_data=written), create=True): yield from registry._async_load() entry_with_name = registry.async_get_or_create('test', 'super_platform', 'with-name') entry_without_name = registry.async_get_or_create('test', 'super_platform', 'without-name') assert entry_with_name.name == 'registry override' assert entry_without_name.name is None assert not entry_with_name.disabled entry_disabled_hass = registry.async_get_or_create('test', 'super_platform', 'disabled-hass') entry_disabled_user = registry.async_get_or_create('test', 'super_platform', 'disabled-user') assert entry_disabled_hass.disabled assert entry_disabled_hass.disabled_by == entity_registry.DISABLED_HASS assert entry_disabled_user.disabled assert entry_disabled_user.disabled_by == entity_registry.DISABLED_USER
async def test_loading_saving_data(hass, registry): """Test that we load/save data correctly.""" mock_config = MockConfigEntry(domain="light") orig_entry1 = registry.async_get_or_create("light", "hue", "1234") orig_entry2 = registry.async_get_or_create( "light", "hue", "5678", device_id="mock-dev-id", config_entry=mock_config, capabilities={"max": 100}, supported_features=5, device_class="mock-device-class", disabled_by=entity_registry.DISABLED_HASS, ) assert len(registry.entities) == 2 # Now load written data in new registry registry2 = entity_registry.EntityRegistry(hass) await flush_store(registry._store) await registry2.async_load() # Ensure same order assert list(registry.entities) == list(registry2.entities) new_entry1 = registry.async_get_or_create("light", "hue", "1234") new_entry2 = registry.async_get_or_create("light", "hue", "5678") assert orig_entry1 == new_entry1 assert orig_entry2 == new_entry2 assert new_entry2.device_id == "mock-dev-id" assert new_entry2.disabled_by == entity_registry.DISABLED_HASS assert new_entry2.capabilities == {"max": 100} assert new_entry2.supported_features == 5 assert new_entry2.device_class == "mock-device-class"
def test_loading_extra_values(hass): """Test we load extra data from the registry.""" written = """ test.named: platform: super_platform unique_id: with-name name: registry override test.no_name: platform: super_platform unique_id: without-name """ registry = entity_registry.EntityRegistry(hass) with patch('os.path.isfile', return_value=True), \ patch(YAML__OPEN_PATH, mock_open(read_data=written), create=True): yield from registry._async_load() entry_with_name = registry.async_get_or_create('test', 'super_platform', 'with-name') entry_without_name = registry.async_get_or_create('test', 'super_platform', 'without-name') assert entry_with_name.name == 'registry override' assert entry_without_name.name is None
def mock_registry(hass, mock_entries=None): """Mock the Entity Registry.""" registry = entity_registry.EntityRegistry(hass) registry.entities = mock_entries or {} hass.data[entity_platform.DATA_REGISTRY] = registry return registry