mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 22:07:10 +00:00
Use async_load_fixture in skybell tests (#146017)
This commit is contained in:
parent
791654a420
commit
2dbf24e798
@ -12,7 +12,7 @@ from homeassistant.const import CONF_EMAIL, CONF_PASSWORD
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, load_fixture
|
from tests.common import MockConfigEntry, async_load_fixture
|
||||||
from tests.test_util.aiohttp import AiohttpClientMocker
|
from tests.test_util.aiohttp import AiohttpClientMocker
|
||||||
|
|
||||||
USERNAME = "user"
|
USERNAME = "user"
|
||||||
@ -53,39 +53,41 @@ def create_entry(hass: HomeAssistant) -> MockConfigEntry:
|
|||||||
return entry
|
return entry
|
||||||
|
|
||||||
|
|
||||||
async def set_aioclient_responses(aioclient_mock: AiohttpClientMocker) -> None:
|
async def set_aioclient_responses(
|
||||||
|
hass: HomeAssistant, aioclient_mock: AiohttpClientMocker
|
||||||
|
) -> None:
|
||||||
"""Set AioClient responses."""
|
"""Set AioClient responses."""
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"{BASE_URL}devices/{DEVICE_ID}/info/",
|
f"{BASE_URL}devices/{DEVICE_ID}/info/",
|
||||||
text=load_fixture("skybell/device_info.json"),
|
text=await async_load_fixture(hass, "device_info.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"{BASE_URL}devices/{DEVICE_ID}/settings/",
|
f"{BASE_URL}devices/{DEVICE_ID}/settings/",
|
||||||
text=load_fixture("skybell/device_settings.json"),
|
text=await async_load_fixture(hass, "device_settings.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"{BASE_URL}devices/{DEVICE_ID}/activities/",
|
f"{BASE_URL}devices/{DEVICE_ID}/activities/",
|
||||||
text=load_fixture("skybell/activities.json"),
|
text=await async_load_fixture(hass, "activities.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"{BASE_URL}devices/",
|
f"{BASE_URL}devices/",
|
||||||
text=load_fixture("skybell/device.json"),
|
text=await async_load_fixture(hass, "device.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
USERS_ME_URL,
|
USERS_ME_URL,
|
||||||
text=load_fixture("skybell/me.json"),
|
text=await async_load_fixture(hass, "me.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.post(
|
aioclient_mock.post(
|
||||||
f"{BASE_URL}login/",
|
f"{BASE_URL}login/",
|
||||||
text=load_fixture("skybell/login.json"),
|
text=await async_load_fixture(hass, "login.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"{BASE_URL}devices/{DEVICE_ID}/activities/1234567890ab1234567890ac/video/",
|
f"{BASE_URL}devices/{DEVICE_ID}/activities/1234567890ab1234567890ac/video/",
|
||||||
text=load_fixture("skybell/video.json"),
|
text=await async_load_fixture(hass, "video.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"{BASE_URL}devices/{DEVICE_ID}/avatar/",
|
f"{BASE_URL}devices/{DEVICE_ID}/avatar/",
|
||||||
text=load_fixture("skybell/avatar.json"),
|
text=await async_load_fixture(hass, "avatar.json", DOMAIN),
|
||||||
)
|
)
|
||||||
aioclient_mock.get(
|
aioclient_mock.get(
|
||||||
f"https://v3-production-devices-avatar.s3.us-west-2.amazonaws.com/{DEVICE_ID}.jpg",
|
f"https://v3-production-devices-avatar.s3.us-west-2.amazonaws.com/{DEVICE_ID}.jpg",
|
||||||
@ -96,12 +98,12 @@ async def set_aioclient_responses(aioclient_mock: AiohttpClientMocker) -> None:
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
async def connection(aioclient_mock: AiohttpClientMocker) -> None:
|
async def connection(hass: HomeAssistant, aioclient_mock: AiohttpClientMocker) -> None:
|
||||||
"""Fixture for good connection responses."""
|
"""Fixture for good connection responses."""
|
||||||
await set_aioclient_responses(aioclient_mock)
|
await set_aioclient_responses(hass, aioclient_mock)
|
||||||
|
|
||||||
|
|
||||||
def create_skybell(hass: HomeAssistant) -> Skybell:
|
async def create_skybell(hass: HomeAssistant) -> Skybell:
|
||||||
"""Create Skybell object."""
|
"""Create Skybell object."""
|
||||||
skybell = Skybell(
|
skybell = Skybell(
|
||||||
username=USERNAME,
|
username=USERNAME,
|
||||||
@ -109,14 +111,15 @@ def create_skybell(hass: HomeAssistant) -> Skybell:
|
|||||||
get_devices=True,
|
get_devices=True,
|
||||||
session=async_get_clientsession(hass),
|
session=async_get_clientsession(hass),
|
||||||
)
|
)
|
||||||
skybell._cache = orjson.loads(load_fixture("skybell/cache.json"))
|
skybell._cache = orjson.loads(await async_load_fixture(hass, "cache.json", DOMAIN))
|
||||||
return skybell
|
return skybell
|
||||||
|
|
||||||
|
|
||||||
def mock_skybell(hass: HomeAssistant):
|
async def mock_skybell(hass: HomeAssistant):
|
||||||
"""Mock Skybell object."""
|
"""Mock Skybell object."""
|
||||||
return patch(
|
return patch(
|
||||||
"homeassistant.components.skybell.Skybell", return_value=create_skybell(hass)
|
"homeassistant.components.skybell.Skybell",
|
||||||
|
return_value=await create_skybell(hass),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -124,7 +127,7 @@ async def async_init_integration(hass: HomeAssistant) -> MockConfigEntry:
|
|||||||
"""Set up the Skybell integration in Home Assistant."""
|
"""Set up the Skybell integration in Home Assistant."""
|
||||||
config_entry = create_entry(hass)
|
config_entry = create_entry(hass)
|
||||||
|
|
||||||
with mock_skybell(hass), patch("aioskybell.utils.async_save_cache"):
|
with await mock_skybell(hass), patch("aioskybell.utils.async_save_cache"):
|
||||||
await hass.config_entries.async_setup(config_entry.entry_id)
|
await hass.config_entries.async_setup(config_entry.entry_id)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user