Use async_load_json_(array/object)_fixture in async test functions (#145773)

This commit is contained in:
epenet 2025-05-28 12:09:05 +02:00 committed by GitHub
parent bb52058920
commit e4cc842584
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
43 changed files with 273 additions and 144 deletions

View File

@ -20,7 +20,7 @@ from homeassistant.const import CONF_EMAIL, CONF_PASSWORD
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.util.unit_system import US_CUSTOMARY_SYSTEM from homeassistant.util.unit_system import US_CUSTOMARY_SYSTEM
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
FIXTURE_USER_INPUT = { FIXTURE_USER_INPUT = {
CONF_EMAIL: "testemail@example.com", CONF_EMAIL: "testemail@example.com",
@ -161,6 +161,7 @@ def get_devices_fixture_has_vacation_mode() -> bool:
@pytest.fixture @pytest.fixture
async def mock_client( async def mock_client(
hass: HomeAssistant,
get_devices_fixture_heat_pump: bool, get_devices_fixture_heat_pump: bool,
get_devices_fixture_mode_pending: bool, get_devices_fixture_mode_pending: bool,
get_devices_fixture_setpoint_pending: bool, get_devices_fixture_setpoint_pending: bool,
@ -175,8 +176,8 @@ async def mock_client(
has_vacation_mode=get_devices_fixture_has_vacation_mode, has_vacation_mode=get_devices_fixture_has_vacation_mode,
) )
] ]
get_all_device_info_fixture = load_json_object_fixture( get_all_device_info_fixture = await async_load_json_object_fixture(
"get_all_device_info.json", DOMAIN hass, "get_all_device_info.json", DOMAIN
) )
client_mock = MagicMock(AOSmithAPIClient) client_mock = MagicMock(AOSmithAPIClient)

View File

@ -11,7 +11,7 @@ from homeassistant.helpers import device_registry as dr
from .conftest import TEST_REQUIRED from .conftest import TEST_REQUIRED
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
async def test_device_without_mac_address( async def test_device_without_mac_address(
@ -20,8 +20,8 @@ async def test_device_without_mac_address(
device_registry: dr.DeviceRegistry, device_registry: dr.DeviceRegistry,
) -> None: ) -> None:
"""Test that a device gets successfully registered when the device doesn't report a MAC address.""" """Test that a device gets successfully registered when the device doesn't report a MAC address."""
openwebif_device_mock.get_about.return_value = load_json_object_fixture( openwebif_device_mock.get_about.return_value = await async_load_json_object_fixture(
"device_about_without_mac.json", DOMAIN hass, "device_about_without_mac.json", DOMAIN
) )
entry = MockConfigEntry( entry = MockConfigEntry(
domain=DOMAIN, data=TEST_REQUIRED, title="name", unique_id="123456" domain=DOMAIN, data=TEST_REQUIRED, title="name", unique_id="123456"

View File

@ -37,7 +37,7 @@ from homeassistant.core import HomeAssistant
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
@ -228,8 +228,10 @@ async def test_update_data_standby(
) -> None: ) -> None:
"""Test data handling.""" """Test data handling."""
openwebif_device_mock.get_status_info.return_value = load_json_object_fixture( openwebif_device_mock.get_status_info.return_value = (
"device_statusinfo_standby.json", DOMAIN await async_load_json_object_fixture(
hass, "device_statusinfo_standby.json", DOMAIN
)
) )
openwebif_device_mock.status = OpenWebIfStatus( openwebif_device_mock.status = OpenWebIfStatus(
currservice=OpenWebIfServiceEvent(), in_standby=True currservice=OpenWebIfServiceEvent(), in_standby=True

View File

@ -19,7 +19,7 @@ from . import setup_platform
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
@ -78,8 +78,16 @@ async def test_add_remove_entities(
assert hass.states.get("binary_sensor.gummibaum_repotted").state == STATE_ON assert hass.states.get("binary_sensor.gummibaum_repotted").state == STATE_ON
plants: dict[int, Plant] = { plants: dict[int, Plant] = {
0: Plant.from_dict(load_json_object_fixture("plant_status1.json", FYTA_DOMAIN)), 0: Plant.from_dict(
2: Plant.from_dict(load_json_object_fixture("plant_status3.json", FYTA_DOMAIN)), await async_load_json_object_fixture(
hass, "plant_status1.json", FYTA_DOMAIN
)
),
2: Plant.from_dict(
await async_load_json_object_fixture(
hass, "plant_status3.json", FYTA_DOMAIN
)
),
} }
mock_fyta_connector.update_all_plants.return_value = plants mock_fyta_connector.update_all_plants.return_value = plants
mock_fyta_connector.plant_list = { mock_fyta_connector.plant_list = {

View File

@ -21,7 +21,7 @@ from . import setup_platform
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
from tests.typing import ClientSessionGenerator from tests.typing import ClientSessionGenerator
@ -83,8 +83,16 @@ async def test_add_remove_entities(
assert hass.states.get("image.gummibaum_user_image") is not None assert hass.states.get("image.gummibaum_user_image") is not None
plants: dict[int, Plant] = { plants: dict[int, Plant] = {
0: Plant.from_dict(load_json_object_fixture("plant_status1.json", FYTA_DOMAIN)), 0: Plant.from_dict(
2: Plant.from_dict(load_json_object_fixture("plant_status3.json", FYTA_DOMAIN)), await async_load_json_object_fixture(
hass, "plant_status1.json", FYTA_DOMAIN
)
),
2: Plant.from_dict(
await async_load_json_object_fixture(
hass, "plant_status3.json", FYTA_DOMAIN
)
),
} }
mock_fyta_connector.update_all_plants.return_value = plants mock_fyta_connector.update_all_plants.return_value = plants
mock_fyta_connector.plant_list = { mock_fyta_connector.plant_list = {
@ -121,9 +129,15 @@ async def test_update_image(
plants: dict[int, Plant] = { plants: dict[int, Plant] = {
0: Plant.from_dict( 0: Plant.from_dict(
load_json_object_fixture("plant_status1_update.json", FYTA_DOMAIN) await async_load_json_object_fixture(
hass, "plant_status1_update.json", FYTA_DOMAIN
)
),
2: Plant.from_dict(
await async_load_json_object_fixture(
hass, "plant_status3.json", FYTA_DOMAIN
)
), ),
2: Plant.from_dict(load_json_object_fixture("plant_status3.json", FYTA_DOMAIN)),
} }
mock_fyta_connector.update_all_plants.return_value = plants mock_fyta_connector.update_all_plants.return_value = plants
mock_fyta_connector.plant_list = { mock_fyta_connector.plant_list = {

View File

@ -19,7 +19,7 @@ from . import setup_platform
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
@ -75,8 +75,16 @@ async def test_add_remove_entities(
assert hass.states.get("sensor.gummibaum_plant_state").state == "doing_great" assert hass.states.get("sensor.gummibaum_plant_state").state == "doing_great"
plants: dict[int, Plant] = { plants: dict[int, Plant] = {
0: Plant.from_dict(load_json_object_fixture("plant_status1.json", FYTA_DOMAIN)), 0: Plant.from_dict(
2: Plant.from_dict(load_json_object_fixture("plant_status3.json", FYTA_DOMAIN)), await async_load_json_object_fixture(
hass, "plant_status1.json", FYTA_DOMAIN
)
),
2: Plant.from_dict(
await async_load_json_object_fixture(
hass, "plant_status3.json", FYTA_DOMAIN
)
),
} }
mock_fyta_connector.update_all_plants.return_value = plants mock_fyta_connector.update_all_plants.return_value = plants
mock_fyta_connector.plant_list = { mock_fyta_connector.plant_list = {

View File

@ -25,8 +25,8 @@ from homeassistant.setup import async_setup_component
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
load_json_array_fixture, async_load_json_array_fixture,
load_json_object_fixture, async_load_json_object_fixture,
) )
USER_IDENTIFIER = "user-identifier-1" USER_IDENTIFIER = "user-identifier-1"
@ -121,7 +121,8 @@ def mock_api_error() -> Exception | None:
@pytest.fixture(name="mock_api") @pytest.fixture(name="mock_api")
def mock_client_api( async def mock_client_api(
hass: HomeAssistant,
fixture_name: str, fixture_name: str,
user_identifier: str, user_identifier: str,
api_error: Exception, api_error: Exception,
@ -133,7 +134,11 @@ def mock_client_api(
name="Test Name", name="Test Name",
) )
responses = load_json_array_fixture(fixture_name, DOMAIN) if fixture_name else [] responses = (
await async_load_json_array_fixture(hass, fixture_name, DOMAIN)
if fixture_name
else []
)
async def list_media_items(*args: Any) -> AsyncGenerator[ListMediaItemResult]: async def list_media_items(*args: Any) -> AsyncGenerator[ListMediaItemResult]:
for response in responses: for response in responses:
@ -161,10 +166,12 @@ def mock_client_api(
# return a single page. # return a single page.
async def list_albums(*args: Any, **kwargs: Any) -> AsyncGenerator[ListAlbumResult]: async def list_albums(*args: Any, **kwargs: Any) -> AsyncGenerator[ListAlbumResult]:
album_list = await async_load_json_object_fixture(
hass, "list_albums.json", DOMAIN
)
mock_list_album_result = Mock(ListAlbumResult) mock_list_album_result = Mock(ListAlbumResult)
mock_list_album_result.albums = [ mock_list_album_result.albums = [
Album.from_dict(album) Album.from_dict(album) for album in album_list["albums"]
for album in load_json_object_fixture("list_albums.json", DOMAIN)["albums"]
] ]
yield mock_list_album_result yield mock_list_album_result
@ -174,7 +181,10 @@ def mock_client_api(
# Mock a point lookup by reading contents of the album fixture above # Mock a point lookup by reading contents of the album fixture above
async def get_album(album_id: str, **kwargs: Any) -> Mock: async def get_album(album_id: str, **kwargs: Any) -> Mock:
for album in load_json_object_fixture("list_albums.json", DOMAIN)["albums"]: album_list = await async_load_json_object_fixture(
hass, "list_albums.json", DOMAIN
)
for album in album_list["albums"]:
if album["id"] == album_id: if album["id"] == album_id:
return Album.from_dict(album) return Album.from_dict(album)
return None return None

View File

@ -14,7 +14,11 @@ from homeassistant.helpers import entity_registry as er
from . import setup_integration from . import setup_integration
from tests.common import MockConfigEntry, load_json_array_fixture, snapshot_platform from tests.common import (
MockConfigEntry,
async_load_json_array_fixture,
snapshot_platform,
)
async def test_entities( async def test_entities(
@ -91,7 +95,8 @@ async def test_adding_runtime_entities(
add_trigger_function: Callable[[Event], None] = ( add_trigger_function: Callable[[Event], None] = (
mock_knocki_client.register_listener.call_args_list[0][0][1] mock_knocki_client.register_listener.call_args_list[0][0][1]
) )
trigger = Trigger.from_dict(load_json_array_fixture("triggers.json", DOMAIN)[0]) triggers = await async_load_json_array_fixture(hass, "triggers.json", DOMAIN)
trigger = Trigger.from_dict(triggers[0])
add_trigger_function(Event(EventType.CREATED, trigger)) add_trigger_function(Event(EventType.CREATED, trigger))
@ -106,7 +111,9 @@ async def test_removing_runtime_entities(
"""Test we can create devices on runtime.""" """Test we can create devices on runtime."""
mock_knocki_client.get_triggers.return_value = [ mock_knocki_client.get_triggers.return_value = [
Trigger.from_dict(trigger) Trigger.from_dict(trigger)
for trigger in load_json_array_fixture("more_triggers.json", DOMAIN) for trigger in await async_load_json_array_fixture(
hass, "more_triggers.json", DOMAIN
)
] ]
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)
@ -117,7 +124,8 @@ async def test_removing_runtime_entities(
remove_trigger_function: Callable[[Event], Awaitable[None]] = ( remove_trigger_function: Callable[[Event], Awaitable[None]] = (
mock_knocki_client.register_listener.call_args_list[1][0][1] mock_knocki_client.register_listener.call_args_list[1][0][1]
) )
trigger = Trigger.from_dict(load_json_array_fixture("triggers.json", DOMAIN)[0]) triggers = await async_load_json_array_fixture(hass, "triggers.json", DOMAIN)
trigger = Trigger.from_dict(triggers[0])
mock_knocki_client.get_triggers.return_value = [trigger] mock_knocki_client.get_triggers.return_value = [trigger]

View File

@ -40,7 +40,11 @@ from homeassistant.setup import async_setup_component
from . import KnxEntityGenerator from . import KnxEntityGenerator
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import (
MockConfigEntry,
async_load_json_object_fixture,
load_json_object_fixture,
)
from tests.typing import WebSocketGenerator from tests.typing import WebSocketGenerator
FIXTURE_PROJECT_DATA = load_json_object_fixture("project.json", KNX_DOMAIN) FIXTURE_PROJECT_DATA = load_json_object_fixture("project.json", KNX_DOMAIN)
@ -110,8 +114,10 @@ class KNXTestKit:
return DEFAULT return DEFAULT
if config_store_fixture: if config_store_fixture:
self.hass_storage[KNX_CONFIG_STORAGE_KEY] = load_json_object_fixture( self.hass_storage[
config_store_fixture, KNX_DOMAIN KNX_CONFIG_STORAGE_KEY
] = await async_load_json_object_fixture(
self.hass, config_store_fixture, KNX_DOMAIN
) )
if add_entry_to_hass: if add_entry_to_hass:

View File

@ -22,7 +22,7 @@ from . import setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
@ -106,7 +106,9 @@ async def test_update_cover_state(
assert hass.states.get("cover.test_garage_1").state == CoverState.OPEN assert hass.states.get("cover.test_garage_1").state == CoverState.OPEN
assert hass.states.get("cover.test_garage_2").state == CoverState.CLOSED assert hass.states.get("cover.test_garage_2").state == CoverState.CLOSED
device_states = load_json_object_fixture("get_device_state_1.json", DOMAIN) device_states = await async_load_json_object_fixture(
hass, "get_device_state_1.json", DOMAIN
)
mock_linear.get_device_state.side_effect = lambda device_id: device_states[ mock_linear.get_device_state.side_effect = lambda device_id: device_states[
device_id device_id
] ]

View File

@ -27,7 +27,7 @@ from . import setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
@ -112,7 +112,9 @@ async def test_update_light_state(
assert hass.states.get("light.test_garage_1_light").state == STATE_ON assert hass.states.get("light.test_garage_1_light").state == STATE_ON
assert hass.states.get("light.test_garage_2_light").state == STATE_OFF assert hass.states.get("light.test_garage_2_light").state == STATE_OFF
device_states = load_json_object_fixture("get_device_state_1.json", DOMAIN) device_states = await async_load_json_object_fixture(
hass, "get_device_state_1.json", DOMAIN
)
mock_linear.get_device_state.side_effect = lambda device_id: device_states[ mock_linear.get_device_state.side_effect = lambda device_id: device_states[
device_id device_id
] ]

View File

@ -22,7 +22,7 @@ from homeassistant.setup import async_setup_component
from . import YOUTUBE_EMPTY_PLAYLIST, YOUTUBE_PLAYLIST, YOUTUBE_VIDEO, MockYoutubeDL from . import YOUTUBE_EMPTY_PLAYLIST, YOUTUBE_PLAYLIST, YOUTUBE_VIDEO, MockYoutubeDL
from .const import NO_FORMATS_RESPONSE, SOUNDCLOUD_TRACK from .const import NO_FORMATS_RESPONSE, SOUNDCLOUD_TRACK
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
async def test_play_media_service_is_registered(hass: HomeAssistant) -> None: async def test_play_media_service_is_registered(hass: HomeAssistant) -> None:
@ -253,8 +253,8 @@ async def test_query_error(
with ( with (
patch( patch(
"homeassistant.components.media_extractor.YoutubeDL.extract_info", "homeassistant.components.media_extractor.YoutubeDL.extract_info",
return_value=load_json_object_fixture( return_value=await async_load_json_object_fixture(
"media_extractor/youtube_1_info.json" hass, "youtube_1_info.json", DOMAIN
), ),
), ),
patch( patch(

View File

@ -4,24 +4,27 @@ from unittest.mock import AsyncMock, patch
import pytest import pytest
from tests.common import load_json_object_fixture from homeassistant.components.melissa import DOMAIN
from homeassistant.core import HomeAssistant
from tests.common import async_load_json_object_fixture
@pytest.fixture @pytest.fixture
async def mock_melissa(): async def mock_melissa(hass: HomeAssistant):
"""Mock the Melissa API.""" """Mock the Melissa API."""
with patch( with patch(
"homeassistant.components.melissa.AsyncMelissa", autospec=True "homeassistant.components.melissa.AsyncMelissa", autospec=True
) as mock_client: ) as mock_client:
mock_client.return_value.async_connect = AsyncMock() mock_client.return_value.async_connect = AsyncMock()
mock_client.return_value.async_fetch_devices.return_value = ( mock_client.return_value.async_fetch_devices.return_value = (
load_json_object_fixture("fetch_devices.json", "melissa") await async_load_json_object_fixture(hass, "fetch_devices.json", DOMAIN)
) )
mock_client.return_value.async_status.return_value = load_json_object_fixture( mock_client.return_value.async_status.return_value = (
"status.json", "melissa" await async_load_json_object_fixture(hass, "status.json", DOMAIN)
) )
mock_client.return_value.async_cur_settings.return_value = ( mock_client.return_value.async_cur_settings.return_value = (
load_json_object_fixture("cur_settings.json", "melissa") await async_load_json_object_fixture(hass, "cur_settings.json", DOMAIN)
) )
mock_client.return_value.STATE_OFF = 0 mock_client.return_value.STATE_OFF = 0

View File

@ -18,7 +18,11 @@ from homeassistant.setup import async_setup_component
from . import get_actions_callback, get_data_callback from . import get_actions_callback, get_data_callback
from .const import CLIENT_ID, CLIENT_SECRET from .const import CLIENT_ID, CLIENT_SECRET
from tests.common import MockConfigEntry, load_fixture, load_json_object_fixture from tests.common import (
MockConfigEntry,
async_load_fixture,
async_load_json_object_fixture,
)
@pytest.fixture(name="expires_at") @pytest.fixture(name="expires_at")
@ -75,9 +79,9 @@ def load_device_file() -> str:
@pytest.fixture @pytest.fixture
def device_fixture(load_device_file: str) -> MieleDevices: async def device_fixture(hass: HomeAssistant, load_device_file: str) -> MieleDevices:
"""Fixture for device.""" """Fixture for device."""
return load_json_object_fixture(load_device_file, DOMAIN) return await async_load_json_object_fixture(hass, load_device_file, DOMAIN)
@pytest.fixture(scope="package") @pytest.fixture(scope="package")
@ -87,9 +91,9 @@ def load_action_file() -> str:
@pytest.fixture @pytest.fixture
def action_fixture(load_action_file: str) -> MieleAction: async def action_fixture(hass: HomeAssistant, load_action_file: str) -> MieleAction:
"""Fixture for action.""" """Fixture for action."""
return load_json_object_fixture(load_action_file, DOMAIN) return await async_load_json_object_fixture(hass, load_action_file, DOMAIN)
@pytest.fixture(scope="package") @pytest.fixture(scope="package")
@ -99,9 +103,9 @@ def load_programs_file() -> str:
@pytest.fixture @pytest.fixture
def programs_fixture(load_programs_file: str) -> list[dict]: async def programs_fixture(hass: HomeAssistant, load_programs_file: str) -> list[dict]:
"""Fixture for available programs.""" """Fixture for available programs."""
return load_fixture(load_programs_file, DOMAIN) return await async_load_fixture(hass, load_programs_file, DOMAIN)
@pytest.fixture @pytest.fixture
@ -172,7 +176,7 @@ async def push_data_and_actions(
await data_callback(device_fixture) await data_callback(device_fixture)
await hass.async_block_till_done() await hass.async_block_till_done()
act_file = load_json_object_fixture("4_actions.json", DOMAIN) act_file = await async_load_json_object_fixture(hass, "4_actions.json", DOMAIN)
action_callback = get_actions_callback(mock_miele_client) action_callback = get_actions_callback(mock_miele_client)
await action_callback(act_file) await action_callback(act_file)
await hass.async_block_till_done() await hass.async_block_till_done()

View File

@ -22,7 +22,7 @@ from . import setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
from tests.test_util.aiohttp import AiohttpClientMocker from tests.test_util.aiohttp import AiohttpClientMocker
from tests.typing import WebSocketGenerator from tests.typing import WebSocketGenerator
@ -195,10 +195,10 @@ async def test_setup_all_platforms(
assert hass.states.get("switch.washing_machine_power").state == "off" assert hass.states.get("switch.washing_machine_power").state == "off"
# Add two devices and let the clock tick for 130 seconds # Add two devices and let the clock tick for 130 seconds
freezer.tick(timedelta(seconds=130)) mock_miele_client.get_devices.return_value = await async_load_json_object_fixture(
mock_miele_client.get_devices.return_value = load_json_object_fixture( hass, "5_devices.json", DOMAIN
"5_devices.json", DOMAIN
) )
freezer.tick(timedelta(seconds=130))
async_fire_time_changed(hass) async_fire_time_changed(hass)
await hass.async_block_till_done() await hass.async_block_till_done()

View File

@ -24,7 +24,11 @@ from homeassistant.helpers import entity_registry as er
from . import get_actions_callback, get_data_callback from . import get_actions_callback, get_data_callback
from tests.common import MockConfigEntry, load_json_object_fixture, snapshot_platform from tests.common import (
MockConfigEntry,
async_load_json_object_fixture,
snapshot_platform,
)
TEST_PLATFORM = VACUUM_DOMAIN TEST_PLATFORM = VACUUM_DOMAIN
ENTITY_ID = "vacuum.robot_vacuum_cleaner" ENTITY_ID = "vacuum.robot_vacuum_cleaner"
@ -64,7 +68,9 @@ async def test_vacuum_states_api_push(
await data_callback(device_fixture) await data_callback(device_fixture)
await hass.async_block_till_done() await hass.async_block_till_done()
act_file = load_json_object_fixture("action_push_vacuum.json", DOMAIN) act_file = await async_load_json_object_fixture(
hass, "action_push_vacuum.json", DOMAIN
)
action_callback = get_actions_callback(mock_miele_client) action_callback = get_actions_callback(mock_miele_client)
await action_callback(act_file) await action_callback(act_file)
await hass.async_block_till_done() await hass.async_block_till_done()

View File

@ -5,7 +5,7 @@ from unittest.mock import AsyncMock, Mock, patch
from homeassistant.components.nam.const import DOMAIN from homeassistant.components.nam.const import DOMAIN
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
INCOMPLETE_NAM_DATA = { INCOMPLETE_NAM_DATA = {
"software_version": "NAMF-2020-36", "software_version": "NAMF-2020-36",
@ -24,7 +24,7 @@ async def init_integration(
data={"host": "10.10.2.3"}, data={"host": "10.10.2.3"},
) )
nam_data = load_json_object_fixture("nam/nam_data.json") nam_data = await async_load_json_object_fixture(hass, "nam_data.json", DOMAIN)
if not co2_sensor: if not co2_sensor:
# Remove conc_co2_ppm value # Remove conc_co2_ppm value

View File

@ -28,7 +28,7 @@ from . import INCOMPLETE_NAM_DATA, init_integration
from tests.common import ( from tests.common import (
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
@ -103,7 +103,7 @@ async def test_availability(
hass: HomeAssistant, freezer: FrozenDateTimeFactory, exc: Exception hass: HomeAssistant, freezer: FrozenDateTimeFactory, exc: Exception
) -> None: ) -> None:
"""Ensure that we mark the entities unavailable correctly when device causes an error.""" """Ensure that we mark the entities unavailable correctly when device causes an error."""
nam_data = load_json_object_fixture("nam/nam_data.json") nam_data = await async_load_json_object_fixture(hass, "nam_data.json", DOMAIN)
await init_integration(hass) await init_integration(hass)
@ -147,7 +147,7 @@ async def test_availability(
async def test_manual_update_entity(hass: HomeAssistant) -> None: async def test_manual_update_entity(hass: HomeAssistant) -> None:
"""Test manual update entity via service homeasasistant/update_entity.""" """Test manual update entity via service homeasasistant/update_entity."""
nam_data = load_json_object_fixture("nam/nam_data.json") nam_data = await async_load_json_object_fixture(hass, "nam_data.json", DOMAIN)
await init_integration(hass) await init_integration(hass)

View File

@ -22,7 +22,11 @@ from homeassistant.helpers import entity_registry as er
from . import setup_integration from . import setup_integration
from tests.common import MockConfigEntry, load_json_object_fixture, snapshot_platform from tests.common import (
MockConfigEntry,
async_load_json_object_fixture,
snapshot_platform,
)
async def test_covers( async def test_covers(
@ -104,9 +108,13 @@ async def test_update_cover_state(
assert hass.states.get("cover.test_garage_1").state == CoverState.CLOSED assert hass.states.get("cover.test_garage_1").state == CoverState.CLOSED
assert hass.states.get("cover.test_garage_2").state == CoverState.OPEN assert hass.states.get("cover.test_garage_2").state == CoverState.OPEN
device_update = load_json_object_fixture("device_state_update.json", DOMAIN) device_update = await async_load_json_object_fixture(
hass, "device_state_update.json", DOMAIN
)
await mock_config_entry.runtime_data.on_data(device_update) await mock_config_entry.runtime_data.on_data(device_update)
device_update_1 = load_json_object_fixture("device_state_update_1.json", DOMAIN) device_update_1 = await async_load_json_object_fixture(
hass, "device_state_update_1.json", DOMAIN
)
await mock_config_entry.runtime_data.on_data(device_update_1) await mock_config_entry.runtime_data.on_data(device_update_1)
assert hass.states.get("cover.test_garage_1").state == CoverState.OPENING assert hass.states.get("cover.test_garage_1").state == CoverState.OPENING

View File

@ -20,7 +20,11 @@ from homeassistant.helpers import entity_registry as er
from . import setup_integration from . import setup_integration
from tests.common import MockConfigEntry, load_json_object_fixture, snapshot_platform from tests.common import (
MockConfigEntry,
async_load_json_object_fixture,
snapshot_platform,
)
async def test_data( async def test_data(
@ -84,9 +88,13 @@ async def test_update_light_state(
assert hass.states.get("light.test_garage_2_light").state == STATE_OFF assert hass.states.get("light.test_garage_2_light").state == STATE_OFF
assert hass.states.get("light.test_garage_3_light") is None assert hass.states.get("light.test_garage_3_light") is None
device_update = load_json_object_fixture("device_state_update.json", DOMAIN) device_update = await async_load_json_object_fixture(
hass, "device_state_update.json", DOMAIN
)
await mock_config_entry.runtime_data.on_data(device_update) await mock_config_entry.runtime_data.on_data(device_update)
device_update_1 = load_json_object_fixture("device_state_update_1.json", DOMAIN) device_update_1 = await async_load_json_object_fixture(
hass, "device_state_update_1.json", DOMAIN
)
await mock_config_entry.runtime_data.on_data(device_update_1) await mock_config_entry.runtime_data.on_data(device_update_1)
assert hass.states.get("light.test_garage_1_light").state == STATE_OFF assert hass.states.get("light.test_garage_1_light").state == STATE_OFF

View File

@ -18,8 +18,9 @@ from homeassistant.const import (
CONF_RADIUS, CONF_RADIUS,
CONF_USERNAME, CONF_USERNAME,
) )
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
@pytest.fixture @pytest.fixture
@ -87,7 +88,7 @@ def mock_config_entry_authenticated() -> MockConfigEntry:
@pytest.fixture @pytest.fixture
async def opensky_client() -> AsyncGenerator[AsyncMock]: async def opensky_client(hass: HomeAssistant) -> AsyncGenerator[AsyncMock]:
"""Mock the OpenSky client.""" """Mock the OpenSky client."""
with ( with (
patch( patch(
@ -101,7 +102,7 @@ async def opensky_client() -> AsyncGenerator[AsyncMock]:
): ):
client = mock_client.return_value client = mock_client.return_value
client.get_states.return_value = StatesResponse.from_api( client.get_states.return_value = StatesResponse.from_api(
load_json_object_fixture("states.json", DOMAIN) await async_load_json_object_fixture(hass, "states.json", DOMAIN)
) )
client.is_authenticated = False client.is_authenticated = False
yield client yield client

View File

@ -19,7 +19,7 @@ from . import setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
@ -83,10 +83,10 @@ async def test_sensor_updating(
assert events == snapshot assert events == snapshot
opensky_client.get_states.return_value = StatesResponse.from_api( opensky_client.get_states.return_value = StatesResponse.from_api(
load_json_object_fixture("states_1.json", DOMAIN) await async_load_json_object_fixture(hass, "states_1.json", DOMAIN)
) )
await skip_time_and_check_events() await skip_time_and_check_events()
opensky_client.get_states.return_value = StatesResponse.from_api( opensky_client.get_states.return_value = StatesResponse.from_api(
load_json_object_fixture("states.json", DOMAIN) await async_load_json_object_fixture(hass, "states.json", DOMAIN)
) )
await skip_time_and_check_events() await skip_time_and_check_events()

View File

@ -19,7 +19,7 @@ from . import call_webhook, setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
from tests.typing import ClientSessionGenerator from tests.typing import ClientSessionGenerator
@ -42,7 +42,9 @@ async def test_entities(
await call_webhook( await call_webhook(
hass, hass,
load_json_object_fixture("webhook_request_automatically_approved.json", DOMAIN), await async_load_json_object_fixture(
hass, "webhook_request_automatically_approved.json", DOMAIN
),
client, client,
) )
await hass.async_block_till_done() await hass.async_block_till_done()
@ -65,7 +67,9 @@ async def test_event_does_not_write_state(
await call_webhook( await call_webhook(
hass, hass,
load_json_object_fixture("webhook_request_automatically_approved.json", DOMAIN), await async_load_json_object_fixture(
hass, "webhook_request_automatically_approved.json", DOMAIN
),
client, client,
) )
await hass.async_block_till_done() await hass.async_block_till_done()

View File

@ -11,7 +11,11 @@ from homeassistant.helpers import entity_registry as er
from . import call_webhook, setup_integration from . import call_webhook, setup_integration
from tests.common import MockConfigEntry, load_json_object_fixture, snapshot_platform from tests.common import (
MockConfigEntry,
async_load_json_object_fixture,
snapshot_platform,
)
from tests.typing import ClientSessionGenerator from tests.typing import ClientSessionGenerator
@ -45,7 +49,9 @@ async def test_webhook_trigger_update(
await call_webhook( await call_webhook(
hass, hass,
load_json_object_fixture("webhook_request_automatically_approved.json", DOMAIN), await async_load_json_object_fixture(
hass, "webhook_request_automatically_approved.json", DOMAIN
),
client, client,
) )
await hass.async_block_till_done() await hass.async_block_till_done()

View File

@ -20,10 +20,11 @@ from samsungtvws.exceptions import ResponseError
from samsungtvws.remote import ChannelEmitCommand from samsungtvws.remote import ChannelEmitCommand
from homeassistant.components.samsungtv.const import DOMAIN, WEBSOCKET_SSL_PORT from homeassistant.components.samsungtv.const import DOMAIN, WEBSOCKET_SSL_PORT
from homeassistant.core import HomeAssistant
from .const import SAMPLE_DEVICE_INFO_WIFI from .const import SAMPLE_DEVICE_INFO_WIFI
from tests.common import load_json_object_fixture from tests.common import async_load_json_object_fixture
@pytest.fixture @pytest.fixture
@ -174,7 +175,7 @@ def rest_api_fixture() -> Generator[Mock]:
@pytest.fixture(name="rest_api_non_ssl_only") @pytest.fixture(name="rest_api_non_ssl_only")
def rest_api_fixture_non_ssl_only() -> Generator[None]: def rest_api_fixture_non_ssl_only(hass: HomeAssistant) -> Generator[None]:
"""Patch the samsungtvws SamsungTVAsyncRest non-ssl only.""" """Patch the samsungtvws SamsungTVAsyncRest non-ssl only."""
class MockSamsungTVAsyncRest: class MockSamsungTVAsyncRest:
@ -189,7 +190,9 @@ def rest_api_fixture_non_ssl_only() -> Generator[None]:
"""Mock rest_device_info to fail for ssl and work for non-ssl.""" """Mock rest_device_info to fail for ssl and work for non-ssl."""
if self.port == WEBSOCKET_SSL_PORT: if self.port == WEBSOCKET_SSL_PORT:
raise ResponseError raise ResponseError
return load_json_object_fixture("device_info_UE48JU6400.json", DOMAIN) return await async_load_json_object_fixture(
hass, "device_info_UE48JU6400.json", DOMAIN
)
with patch( with patch(
"homeassistant.components.samsungtv.bridge.SamsungTVAsyncRest", "homeassistant.components.samsungtv.bridge.SamsungTVAsyncRest",

View File

@ -68,7 +68,7 @@ from .const import (
MOCK_SSDP_DATA_RENDERING_CONTROL_ST, MOCK_SSDP_DATA_RENDERING_CONTROL_ST,
) )
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
RESULT_ALREADY_CONFIGURED = "already_configured" RESULT_ALREADY_CONFIGURED = "already_configured"
RESULT_ALREADY_IN_PROGRESS = "already_in_progress" RESULT_ALREADY_IN_PROGRESS = "already_in_progress"
@ -896,8 +896,8 @@ async def test_dhcp_wireless(hass: HomeAssistant) -> None:
async def test_dhcp_wired(hass: HomeAssistant, rest_api: Mock) -> None: async def test_dhcp_wired(hass: HomeAssistant, rest_api: Mock) -> None:
"""Test starting a flow from dhcp.""" """Test starting a flow from dhcp."""
# Even though it is named "wifiMac", it matches the mac of the wired connection # Even though it is named "wifiMac", it matches the mac of the wired connection
rest_api.rest_device_info.return_value = load_json_object_fixture( rest_api.rest_device_info.return_value = await async_load_json_object_fixture(
"device_info_UE43LS003.json", DOMAIN hass, "device_info_UE43LS003.json", DOMAIN
) )
# confirm to add the entry # confirm to add the entry
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(

View File

@ -13,7 +13,7 @@ from homeassistant.core import HomeAssistant
from . import setup_samsungtv_entry from . import setup_samsungtv_entry
from .const import ENTRYDATA_ENCRYPTED_WEBSOCKET, ENTRYDATA_WEBSOCKET from .const import ENTRYDATA_ENCRYPTED_WEBSOCKET, ENTRYDATA_WEBSOCKET
from tests.common import load_json_object_fixture from tests.common import async_load_json_object_fixture
from tests.components.diagnostics import get_diagnostics_for_config_entry from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator from tests.typing import ClientSessionGenerator
@ -40,8 +40,8 @@ async def test_entry_diagnostics_encrypted(
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
) -> None: ) -> None:
"""Test config entry diagnostics.""" """Test config entry diagnostics."""
rest_api.rest_device_info.return_value = load_json_object_fixture( rest_api.rest_device_info.return_value = await async_load_json_object_fixture(
"device_info_UE48JU6400.json", DOMAIN hass, "device_info_UE48JU6400.json", DOMAIN
) )
config_entry = await setup_samsungtv_entry(hass, ENTRYDATA_ENCRYPTED_WEBSOCKET) config_entry = await setup_samsungtv_entry(hass, ENTRYDATA_ENCRYPTED_WEBSOCKET)

View File

@ -31,7 +31,7 @@ from .const import (
MOCK_SSDP_DATA_RENDERING_CONTROL_ST, MOCK_SSDP_DATA_RENDERING_CONTROL_ST,
) )
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
@pytest.mark.parametrize( @pytest.mark.parametrize(
@ -65,8 +65,8 @@ async def test_setup_h_j_model(
hass: HomeAssistant, rest_api: Mock, caplog: pytest.LogCaptureFixture hass: HomeAssistant, rest_api: Mock, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test Samsung TV integration is setup.""" """Test Samsung TV integration is setup."""
rest_api.rest_device_info.return_value = load_json_object_fixture( rest_api.rest_device_info.return_value = await async_load_json_object_fixture(
"device_info_UE48JU6400.json", DOMAIN hass, "device_info_UE48JU6400.json", DOMAIN
) )
entry = await setup_samsungtv_entry( entry = await setup_samsungtv_entry(
hass, {**ENTRYDATA_WEBSOCKET, CONF_MODEL: "UE48JU6400"} hass, {**ENTRYDATA_WEBSOCKET, CONF_MODEL: "UE48JU6400"}

View File

@ -90,7 +90,7 @@ from .const import (
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
ENTITY_ID = f"{MP_DOMAIN}.mock_title" ENTITY_ID = f"{MP_DOMAIN}.mock_title"
@ -708,8 +708,8 @@ async def test_turn_off_websocket(
hass: HomeAssistant, remote_websocket: Mock, caplog: pytest.LogCaptureFixture hass: HomeAssistant, remote_websocket: Mock, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test for turn_off.""" """Test for turn_off."""
remote_websocket.app_list_data = load_json_object_fixture( remote_websocket.app_list_data = await async_load_json_object_fixture(
"ws_installed_app_event.json", DOMAIN hass, "ws_installed_app_event.json", DOMAIN
) )
with patch( with patch(
"homeassistant.components.samsungtv.bridge.Remote", "homeassistant.components.samsungtv.bridge.Remote",
@ -749,8 +749,8 @@ async def test_turn_off_websocket_frame(
hass: HomeAssistant, remote_websocket: Mock, rest_api: Mock hass: HomeAssistant, remote_websocket: Mock, rest_api: Mock
) -> None: ) -> None:
"""Test for turn_off.""" """Test for turn_off."""
rest_api.rest_device_info.return_value = load_json_object_fixture( rest_api.rest_device_info.return_value = await async_load_json_object_fixture(
"device_info_UE43LS003.json", DOMAIN hass, "device_info_UE43LS003.json", DOMAIN
) )
with patch( with patch(
"homeassistant.components.samsungtv.bridge.Remote", "homeassistant.components.samsungtv.bridge.Remote",
@ -1173,8 +1173,8 @@ async def test_play_media_app(hass: HomeAssistant, remote_websocket: Mock) -> No
@pytest.mark.usefixtures("rest_api") @pytest.mark.usefixtures("rest_api")
async def test_select_source_app(hass: HomeAssistant, remote_websocket: Mock) -> None: async def test_select_source_app(hass: HomeAssistant, remote_websocket: Mock) -> None:
"""Test for select_source.""" """Test for select_source."""
remote_websocket.app_list_data = load_json_object_fixture( remote_websocket.app_list_data = await async_load_json_object_fixture(
"ws_installed_app_event.json", DOMAIN hass, "ws_installed_app_event.json", DOMAIN
) )
await setup_samsungtv_entry(hass, MOCK_CONFIGWS) await setup_samsungtv_entry(hass, MOCK_CONFIGWS)
remote_websocket.send_commands.reset_mock() remote_websocket.send_commands.reset_mock()

View File

@ -12,7 +12,7 @@ from homeassistant.helpers.entity_registry import EntityRegistry
from . import init_integration from . import init_integration
from tests.common import load_json_object_fixture from tests.common import async_load_json_object_fixture
async def test_shelly_2pm_gen3_no_relay_names( async def test_shelly_2pm_gen3_no_relay_names(
@ -27,7 +27,7 @@ async def test_shelly_2pm_gen3_no_relay_names(
This device has two relays/channels,we should get a main device and two sub This device has two relays/channels,we should get a main device and two sub
devices. devices.
""" """
device_fixture = load_json_object_fixture("2pm_gen3.json", DOMAIN) device_fixture = await async_load_json_object_fixture(hass, "2pm_gen3.json", DOMAIN)
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"]) monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"]) monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"])
monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"]) monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"])
@ -110,7 +110,7 @@ async def test_shelly_2pm_gen3_relay_names(
This device has two relays/channels,we should get a main device and two sub This device has two relays/channels,we should get a main device and two sub
devices. devices.
""" """
device_fixture = load_json_object_fixture("2pm_gen3.json", DOMAIN) device_fixture = await async_load_json_object_fixture(hass, "2pm_gen3.json", DOMAIN)
device_fixture["config"]["switch:0"]["name"] = "Kitchen light" device_fixture["config"]["switch:0"]["name"] = "Kitchen light"
device_fixture["config"]["switch:1"]["name"] = "Living room light" device_fixture["config"]["switch:1"]["name"] = "Living room light"
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"]) monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
@ -194,7 +194,9 @@ async def test_shelly_2pm_gen3_cover(
With the cover profile we should only get the main device and no subdevices. With the cover profile we should only get the main device and no subdevices.
""" """
device_fixture = load_json_object_fixture("2pm_gen3_cover.json", DOMAIN) device_fixture = await async_load_json_object_fixture(
hass, "2pm_gen3_cover.json", DOMAIN
)
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"]) monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"]) monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"])
monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"]) monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"])
@ -249,7 +251,9 @@ async def test_shelly_2pm_gen3_cover_with_name(
With the cover profile we should only get the main device and no subdevices. With the cover profile we should only get the main device and no subdevices.
""" """
device_fixture = load_json_object_fixture("2pm_gen3_cover.json", DOMAIN) device_fixture = await async_load_json_object_fixture(
hass, "2pm_gen3_cover.json", DOMAIN
)
device_fixture["config"]["cover:0"]["name"] = "Bedroom blinds" device_fixture["config"]["cover:0"]["name"] = "Bedroom blinds"
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"]) monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"]) monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"])
@ -305,7 +309,7 @@ async def test_shelly_pro_3em(
We should get the main device and three subdevices, one subdevice per one phase. We should get the main device and three subdevices, one subdevice per one phase.
""" """
device_fixture = load_json_object_fixture("pro_3em.json", DOMAIN) device_fixture = await async_load_json_object_fixture(hass, "pro_3em.json", DOMAIN)
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"]) monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"]) monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"])
monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"]) monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"])
@ -376,7 +380,7 @@ async def test_shelly_pro_3em_with_emeter_name(
We should get the main device and three subdevices, one subdevice per one phase. We should get the main device and three subdevices, one subdevice per one phase.
""" """
device_fixture = load_json_object_fixture("pro_3em.json", DOMAIN) device_fixture = await async_load_json_object_fixture(hass, "pro_3em.json", DOMAIN)
device_fixture["config"]["em:0"]["name"] = "Emeter name" device_fixture["config"]["em:0"]["name"] = "Emeter name"
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"]) monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"]) monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"])

View File

@ -12,7 +12,7 @@ from homeassistant.helpers import device_registry as dr
from . import setup_integration from . import setup_integration
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
from tests.components.diagnostics import ( from tests.components.diagnostics import (
get_diagnostics_for_config_entry, get_diagnostics_for_config_entry,
get_diagnostics_for_device, get_diagnostics_for_device,
@ -31,7 +31,9 @@ async def test_config_entry_diagnostics(
) -> None: ) -> None:
"""Test generating diagnostics for a device entry.""" """Test generating diagnostics for a device entry."""
mock_smartthings.get_raw_devices.return_value = [ mock_smartthings.get_raw_devices.return_value = [
load_json_object_fixture("devices/da_ac_rac_000001.json", DOMAIN) await async_load_json_object_fixture(
hass, "devices/da_ac_rac_000001.json", DOMAIN
)
] ]
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)
assert ( assert (
@ -51,12 +53,15 @@ async def test_device_diagnostics(
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
) -> None: ) -> None:
"""Test generating diagnostics for a device entry.""" """Test generating diagnostics for a device entry."""
mock_smartthings.get_raw_device_status.return_value = load_json_object_fixture( mock_smartthings.get_raw_device_status.return_value = (
"device_status/da_ac_rac_000001.json", DOMAIN await async_load_json_object_fixture(
hass, "device_status/da_ac_rac_000001.json", DOMAIN
) )
mock_smartthings.get_raw_device.return_value = load_json_object_fixture( )
"devices/da_ac_rac_000001.json", DOMAIN device_items = await async_load_json_object_fixture(
)["items"][0] hass, "devices/da_ac_rac_000001.json", DOMAIN
)
mock_smartthings.get_raw_device.return_value = device_items["items"][0]
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)
device = device_registry.async_get_device( device = device_registry.async_get_device(

View File

@ -17,7 +17,7 @@ from .conftest import setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
@ -104,7 +104,7 @@ async def test_zigbee2_router_button(
"""Test creation of second radio router button (if available).""" """Test creation of second radio router button (if available)."""
mock_smlight_client.get_info.side_effect = None mock_smlight_client.get_info.side_effect = None
mock_smlight_client.get_info.return_value = Info.from_dict( mock_smlight_client.get_info.return_value = Info.from_dict(
load_json_object_fixture("info-MR1.json", DOMAIN) await async_load_json_object_fixture(hass, "info-MR1.json", DOMAIN)
) )
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)

View File

@ -13,7 +13,11 @@ from homeassistant.helpers import device_registry as dr, entity_registry as er
from .conftest import setup_integration from .conftest import setup_integration
from tests.common import MockConfigEntry, load_json_object_fixture, snapshot_platform from tests.common import (
MockConfigEntry,
async_load_json_object_fixture,
snapshot_platform,
)
pytestmark = [ pytestmark = [
pytest.mark.usefixtures( pytest.mark.usefixtures(
@ -98,7 +102,7 @@ async def test_zigbee_type_sensors(
"""Test for zigbee type sensor with second radio.""" """Test for zigbee type sensor with second radio."""
mock_smlight_client.get_info.side_effect = None mock_smlight_client.get_info.side_effect = None
mock_smlight_client.get_info.return_value = Info.from_dict( mock_smlight_client.get_info.return_value = Info.from_dict(
load_json_object_fixture("info-MR1.json", DOMAIN) await async_load_json_object_fixture(hass, "info-MR1.json", DOMAIN)
) )
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)

View File

@ -30,7 +30,7 @@ from .conftest import setup_integration
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
snapshot_platform, snapshot_platform,
) )
from tests.typing import WebSocketGenerator from tests.typing import WebSocketGenerator
@ -154,7 +154,9 @@ async def test_update_zigbee2_firmware(
mock_smlight_client: MagicMock, mock_smlight_client: MagicMock,
) -> None: ) -> None:
"""Test update of zigbee2 firmware where available.""" """Test update of zigbee2 firmware where available."""
mock_info = Info.from_dict(load_json_object_fixture("info-MR1.json", DOMAIN)) mock_info = Info.from_dict(
await async_load_json_object_fixture(hass, "info-MR1.json", DOMAIN)
)
mock_smlight_client.get_info.side_effect = None mock_smlight_client.get_info.side_effect = None
mock_smlight_client.get_info.return_value = mock_info mock_smlight_client.get_info.return_value = mock_info
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)
@ -338,7 +340,7 @@ async def test_update_release_notes(
"""Test firmware release notes.""" """Test firmware release notes."""
mock_smlight_client.get_info.side_effect = None mock_smlight_client.get_info.side_effect = None
mock_smlight_client.get_info.return_value = Info.from_dict( mock_smlight_client.get_info.return_value = Info.from_dict(
load_json_object_fixture("info-MR1.json", DOMAIN) await async_load_json_object_fixture(hass, "info-MR1.json", DOMAIN)
) )
await setup_integration(hass, mock_config_entry) await setup_integration(hass, mock_config_entry)
ws_client = await hass_ws_client(hass) ws_client = await hass_ws_client(hass)

View File

@ -18,7 +18,7 @@ from . import setup_with_selected_platforms
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
@ -113,7 +113,7 @@ async def test_sensor_unknown_status(
assert hass.states.get(entity_id).state == Status.PLUGGED_CHARGING.value assert hass.states.get(entity_id).state == Status.PLUGGED_CHARGING.value
mock_technove.update.return_value = Station( mock_technove.update.return_value = Station(
load_json_object_fixture("station_bad_status.json", DOMAIN) await async_load_json_object_fixture(hass, "station_bad_status.json", DOMAIN)
) )
freezer.tick(timedelta(minutes=5, seconds=1)) freezer.tick(timedelta(minutes=5, seconds=1))

View File

@ -14,7 +14,7 @@ from homeassistant.setup import async_setup_component
from . import GATEWAY_ID, GATEWAY_ID1, GATEWAY_ID2 from . import GATEWAY_ID, GATEWAY_ID1, GATEWAY_ID2
from .common import CommandStore from .common import CommandStore
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
async def test_entry_setup_unload( async def test_entry_setup_unload(
@ -118,7 +118,7 @@ async def test_migrate_config_entry_and_identifiers(
gateway1 = mock_gateway_fixture(command_store, GATEWAY_ID1) gateway1 = mock_gateway_fixture(command_store, GATEWAY_ID1)
command_store.register_device( command_store.register_device(
gateway1, load_json_object_fixture("bulb_w.json", DOMAIN) gateway1, await async_load_json_object_fixture(hass, "bulb_w.json", DOMAIN)
) )
config_entry1.add_to_hass(hass) config_entry1.add_to_hass(hass)

View File

@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant
from . import TwitchIterObject, get_generator_from_data, setup_integration from . import TwitchIterObject, get_generator_from_data, setup_integration
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
ENTITY_ID = "sensor.channel123" ENTITY_ID = "sensor.channel123"
@ -72,8 +72,11 @@ async def test_oauth_with_sub(
twitch_mock.return_value.get_followed_channels.return_value = TwitchIterObject( twitch_mock.return_value.get_followed_channels.return_value = TwitchIterObject(
"empty_response.json", FollowedChannel "empty_response.json", FollowedChannel
) )
subscription = await async_load_json_object_fixture(
hass, "check_user_subscription_2.json", DOMAIN
)
twitch_mock.return_value.check_user_subscription.return_value = UserSubscription( twitch_mock.return_value.check_user_subscription.return_value = UserSubscription(
**load_json_object_fixture("check_user_subscription_2.json", DOMAIN) **subscription
) )
await setup_integration(hass, config_entry) await setup_integration(hass, config_entry)

View File

@ -16,7 +16,7 @@ from homeassistant.const import (
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, async_load_json_object_fixture
TEST_USER_INPUT = { TEST_USER_INPUT = {
CONF_HOST: "192.168.1.1", CONF_HOST: "192.168.1.1",
@ -46,7 +46,8 @@ async def async_init_integration(
with patch( with patch(
"homeassistant.components.webmin.helpers.WebminInstance.update", "homeassistant.components.webmin.helpers.WebminInstance.update",
return_value=load_json_object_fixture( return_value=await async_load_json_object_fixture(
hass,
"webmin_update.json" "webmin_update.json"
if with_mac_address if with_mac_address
else "webmin_update_without_mac.json", else "webmin_update_without_mac.json",

View File

@ -17,7 +17,7 @@ from homeassistant.data_entry_flow import FlowResultType
from .conftest import TEST_USER_INPUT from .conftest import TEST_USER_INPUT
from tests.common import load_json_object_fixture from tests.common import async_load_json_object_fixture
pytestmark = pytest.mark.usefixtures("mock_setup_entry") pytestmark = pytest.mark.usefixtures("mock_setup_entry")
@ -42,7 +42,7 @@ async def test_form_user(
"""Test a successful user initiated flow.""" """Test a successful user initiated flow."""
with patch( with patch(
"homeassistant.components.webmin.helpers.WebminInstance.update", "homeassistant.components.webmin.helpers.WebminInstance.update",
return_value=load_json_object_fixture(fixture, DOMAIN), return_value=await async_load_json_object_fixture(hass, fixture, DOMAIN),
): ):
result = await hass.config_entries.flow.async_configure( result = await hass.config_entries.flow.async_configure(
user_flow, TEST_USER_INPUT user_flow, TEST_USER_INPUT
@ -96,7 +96,9 @@ async def test_form_user_errors(
with patch( with patch(
"homeassistant.components.webmin.helpers.WebminInstance.update", "homeassistant.components.webmin.helpers.WebminInstance.update",
return_value=load_json_object_fixture("webmin_update.json", DOMAIN), return_value=await async_load_json_object_fixture(
hass, "webmin_update.json", DOMAIN
),
): ):
result = await hass.config_entries.flow.async_configure( result = await hass.config_entries.flow.async_configure(
result["flow_id"], TEST_USER_INPUT result["flow_id"], TEST_USER_INPUT
@ -115,7 +117,9 @@ async def test_duplicate_entry(
"""Test a successful user initiated flow.""" """Test a successful user initiated flow."""
with patch( with patch(
"homeassistant.components.webmin.helpers.WebminInstance.update", "homeassistant.components.webmin.helpers.WebminInstance.update",
return_value=load_json_object_fixture("webmin_update.json", DOMAIN), return_value=await async_load_json_object_fixture(
hass, "webmin_update.json", DOMAIN
),
): ):
result = await hass.config_entries.flow.async_configure( result = await hass.config_entries.flow.async_configure(
user_flow, TEST_USER_INPUT user_flow, TEST_USER_INPUT
@ -128,7 +132,9 @@ async def test_duplicate_entry(
with patch( with patch(
"homeassistant.components.webmin.helpers.WebminInstance.update", "homeassistant.components.webmin.helpers.WebminInstance.update",
return_value=load_json_object_fixture("webmin_update.json", DOMAIN), return_value=await async_load_json_object_fixture(
hass, "webmin_update.json", DOMAIN
),
): ):
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": config_entries.SOURCE_USER} DOMAIN, context={"source": config_entries.SOURCE_USER}

View File

@ -42,7 +42,7 @@ from homeassistant.helpers import entity_registry as er
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
async_fire_time_changed, async_fire_time_changed,
load_json_object_fixture, async_load_json_object_fixture,
) )
pytestmark = pytest.mark.usefixtures("init_integration") pytestmark = pytest.mark.usefixtures("init_integration")
@ -202,7 +202,7 @@ async def test_dynamically_handle_segments(
return_value = mock_wled.update.return_value return_value = mock_wled.update.return_value
mock_wled.update.return_value = WLEDDevice.from_dict( mock_wled.update.return_value = WLEDDevice.from_dict(
load_json_object_fixture("rgb.json", DOMAIN) await async_load_json_object_fixture(hass, "rgb.json", DOMAIN)
) )
freezer.tick(SCAN_INTERVAL) freezer.tick(SCAN_INTERVAL)

View File

@ -18,7 +18,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import device_registry as dr, entity_registry as er from homeassistant.helpers import device_registry as dr, entity_registry as er
from tests.common import async_fire_time_changed, load_json_object_fixture from tests.common import async_fire_time_changed, async_load_json_object_fixture
pytestmark = pytest.mark.usefixtures("init_integration") pytestmark = pytest.mark.usefixtures("init_integration")
@ -128,7 +128,7 @@ async def test_speed_dynamically_handle_segments(
# Test adding a segment dynamically... # Test adding a segment dynamically...
return_value = mock_wled.update.return_value return_value = mock_wled.update.return_value
mock_wled.update.return_value = WLEDDevice.from_dict( mock_wled.update.return_value = WLEDDevice.from_dict(
load_json_object_fixture("rgb.json", DOMAIN) await async_load_json_object_fixture(hass, "rgb.json", DOMAIN)
) )
freezer.tick(SCAN_INTERVAL) freezer.tick(SCAN_INTERVAL)

View File

@ -14,7 +14,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import device_registry as dr, entity_registry as er from homeassistant.helpers import device_registry as dr, entity_registry as er
from tests.common import async_fire_time_changed, load_json_object_fixture from tests.common import async_fire_time_changed, async_load_json_object_fixture
pytestmark = pytest.mark.usefixtures("init_integration") pytestmark = pytest.mark.usefixtures("init_integration")
@ -130,7 +130,7 @@ async def test_color_palette_dynamically_handle_segments(
return_value = mock_wled.update.return_value return_value = mock_wled.update.return_value
mock_wled.update.return_value = WLEDDevice.from_dict( mock_wled.update.return_value = WLEDDevice.from_dict(
load_json_object_fixture("rgb.json", DOMAIN) await async_load_json_object_fixture(hass, "rgb.json", DOMAIN)
) )
freezer.tick(SCAN_INTERVAL) freezer.tick(SCAN_INTERVAL)

View File

@ -21,7 +21,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import device_registry as dr, entity_registry as er from homeassistant.helpers import device_registry as dr, entity_registry as er
from tests.common import async_fire_time_changed, load_json_object_fixture from tests.common import async_fire_time_changed, async_load_json_object_fixture
pytestmark = pytest.mark.usefixtures("init_integration") pytestmark = pytest.mark.usefixtures("init_integration")
@ -144,7 +144,7 @@ async def test_switch_dynamically_handle_segments(
# Test adding a segment dynamically... # Test adding a segment dynamically...
return_value = mock_wled.update.return_value return_value = mock_wled.update.return_value
mock_wled.update.return_value = WLEDDevice.from_dict( mock_wled.update.return_value = WLEDDevice.from_dict(
load_json_object_fixture("rgb.json", DOMAIN) await async_load_json_object_fixture(hass, "rgb.json", DOMAIN)
) )
freezer.tick(SCAN_INTERVAL) freezer.tick(SCAN_INTERVAL)