79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
"""Test KNX init."""
|
|
import pytest
|
|
from xknx import XKNX
|
|
from xknx.io import ConnectionConfig, ConnectionType
|
|
|
|
from homeassistant.components.knx.const import (
|
|
CONF_KNX_AUTOMATIC,
|
|
CONF_KNX_CONNECTION_TYPE,
|
|
CONF_KNX_INDIVIDUAL_ADDRESS,
|
|
CONF_KNX_ROUTING,
|
|
CONF_KNX_TUNNELING,
|
|
DOMAIN as KNX_DOMAIN,
|
|
)
|
|
from homeassistant.components.knx.schema import ConnectionSchema
|
|
from homeassistant.const import CONF_HOST, CONF_PORT
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from .conftest import KNXTestKit
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"config_entry_data,connection_config",
|
|
[
|
|
(
|
|
{
|
|
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_AUTOMATIC,
|
|
},
|
|
ConnectionConfig(),
|
|
),
|
|
(
|
|
{
|
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_ROUTING,
|
|
ConnectionSchema.CONF_KNX_LOCAL_IP: "192.168.1.1",
|
|
},
|
|
ConnectionConfig(
|
|
connection_type=ConnectionType.ROUTING, local_ip="192.168.1.1"
|
|
),
|
|
),
|
|
(
|
|
{
|
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
|
CONF_HOST: "192.168.0.2",
|
|
CONF_PORT: 3675,
|
|
ConnectionSchema.CONF_KNX_ROUTE_BACK: False,
|
|
ConnectionSchema.CONF_KNX_LOCAL_IP: "192.168.1.112",
|
|
},
|
|
ConnectionConfig(
|
|
connection_type=ConnectionType.TUNNELING,
|
|
route_back=False,
|
|
gateway_ip="192.168.0.2",
|
|
gateway_port=3675,
|
|
local_ip="192.168.1.112",
|
|
auto_reconnect=True,
|
|
),
|
|
),
|
|
],
|
|
)
|
|
async def test_init_connection_handling(
|
|
hass: HomeAssistant, knx: KNXTestKit, config_entry_data, connection_config
|
|
):
|
|
"""Test correctly generating connection config."""
|
|
|
|
config_entry = MockConfigEntry(
|
|
title="KNX",
|
|
domain=KNX_DOMAIN,
|
|
data=config_entry_data,
|
|
)
|
|
knx.mock_config_entry = config_entry
|
|
await knx.setup_integration({})
|
|
|
|
assert hass.data.get(KNX_DOMAIN) is not None
|
|
|
|
assert (
|
|
hass.data[KNX_DOMAIN].connection_config().__dict__ == connection_config.__dict__
|
|
)
|