Make use of snapshot testing in Synology DSM (#115931)
parent
2620443a88
commit
5a24690d79
|
@ -0,0 +1,86 @@
|
|||
# serializer version: 1
|
||||
# name: test_discovered_via_zeroconf
|
||||
dict({
|
||||
'host': '192.168.1.5',
|
||||
'mac': list([
|
||||
'00-11-32-XX-XX-59',
|
||||
'00-11-32-XX-XX-5A',
|
||||
]),
|
||||
'password': 'password',
|
||||
'port': 5001,
|
||||
'ssl': True,
|
||||
'username': 'Home_Assistant',
|
||||
'verify_ssl': False,
|
||||
})
|
||||
# ---
|
||||
# name: test_form_ssdp
|
||||
dict({
|
||||
'host': '192.168.1.5',
|
||||
'mac': list([
|
||||
'00-11-32-XX-XX-59',
|
||||
'00-11-32-XX-XX-5A',
|
||||
]),
|
||||
'password': 'password',
|
||||
'port': 5001,
|
||||
'ssl': True,
|
||||
'username': 'Home_Assistant',
|
||||
'verify_ssl': False,
|
||||
})
|
||||
# ---
|
||||
# name: test_user
|
||||
dict({
|
||||
'host': 'nas.meontheinternet.com',
|
||||
'mac': list([
|
||||
'00-11-32-XX-XX-59',
|
||||
'00-11-32-XX-XX-5A',
|
||||
]),
|
||||
'password': 'password',
|
||||
'port': 1234,
|
||||
'ssl': True,
|
||||
'username': 'Home_Assistant',
|
||||
'verify_ssl': False,
|
||||
})
|
||||
# ---
|
||||
# name: test_user.1
|
||||
dict({
|
||||
'host': 'nas.meontheinternet.com',
|
||||
'mac': list([
|
||||
'00-11-32-XX-XX-59',
|
||||
'00-11-32-XX-XX-5A',
|
||||
]),
|
||||
'password': 'password',
|
||||
'port': 5000,
|
||||
'ssl': False,
|
||||
'username': 'Home_Assistant',
|
||||
'verify_ssl': False,
|
||||
})
|
||||
# ---
|
||||
# name: test_user_2sa
|
||||
dict({
|
||||
'device_token': 'Dév!cè_T0k€ñ',
|
||||
'host': 'nas.meontheinternet.com',
|
||||
'mac': list([
|
||||
'00-11-32-XX-XX-59',
|
||||
'00-11-32-XX-XX-5A',
|
||||
]),
|
||||
'password': 'password',
|
||||
'port': 5001,
|
||||
'ssl': True,
|
||||
'username': 'Home_Assistant',
|
||||
'verify_ssl': False,
|
||||
})
|
||||
# ---
|
||||
# name: test_user_vdsm
|
||||
dict({
|
||||
'host': 'nas.meontheinternet.com',
|
||||
'mac': list([
|
||||
'00-11-32-XX-XX-59',
|
||||
'00-11-32-XX-XX-5A',
|
||||
]),
|
||||
'password': 'password',
|
||||
'port': 1234,
|
||||
'ssl': True,
|
||||
'username': 'Home_Assistant',
|
||||
'verify_ssl': False,
|
||||
})
|
||||
# ---
|
|
@ -11,19 +11,15 @@ from synology_dsm.exceptions import (
|
|||
SynologyDSMLoginInvalidException,
|
||||
SynologyDSMRequestException,
|
||||
)
|
||||
from syrupy import SnapshotAssertion
|
||||
|
||||
from homeassistant.components import ssdp, zeroconf
|
||||
from homeassistant.components.synology_dsm.config_flow import CONF_OTP_CODE
|
||||
from homeassistant.components.synology_dsm.const import (
|
||||
CONF_SNAPSHOT_QUALITY,
|
||||
CONF_VOLUMES,
|
||||
DEFAULT_PORT,
|
||||
DEFAULT_PORT_SSL,
|
||||
DEFAULT_SCAN_INTERVAL,
|
||||
DEFAULT_SNAPSHOT_QUALITY,
|
||||
DEFAULT_TIMEOUT,
|
||||
DEFAULT_USE_SSL,
|
||||
DEFAULT_VERIFY_SSL,
|
||||
DOMAIN,
|
||||
)
|
||||
from homeassistant.config_entries import (
|
||||
|
@ -33,7 +29,6 @@ from homeassistant.config_entries import (
|
|||
SOURCE_ZEROCONF,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
CONF_DISKS,
|
||||
CONF_HOST,
|
||||
CONF_MAC,
|
||||
CONF_PASSWORD,
|
||||
|
@ -149,7 +144,11 @@ def mock_controller_service_failed():
|
|||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_user(hass: HomeAssistant, service: MagicMock) -> None:
|
||||
async def test_user(
|
||||
hass: HomeAssistant,
|
||||
service: MagicMock,
|
||||
snapshot: SnapshotAssertion,
|
||||
) -> None:
|
||||
"""Test user config."""
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": SOURCE_USER}, data=None
|
||||
|
@ -177,16 +176,7 @@ async def test_user(hass: HomeAssistant, service: MagicMock) -> None:
|
|||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["result"].unique_id == SERIAL
|
||||
assert result["title"] == HOST
|
||||
assert result["data"][CONF_HOST] == HOST
|
||||
assert result["data"][CONF_PORT] == PORT
|
||||
assert result["data"][CONF_SSL] == USE_SSL
|
||||
assert result["data"][CONF_VERIFY_SSL] == VERIFY_SSL
|
||||
assert result["data"][CONF_USERNAME] == USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == PASSWORD
|
||||
assert result["data"][CONF_MAC] == MACS
|
||||
assert result["data"].get("device_token") is None
|
||||
assert result["data"].get(CONF_DISKS) is None
|
||||
assert result["data"].get(CONF_VOLUMES) is None
|
||||
assert result["data"] == snapshot
|
||||
|
||||
service.information.serial = SERIAL_2
|
||||
with patch(
|
||||
|
@ -208,20 +198,13 @@ async def test_user(hass: HomeAssistant, service: MagicMock) -> None:
|
|||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["result"].unique_id == SERIAL_2
|
||||
assert result["title"] == HOST
|
||||
assert result["data"][CONF_HOST] == HOST
|
||||
assert result["data"][CONF_PORT] == DEFAULT_PORT
|
||||
assert not result["data"][CONF_SSL]
|
||||
assert result["data"][CONF_VERIFY_SSL] == VERIFY_SSL
|
||||
assert result["data"][CONF_USERNAME] == USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == PASSWORD
|
||||
assert result["data"][CONF_MAC] == MACS
|
||||
assert result["data"].get("device_token") is None
|
||||
assert result["data"].get(CONF_DISKS) is None
|
||||
assert result["data"].get(CONF_VOLUMES) is None
|
||||
assert result["data"] == snapshot
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_user_2sa(hass: HomeAssistant, service_2sa: MagicMock) -> None:
|
||||
async def test_user_2sa(
|
||||
hass: HomeAssistant, service_2sa: MagicMock, snapshot: SnapshotAssertion
|
||||
) -> None:
|
||||
"""Test user with 2sa authentication config."""
|
||||
with patch(
|
||||
"homeassistant.components.synology_dsm.config_flow.SynologyDSM",
|
||||
|
@ -261,20 +244,13 @@ async def test_user_2sa(hass: HomeAssistant, service_2sa: MagicMock) -> None:
|
|||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["result"].unique_id == SERIAL
|
||||
assert result["title"] == HOST
|
||||
assert result["data"][CONF_HOST] == HOST
|
||||
assert result["data"][CONF_PORT] == DEFAULT_PORT_SSL
|
||||
assert result["data"][CONF_SSL] == DEFAULT_USE_SSL
|
||||
assert result["data"][CONF_VERIFY_SSL] == DEFAULT_VERIFY_SSL
|
||||
assert result["data"][CONF_USERNAME] == USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == PASSWORD
|
||||
assert result["data"][CONF_MAC] == MACS
|
||||
assert result["data"].get("device_token") == DEVICE_TOKEN
|
||||
assert result["data"].get(CONF_DISKS) is None
|
||||
assert result["data"].get(CONF_VOLUMES) is None
|
||||
assert result["data"] == snapshot
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_user_vdsm(hass: HomeAssistant, service_vdsm: MagicMock) -> None:
|
||||
async def test_user_vdsm(
|
||||
hass: HomeAssistant, service_vdsm: MagicMock, snapshot: SnapshotAssertion
|
||||
) -> None:
|
||||
"""Test user config."""
|
||||
with patch(
|
||||
"homeassistant.components.synology_dsm.config_flow.SynologyDSM",
|
||||
|
@ -306,16 +282,7 @@ async def test_user_vdsm(hass: HomeAssistant, service_vdsm: MagicMock) -> None:
|
|||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["result"].unique_id == SERIAL
|
||||
assert result["title"] == HOST
|
||||
assert result["data"][CONF_HOST] == HOST
|
||||
assert result["data"][CONF_PORT] == PORT
|
||||
assert result["data"][CONF_SSL] == USE_SSL
|
||||
assert result["data"][CONF_VERIFY_SSL] == VERIFY_SSL
|
||||
assert result["data"][CONF_USERNAME] == USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == PASSWORD
|
||||
assert result["data"][CONF_MAC] == MACS
|
||||
assert result["data"].get("device_token") is None
|
||||
assert result["data"].get(CONF_DISKS) is None
|
||||
assert result["data"].get(CONF_VOLUMES) is None
|
||||
assert result["data"] == snapshot
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
|
@ -467,7 +434,9 @@ async def test_missing_data_after_login(
|
|||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_form_ssdp(hass: HomeAssistant, service: MagicMock) -> None:
|
||||
async def test_form_ssdp(
|
||||
hass: HomeAssistant, service: MagicMock, snapshot: SnapshotAssertion
|
||||
) -> None:
|
||||
"""Test we can setup from ssdp."""
|
||||
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
|
@ -498,16 +467,7 @@ async def test_form_ssdp(hass: HomeAssistant, service: MagicMock) -> None:
|
|||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["result"].unique_id == SERIAL
|
||||
assert result["title"] == "mydsm"
|
||||
assert result["data"][CONF_HOST] == "192.168.1.5"
|
||||
assert result["data"][CONF_PORT] == 5001
|
||||
assert result["data"][CONF_SSL] == DEFAULT_USE_SSL
|
||||
assert result["data"][CONF_VERIFY_SSL] == DEFAULT_VERIFY_SSL
|
||||
assert result["data"][CONF_USERNAME] == USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == PASSWORD
|
||||
assert result["data"][CONF_MAC] == MACS
|
||||
assert result["data"].get("device_token") is None
|
||||
assert result["data"].get(CONF_DISKS) is None
|
||||
assert result["data"].get(CONF_VOLUMES) is None
|
||||
assert result["data"] == snapshot
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
|
@ -664,7 +624,9 @@ async def test_options_flow(hass: HomeAssistant, service: MagicMock) -> None:
|
|||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_discovered_via_zeroconf(hass: HomeAssistant, service: MagicMock) -> None:
|
||||
async def test_discovered_via_zeroconf(
|
||||
hass: HomeAssistant, service: MagicMock, snapshot: SnapshotAssertion
|
||||
) -> None:
|
||||
"""Test we can setup from zeroconf."""
|
||||
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
|
@ -697,16 +659,7 @@ async def test_discovered_via_zeroconf(hass: HomeAssistant, service: MagicMock)
|
|||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||
assert result["result"].unique_id == SERIAL
|
||||
assert result["title"] == "mydsm"
|
||||
assert result["data"][CONF_HOST] == "192.168.1.5"
|
||||
assert result["data"][CONF_PORT] == 5001
|
||||
assert result["data"][CONF_SSL] == DEFAULT_USE_SSL
|
||||
assert result["data"][CONF_VERIFY_SSL] == DEFAULT_VERIFY_SSL
|
||||
assert result["data"][CONF_USERNAME] == USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == PASSWORD
|
||||
assert result["data"][CONF_MAC] == MACS
|
||||
assert result["data"].get("device_token") is None
|
||||
assert result["data"].get(CONF_DISKS) is None
|
||||
assert result["data"].get(CONF_VOLUMES) is None
|
||||
assert result["data"] == snapshot
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
|
|
Loading…
Reference in New Issue