Make use of snapshot testing in Synology DSM (#115931)
This commit is contained in:
parent
2620443a88
commit
5a24690d79
2 changed files with 110 additions and 71 deletions
|
@ -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,
|
SynologyDSMLoginInvalidException,
|
||||||
SynologyDSMRequestException,
|
SynologyDSMRequestException,
|
||||||
)
|
)
|
||||||
|
from syrupy import SnapshotAssertion
|
||||||
|
|
||||||
from homeassistant.components import ssdp, zeroconf
|
from homeassistant.components import ssdp, zeroconf
|
||||||
from homeassistant.components.synology_dsm.config_flow import CONF_OTP_CODE
|
from homeassistant.components.synology_dsm.config_flow import CONF_OTP_CODE
|
||||||
from homeassistant.components.synology_dsm.const import (
|
from homeassistant.components.synology_dsm.const import (
|
||||||
CONF_SNAPSHOT_QUALITY,
|
CONF_SNAPSHOT_QUALITY,
|
||||||
CONF_VOLUMES,
|
|
||||||
DEFAULT_PORT,
|
|
||||||
DEFAULT_PORT_SSL,
|
|
||||||
DEFAULT_SCAN_INTERVAL,
|
DEFAULT_SCAN_INTERVAL,
|
||||||
DEFAULT_SNAPSHOT_QUALITY,
|
DEFAULT_SNAPSHOT_QUALITY,
|
||||||
DEFAULT_TIMEOUT,
|
DEFAULT_TIMEOUT,
|
||||||
DEFAULT_USE_SSL,
|
|
||||||
DEFAULT_VERIFY_SSL,
|
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import (
|
from homeassistant.config_entries import (
|
||||||
|
@ -33,7 +29,6 @@ from homeassistant.config_entries import (
|
||||||
SOURCE_ZEROCONF,
|
SOURCE_ZEROCONF,
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_DISKS,
|
|
||||||
CONF_HOST,
|
CONF_HOST,
|
||||||
CONF_MAC,
|
CONF_MAC,
|
||||||
CONF_PASSWORD,
|
CONF_PASSWORD,
|
||||||
|
@ -149,7 +144,11 @@ def mock_controller_service_failed():
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@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."""
|
"""Test user config."""
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
DOMAIN, context={"source": SOURCE_USER}, data=None
|
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["type"] is FlowResultType.CREATE_ENTRY
|
||||||
assert result["result"].unique_id == SERIAL
|
assert result["result"].unique_id == SERIAL
|
||||||
assert result["title"] == HOST
|
assert result["title"] == HOST
|
||||||
assert result["data"][CONF_HOST] == HOST
|
assert result["data"] == snapshot
|
||||||
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
|
|
||||||
|
|
||||||
service.information.serial = SERIAL_2
|
service.information.serial = SERIAL_2
|
||||||
with patch(
|
with patch(
|
||||||
|
@ -208,20 +198,13 @@ async def test_user(hass: HomeAssistant, service: MagicMock) -> None:
|
||||||
assert result["type"] is FlowResultType.CREATE_ENTRY
|
assert result["type"] is FlowResultType.CREATE_ENTRY
|
||||||
assert result["result"].unique_id == SERIAL_2
|
assert result["result"].unique_id == SERIAL_2
|
||||||
assert result["title"] == HOST
|
assert result["title"] == HOST
|
||||||
assert result["data"][CONF_HOST] == HOST
|
assert result["data"] == snapshot
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@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."""
|
"""Test user with 2sa authentication config."""
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.synology_dsm.config_flow.SynologyDSM",
|
"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["type"] is FlowResultType.CREATE_ENTRY
|
||||||
assert result["result"].unique_id == SERIAL
|
assert result["result"].unique_id == SERIAL
|
||||||
assert result["title"] == HOST
|
assert result["title"] == HOST
|
||||||
assert result["data"][CONF_HOST] == HOST
|
assert result["data"] == snapshot
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@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."""
|
"""Test user config."""
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.synology_dsm.config_flow.SynologyDSM",
|
"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["type"] is FlowResultType.CREATE_ENTRY
|
||||||
assert result["result"].unique_id == SERIAL
|
assert result["result"].unique_id == SERIAL
|
||||||
assert result["title"] == HOST
|
assert result["title"] == HOST
|
||||||
assert result["data"][CONF_HOST] == HOST
|
assert result["data"] == snapshot
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@pytest.mark.usefixtures("mock_setup_entry")
|
||||||
|
@ -467,7 +434,9 @@ async def test_missing_data_after_login(
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@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."""
|
"""Test we can setup from ssdp."""
|
||||||
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
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["type"] is FlowResultType.CREATE_ENTRY
|
||||||
assert result["result"].unique_id == SERIAL
|
assert result["result"].unique_id == SERIAL
|
||||||
assert result["title"] == "mydsm"
|
assert result["title"] == "mydsm"
|
||||||
assert result["data"][CONF_HOST] == "192.168.1.5"
|
assert result["data"] == snapshot
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@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")
|
@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."""
|
"""Test we can setup from zeroconf."""
|
||||||
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
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["type"] is FlowResultType.CREATE_ENTRY
|
||||||
assert result["result"].unique_id == SERIAL
|
assert result["result"].unique_id == SERIAL
|
||||||
assert result["title"] == "mydsm"
|
assert result["title"] == "mydsm"
|
||||||
assert result["data"][CONF_HOST] == "192.168.1.5"
|
assert result["data"] == snapshot
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("mock_setup_entry")
|
@pytest.mark.usefixtures("mock_setup_entry")
|
||||||
|
|
Loading…
Add table
Reference in a new issue