73 lines
1.7 KiB
Python
73 lines
1.7 KiB
Python
"""Tests prosegur setup."""
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
from pytest import mark
|
|
|
|
from homeassistant.components.prosegur import DOMAIN
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
@mark.parametrize(
|
|
"error",
|
|
[
|
|
ConnectionRefusedError,
|
|
ConnectionError,
|
|
],
|
|
)
|
|
async def test_setup_entry_fail_retrieve(hass, error):
|
|
"""Test loading the Prosegur entry."""
|
|
|
|
config_entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
data={
|
|
"username": "test-username",
|
|
"password": "test-password",
|
|
"country": "PT",
|
|
"contract": "xpto",
|
|
},
|
|
)
|
|
config_entry.add_to_hass(hass)
|
|
|
|
with patch(
|
|
"pyprosegur.auth.Auth.login",
|
|
side_effect=error,
|
|
):
|
|
assert not await hass.config_entries.async_setup(config_entry.entry_id)
|
|
|
|
await hass.async_block_till_done()
|
|
|
|
|
|
async def test_unload_entry(hass, aioclient_mock):
|
|
"""Test unloading the Prosegur entry."""
|
|
|
|
aioclient_mock.post(
|
|
"https://smart.prosegur.com/smart-server/ws/access/login",
|
|
json={"data": {"token": "123456789"}},
|
|
)
|
|
|
|
config_entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
data={
|
|
"username": "test-username",
|
|
"password": "test-password",
|
|
"country": "PT",
|
|
"contract": "xpto",
|
|
},
|
|
)
|
|
config_entry.add_to_hass(hass)
|
|
|
|
install = MagicMock()
|
|
install.contract = "123"
|
|
|
|
with patch(
|
|
"homeassistant.components.prosegur.config_flow.Installation.retrieve",
|
|
return_value=install,
|
|
):
|
|
|
|
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
|
|
|
await hass.async_block_till_done()
|
|
|
|
assert await hass.config_entries.async_unload(config_entry.entry_id)
|