mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 13:47:35 +00:00
Separate Shelly tests parameters in parametrize (#86778)
Shelly tests - separate parameters in parametrize
This commit is contained in:
parent
ef800335fb
commit
f9f9741d2a
@ -26,10 +26,6 @@ from . import init_integration
|
|||||||
|
|
||||||
from tests.common import MockConfigEntry
|
from tests.common import MockConfigEntry
|
||||||
|
|
||||||
MOCK_SETTINGS = {
|
|
||||||
"name": "Test name",
|
|
||||||
"device": {"mac": "test-mac", "hostname": "test-host", "type": "SHSW-1"},
|
|
||||||
}
|
|
||||||
DISCOVERY_INFO = zeroconf.ZeroconfServiceInfo(
|
DISCOVERY_INFO = zeroconf.ZeroconfServiceInfo(
|
||||||
host="1.1.1.1",
|
host="1.1.1.1",
|
||||||
addresses=["1.1.1.1"],
|
addresses=["1.1.1.1"],
|
||||||
@ -48,11 +44,6 @@ DISCOVERY_INFO_WITH_MAC = zeroconf.ZeroconfServiceInfo(
|
|||||||
properties={zeroconf.ATTR_PROPERTIES_ID: "shelly1pm-AABBCCDDEEFF"},
|
properties={zeroconf.ATTR_PROPERTIES_ID: "shelly1pm-AABBCCDDEEFF"},
|
||||||
type="mock_type",
|
type="mock_type",
|
||||||
)
|
)
|
||||||
MOCK_CONFIG = {
|
|
||||||
"sys": {
|
|
||||||
"device": {"name": "Test name"},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@ -62,9 +53,8 @@ MOCK_CONFIG = {
|
|||||||
(2, "SNSW-002P16EU"),
|
(2, "SNSW-002P16EU"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_form(hass, mock_block_device, mock_rpc_device, gen, model):
|
async def test_form(hass, gen, model, mock_block_device, mock_rpc_device):
|
||||||
"""Test we get the form."""
|
"""Test we get the form."""
|
||||||
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
@ -99,7 +89,7 @@ async def test_form(hass, mock_block_device, mock_rpc_device, gen, model):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"test_data",
|
"gen, model, user_input, username",
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
1,
|
1,
|
||||||
@ -115,9 +105,10 @@ async def test_form(hass, mock_block_device, mock_rpc_device, gen, model):
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_form_auth(hass, test_data, mock_block_device, mock_rpc_device):
|
async def test_form_auth(
|
||||||
|
hass, gen, model, user_input, username, mock_block_device, mock_rpc_device
|
||||||
|
):
|
||||||
"""Test manual configuration if auth is required."""
|
"""Test manual configuration if auth is required."""
|
||||||
gen, model, user_input, username = test_data
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
@ -162,11 +153,14 @@ async def test_form_auth(hass, test_data, mock_block_device, mock_rpc_device):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"error", [(DeviceConnectionError, "cannot_connect"), (ValueError, "unknown")]
|
"exc, base_error",
|
||||||
|
[
|
||||||
|
(DeviceConnectionError, "cannot_connect"),
|
||||||
|
(ValueError, "unknown"),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
async def test_form_errors_get_info(hass, error):
|
async def test_form_errors_get_info(hass, exc, base_error):
|
||||||
"""Test we handle errors."""
|
"""Test we handle errors."""
|
||||||
exc, base_error = error
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
@ -254,11 +248,14 @@ async def test_form_missing_model_key_zeroconf(
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"error", [(DeviceConnectionError, "cannot_connect"), (ValueError, "unknown")]
|
"exc, base_error",
|
||||||
|
[
|
||||||
|
(DeviceConnectionError, "cannot_connect"),
|
||||||
|
(ValueError, "unknown"),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
async def test_form_errors_test_connection(hass, error):
|
async def test_form_errors_test_connection(hass, exc, base_error):
|
||||||
"""Test we handle errors."""
|
"""Test we handle errors."""
|
||||||
exc, base_error = error
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
@ -364,16 +361,15 @@ async def test_form_firmware_unsupported(hass):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"error",
|
"exc, base_error",
|
||||||
[
|
[
|
||||||
(InvalidAuthError, "invalid_auth"),
|
(InvalidAuthError, "invalid_auth"),
|
||||||
(DeviceConnectionError, "cannot_connect"),
|
(DeviceConnectionError, "cannot_connect"),
|
||||||
(ValueError, "unknown"),
|
(ValueError, "unknown"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_form_auth_errors_test_connection_gen1(hass, error):
|
async def test_form_auth_errors_test_connection_gen1(hass, exc, base_error):
|
||||||
"""Test we handle errors in Gen1 authenticated devices."""
|
"""Test we handle errors in Gen1 authenticated devices."""
|
||||||
exc, base_error = error
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
@ -400,16 +396,15 @@ async def test_form_auth_errors_test_connection_gen1(hass, error):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"error",
|
"exc, base_error",
|
||||||
[
|
[
|
||||||
(DeviceConnectionError, "cannot_connect"),
|
(DeviceConnectionError, "cannot_connect"),
|
||||||
(InvalidAuthError, "invalid_auth"),
|
(InvalidAuthError, "invalid_auth"),
|
||||||
(ValueError, "unknown"),
|
(ValueError, "unknown"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_form_auth_errors_test_connection_gen2(hass, error):
|
async def test_form_auth_errors_test_connection_gen2(hass, exc, base_error):
|
||||||
"""Test we handle errors in Gen2 authenticated devices."""
|
"""Test we handle errors in Gen2 authenticated devices."""
|
||||||
exc, base_error = error
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||||
)
|
)
|
||||||
@ -714,15 +709,16 @@ async def test_zeroconf_require_auth(hass, mock_block_device):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"test_data",
|
"gen, user_input",
|
||||||
[
|
[
|
||||||
(1, {"username": "test user", "password": "test1 password"}),
|
(1, {"username": "test user", "password": "test1 password"}),
|
||||||
(2, {"password": "test2 password"}),
|
(2, {"password": "test2 password"}),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_reauth_successful(hass, test_data, mock_block_device, mock_rpc_device):
|
async def test_reauth_successful(
|
||||||
|
hass, gen, user_input, mock_block_device, mock_rpc_device
|
||||||
|
):
|
||||||
"""Test starting a reauthentication flow."""
|
"""Test starting a reauthentication flow."""
|
||||||
gen, user_input = test_data
|
|
||||||
entry = MockConfigEntry(
|
entry = MockConfigEntry(
|
||||||
domain="shelly", unique_id="test-mac", data={"host": "0.0.0.0", "gen": gen}
|
domain="shelly", unique_id="test-mac", data={"host": "0.0.0.0", "gen": gen}
|
||||||
)
|
)
|
||||||
@ -751,15 +747,14 @@ async def test_reauth_successful(hass, test_data, mock_block_device, mock_rpc_de
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"test_data",
|
"gen, user_input",
|
||||||
[
|
[
|
||||||
(1, {"username": "test user", "password": "test1 password"}),
|
(1, {"username": "test user", "password": "test1 password"}),
|
||||||
(2, {"password": "test2 password"}),
|
(2, {"password": "test2 password"}),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_reauth_unsuccessful(hass, test_data):
|
async def test_reauth_unsuccessful(hass, gen, user_input):
|
||||||
"""Test reauthentication flow failed."""
|
"""Test reauthentication flow failed."""
|
||||||
gen, user_input = test_data
|
|
||||||
entry = MockConfigEntry(
|
entry = MockConfigEntry(
|
||||||
domain="shelly", unique_id="test-mac", data={"host": "0.0.0.0", "gen": gen}
|
domain="shelly", unique_id="test-mac", data={"host": "0.0.0.0", "gen": gen}
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user