Improve Plugwise tests (#132677)

This commit is contained in:
Tom 2024-12-09 19:00:51 +01:00 committed by GitHub
parent b1217f5792
commit 0c08e88953
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 70 additions and 6 deletions

View File

@ -2,12 +2,8 @@ rules:
## Bronze
config-flow: done
test-before-configure: done
unique-config-entry:
status: todo
comment: Add tests preventing second entry for same device
config-flow-test-coverage:
status: todo
comment: Cover test_form and zeroconf
unique-config-entry: done
config-flow-test-coverage: done
runtime-data: done
test-before-setup: done
appropriate-polling: done

View File

@ -35,6 +35,7 @@ TEST_PASSWORD = "test_password"
TEST_PORT = 81
TEST_USERNAME = "smile"
TEST_USERNAME2 = "stretch"
MOCK_SMILE_ID = "smile12345"
TEST_DISCOVERY = ZeroconfServiceInfo(
ip_address=ip_address(TEST_HOST),
@ -128,6 +129,8 @@ async def test_form(
assert len(mock_setup_entry.mock_calls) == 1
assert len(mock_smile_config_flow.connect.mock_calls) == 1
assert result2["result"].unique_id == MOCK_SMILE_ID
@pytest.mark.parametrize(
("discovery", "username"),
@ -172,6 +175,8 @@ async def test_zeroconf_flow(
assert len(mock_setup_entry.mock_calls) == 1
assert len(mock_smile_config_flow.connect.mock_calls) == 1
assert result2["result"].unique_id == MOCK_SMILE_ID
async def test_zeroconf_flow_stretch(
hass: HomeAssistant,
@ -311,6 +316,69 @@ async def test_flow_errors(
assert len(mock_smile_config_flow.connect.mock_calls) == 2
async def test_user_abort_existing_anna(
hass: HomeAssistant,
mock_setup_entry: AsyncMock,
mock_smile_config_flow: MagicMock,
) -> None:
"""Test the full user configuration flow."""
entry = MockConfigEntry(
domain=DOMAIN,
title=CONF_NAME,
data={
CONF_HOST: TEST_HOST,
CONF_USERNAME: TEST_USERNAME,
CONF_PASSWORD: TEST_PASSWORD,
},
unique_id=MOCK_SMILE_ID,
)
entry.add_to_hass(hass)
result = await hass.config_entries.flow.async_init(
DOMAIN, context={CONF_SOURCE: SOURCE_USER}
)
result2 = await hass.config_entries.flow.async_configure(
result["flow_id"],
user_input={
CONF_HOST: TEST_HOST,
CONF_PASSWORD: TEST_PASSWORD,
},
)
await hass.async_block_till_done()
assert result2.get("type") is FlowResultType.ABORT
assert result2.get("reason") == "already_configured"
async def test_zeroconf_abort_existing_anna(
hass: HomeAssistant,
mock_setup_entry: AsyncMock,
mock_smile_config_flow: MagicMock,
) -> None:
"""Test the full user configuration flow."""
entry = MockConfigEntry(
domain=DOMAIN,
title=CONF_NAME,
data={
CONF_HOST: TEST_HOST,
CONF_USERNAME: TEST_USERNAME,
CONF_PASSWORD: TEST_PASSWORD,
},
unique_id=TEST_HOSTNAME,
)
entry.add_to_hass(hass)
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={CONF_SOURCE: SOURCE_ZEROCONF},
data=TEST_DISCOVERY_ANNA,
)
assert result.get("type") is FlowResultType.ABORT
assert result.get("reason") == "already_configured"
async def test_zeroconf_abort_anna_with_existing_config_entries(
hass: HomeAssistant,
mock_smile_adam: MagicMock,