"""Test for Trafikverket Ferry component Init.""" from __future__ import annotations from unittest.mock import patch from pytrafikverket.trafikverket_camera import CameraInfo from homeassistant import config_entries from homeassistant.components.trafikverket_camera.const import DOMAIN from homeassistant.config_entries import SOURCE_USER from homeassistant.core import HomeAssistant from . import ENTRY_CONFIG from tests.common import MockConfigEntry from tests.test_util.aiohttp import AiohttpClientMocker async def test_setup_entry( hass: HomeAssistant, get_camera: CameraInfo, aioclient_mock: AiohttpClientMocker, ) -> None: """Test setup entry.""" aioclient_mock.get( "https://www.testurl.com/test_photo.jpg?type=fullsize", content=b"0123456789" ) entry = MockConfigEntry( domain=DOMAIN, source=SOURCE_USER, data=ENTRY_CONFIG, entry_id="1", unique_id="123", title="Test location", ) entry.add_to_hass(hass) with patch( "homeassistant.components.trafikverket_camera.coordinator.TrafikverketCamera.async_get_camera", return_value=get_camera, ) as mock_tvt_camera: await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() assert entry.state is config_entries.ConfigEntryState.LOADED assert len(mock_tvt_camera.mock_calls) == 1 async def test_unload_entry( hass: HomeAssistant, get_camera: CameraInfo, aioclient_mock: AiohttpClientMocker, ) -> None: """Test unload an entry.""" aioclient_mock.get( "https://www.testurl.com/test_photo.jpg?type=fullsize", content=b"0123456789" ) entry = MockConfigEntry( domain=DOMAIN, source=SOURCE_USER, data=ENTRY_CONFIG, entry_id="1", unique_id="321", title="Test location", ) entry.add_to_hass(hass) with patch( "homeassistant.components.trafikverket_camera.coordinator.TrafikverketCamera.async_get_camera", return_value=get_camera, ): await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() assert entry.state is config_entries.ConfigEntryState.LOADED assert await hass.config_entries.async_unload(entry.entry_id) await hass.async_block_till_done() assert entry.state is config_entries.ConfigEntryState.NOT_LOADED