コード例 #1
0
ファイル: common.py プロジェクト: fabiandevia/home
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
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
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"
コード例 #6
0
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
コード例 #7
0
ファイル: common.py プロジェクト: jcgoette/core
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
コード例 #8
0
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
コード例 #9
0
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"
コード例 #10
0
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
コード例 #11
0
ファイル: common.py プロジェクト: yeyong123/home-assistant
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