mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 00:07:10 +00:00
Patch library instead of own code in Minecraft Server config flow tests (#102018)
* Patch library instead of own code in config flow tests * Fix patch location
This commit is contained in:
parent
23b379b7da
commit
4130980100
@ -2,17 +2,22 @@
|
||||
|
||||
from unittest.mock import patch
|
||||
|
||||
from homeassistant.components.minecraft_server.api import (
|
||||
MinecraftServerAddressError,
|
||||
MinecraftServerType,
|
||||
)
|
||||
from mcstatus import BedrockServer, JavaServer
|
||||
|
||||
from homeassistant.components.minecraft_server.api import MinecraftServerType
|
||||
from homeassistant.components.minecraft_server.const import DEFAULT_NAME, DOMAIN
|
||||
from homeassistant.config_entries import SOURCE_USER
|
||||
from homeassistant.const import CONF_ADDRESS, CONF_NAME, CONF_TYPE
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.data_entry_flow import FlowResultType
|
||||
|
||||
from .const import TEST_ADDRESS
|
||||
from .const import (
|
||||
TEST_ADDRESS,
|
||||
TEST_BEDROCK_STATUS_RESPONSE,
|
||||
TEST_HOST,
|
||||
TEST_JAVA_STATUS_RESPONSE,
|
||||
TEST_PORT,
|
||||
)
|
||||
|
||||
USER_INPUT = {
|
||||
CONF_NAME: DEFAULT_NAME,
|
||||
@ -30,12 +35,14 @@ async def test_show_config_form(hass: HomeAssistant) -> None:
|
||||
assert result["step_id"] == "user"
|
||||
|
||||
|
||||
async def test_address_validation_failed(hass: HomeAssistant) -> None:
|
||||
async def test_address_validation_failure(hass: HomeAssistant) -> None:
|
||||
"""Test error in case of a failed connection."""
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=[MinecraftServerAddressError, MinecraftServerAddressError],
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
side_effect=ValueError,
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.JavaServer.lookup",
|
||||
side_effect=ValueError,
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=USER_INPUT
|
||||
@ -45,15 +52,17 @@ async def test_address_validation_failed(hass: HomeAssistant) -> None:
|
||||
assert result["errors"] == {"base": "cannot_connect"}
|
||||
|
||||
|
||||
async def test_java_connection_failed(hass: HomeAssistant) -> None:
|
||||
async def test_java_connection_failure(hass: HomeAssistant) -> None:
|
||||
"""Test error in case of a failed connection to a Java Edition server."""
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=[MinecraftServerAddressError, None],
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
side_effect=ValueError,
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.async_is_online",
|
||||
return_value=False,
|
||||
"homeassistant.components.minecraft_server.api.JavaServer.lookup",
|
||||
return_value=JavaServer(host=TEST_HOST, port=TEST_PORT),
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.JavaServer.async_status",
|
||||
side_effect=OSError,
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=USER_INPUT
|
||||
@ -63,15 +72,14 @@ async def test_java_connection_failed(hass: HomeAssistant) -> None:
|
||||
assert result["errors"] == {"base": "cannot_connect"}
|
||||
|
||||
|
||||
async def test_bedrock_connection_failed(hass: HomeAssistant) -> None:
|
||||
async def test_bedrock_connection_failure(hass: HomeAssistant) -> None:
|
||||
"""Test error in case of a failed connection to a Bedrock Edition server."""
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=[None, MinecraftServerAddressError],
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
return_value=BedrockServer(host=TEST_HOST, port=TEST_PORT),
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.async_is_online",
|
||||
return_value=False,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.async_status",
|
||||
side_effect=OSError,
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=USER_INPUT
|
||||
@ -81,19 +89,17 @@ async def test_bedrock_connection_failed(hass: HomeAssistant) -> None:
|
||||
assert result["errors"] == {"base": "cannot_connect"}
|
||||
|
||||
|
||||
async def test_java_connection_succeeded(hass: HomeAssistant) -> None:
|
||||
async def test_java_connection(hass: HomeAssistant) -> None:
|
||||
"""Test config entry in case of a successful connection to a Java Edition server."""
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=[
|
||||
MinecraftServerAddressError, # async_step_user (Bedrock Edition)
|
||||
None, # async_step_user (Java Edition)
|
||||
None, # async_setup_entry
|
||||
],
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
side_effect=ValueError,
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.async_is_online",
|
||||
return_value=True,
|
||||
"homeassistant.components.minecraft_server.api.JavaServer.lookup",
|
||||
return_value=JavaServer(host=TEST_HOST, port=TEST_PORT),
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.JavaServer.async_status",
|
||||
return_value=TEST_JAVA_STATUS_RESPONSE,
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=USER_INPUT
|
||||
@ -106,15 +112,14 @@ async def test_java_connection_succeeded(hass: HomeAssistant) -> None:
|
||||
assert result["data"][CONF_TYPE] == MinecraftServerType.JAVA_EDITION
|
||||
|
||||
|
||||
async def test_bedrock_connection_succeeded(hass: HomeAssistant) -> None:
|
||||
async def test_bedrock_connection(hass: HomeAssistant) -> None:
|
||||
"""Test config entry in case of a successful connection to a Bedrock Edition server."""
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=None,
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
return_value=BedrockServer(host=TEST_HOST, port=TEST_PORT),
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.async_is_online",
|
||||
return_value=True,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.async_status",
|
||||
return_value=TEST_BEDROCK_STATUS_RESPONSE,
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=USER_INPUT
|
||||
@ -130,9 +135,11 @@ async def test_bedrock_connection_succeeded(hass: HomeAssistant) -> None:
|
||||
async def test_recovery(hass: HomeAssistant) -> None:
|
||||
"""Test config flow recovery (successful connection after a failed connection)."""
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=[MinecraftServerAddressError, MinecraftServerAddressError],
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
side_effect=ValueError,
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.JavaServer.lookup",
|
||||
side_effect=ValueError,
|
||||
):
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=USER_INPUT
|
||||
@ -141,12 +148,11 @@ async def test_recovery(hass: HomeAssistant) -> None:
|
||||
assert result["errors"] == {"base": "cannot_connect"}
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.__init__",
|
||||
side_effect=None,
|
||||
return_value=None,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.lookup",
|
||||
return_value=BedrockServer(host=TEST_HOST, port=TEST_PORT),
|
||||
), patch(
|
||||
"homeassistant.components.minecraft_server.api.MinecraftServer.async_is_online",
|
||||
return_value=True,
|
||||
"homeassistant.components.minecraft_server.api.BedrockServer.async_status",
|
||||
return_value=TEST_BEDROCK_STATUS_RESPONSE,
|
||||
):
|
||||
result2 = await hass.config_entries.flow.async_configure(
|
||||
flow_id=result["flow_id"], user_input=USER_INPUT
|
||||
|
Loading…
x
Reference in New Issue
Block a user