Ejemplo n.º 1
0
async def test_complex_setup_component(hass: HomeAssistantType,
                                       aioclient_mock) -> None:
    """Test component setup via legacy yml-based configuration."""
    mock_es_initialization(aioclient_mock,
                           url=MOCK_COMPLEX_LEGACY_CONFIG.get(CONF_URL))

    assert await async_setup_component(
        hass, ELASTIC_DOMAIN, {ELASTIC_DOMAIN: MOCK_COMPLEX_LEGACY_CONFIG})
    await hass.async_block_till_done()
    assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 0

    config_entries = hass.config_entries.async_entries(ELASTIC_DOMAIN)
    assert len(config_entries) == 1

    merged_config = get_merged_config(config_entries[0])

    expected_config = {
        "excluded_domains": ["sensor", "weather"],
        "excluded_entities": ["switch.my_switch"],
        "included_domains": [],
        "included_entities": [],
        "ssl_ca_path": None,
        "publish_mode": "All",
        **MOCK_COMPLEX_LEGACY_CONFIG,
    }

    del expected_config["exclude"]
    del expected_config["only_publish_changed"]

    assert merged_config == expected_config
Ejemplo n.º 2
0
async def test_minimal_setup_component(hass: HomeAssistantType,
                                       aioclient_mock) -> None:
    """Test component setup via legacy yml-based configuration."""
    mock_es_initialization(aioclient_mock,
                           url=MOCK_MINIMAL_LEGACY_CONFIG.get(CONF_URL))

    assert await async_setup_component(
        hass, ELASTIC_DOMAIN, {ELASTIC_DOMAIN: MOCK_MINIMAL_LEGACY_CONFIG})
    await hass.async_block_till_done()
    assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 0

    config_entries = hass.config_entries.async_entries(ELASTIC_DOMAIN)
    assert len(config_entries) == 1

    merged_config = get_merged_config(config_entries[0])

    expected_config = {
        "alias": "active-hass-index",
        "health_sensor_enabled": True,
        "ilm_enabled": True,
        "publish_enabled": True,
        "excluded_domains": [],
        "excluded_entities": [],
        "included_domains": [],
        "included_entities": [],
        "index_format": "hass-events",
        "publish_mode": "All",
        "publish_frequency": 60,
        "timeout": 30,
        "username": None,
        "password": None,
        "verify_ssl": True,
        "ssl_ca_path": None,
        "ilm_delete_after": "365d",
        "ilm_max_size": "30gb",
        "ilm_policy_name": "home-assistant",
        **MOCK_MINIMAL_LEGACY_CONFIG,
    }

    assert merged_config == expected_config
Ejemplo n.º 3
0
async def async_migrate_entry(hass, config_entry: ConfigEntry):
    """Migrate old entry."""
    LOGGER.debug("Migrating config entry from version %s", config_entry.version)

    if config_entry.version == 1:

        new = get_merged_config(config_entry)

        only_publish_changed = new.get(CONF_ONLY_PUBLISH_CHANGED, False)
        new[CONF_PUBLISH_MODE] = (
            PUBLISH_MODE_ANY_CHANGES if only_publish_changed else PUBLISH_MODE_ALL
        )

        if CONF_ONLY_PUBLISH_CHANGED in new:
            del new[CONF_ONLY_PUBLISH_CHANGED]

        config_entry.data = {**new}

        config_entry.version = 2

    LOGGER.info("Migration to version %s successful", config_entry.version)

    return True