76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
"""Test Mazda diagnostics."""
|
|
|
|
import json
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components.mazda.const import DATA_COORDINATOR, DOMAIN
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import device_registry as dr
|
|
|
|
from . import init_integration
|
|
|
|
from tests.common import load_fixture
|
|
from tests.components.diagnostics import (
|
|
get_diagnostics_for_config_entry,
|
|
get_diagnostics_for_device,
|
|
)
|
|
|
|
|
|
async def test_config_entry_diagnostics(hass: HomeAssistant, hass_client):
|
|
"""Test config entry diagnostics."""
|
|
await init_integration(hass)
|
|
assert hass.data[DOMAIN]
|
|
|
|
config_entry = hass.config_entries.async_entries(DOMAIN)[0]
|
|
|
|
diagnostics_fixture = json.loads(
|
|
load_fixture("mazda/diagnostics_config_entry.json")
|
|
)
|
|
|
|
assert (
|
|
await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
|
|
== diagnostics_fixture
|
|
)
|
|
|
|
|
|
async def test_device_diagnostics(hass: HomeAssistant, hass_client):
|
|
"""Test device diagnostics."""
|
|
await init_integration(hass)
|
|
assert hass.data[DOMAIN]
|
|
|
|
config_entry = hass.config_entries.async_entries(DOMAIN)[0]
|
|
|
|
device_registry = dr.async_get(hass)
|
|
reg_device = device_registry.async_get_device(
|
|
identifiers={(DOMAIN, "JM000000000000000")},
|
|
)
|
|
assert reg_device is not None
|
|
|
|
diagnostics_fixture = json.loads(load_fixture("mazda/diagnostics_device.json"))
|
|
|
|
assert (
|
|
await get_diagnostics_for_device(hass, hass_client, config_entry, reg_device)
|
|
== diagnostics_fixture
|
|
)
|
|
|
|
|
|
async def test_device_diagnostics_vehicle_not_found(hass: HomeAssistant, hass_client):
|
|
"""Test device diagnostics when the vehicle cannot be found."""
|
|
await init_integration(hass)
|
|
assert hass.data[DOMAIN]
|
|
|
|
config_entry = hass.config_entries.async_entries(DOMAIN)[0]
|
|
|
|
device_registry = dr.async_get(hass)
|
|
reg_device = device_registry.async_get_device(
|
|
identifiers={(DOMAIN, "JM000000000000000")},
|
|
)
|
|
assert reg_device is not None
|
|
|
|
# Remove vehicle info from hass.data so that vehicle will not be found
|
|
hass.data[DOMAIN][config_entry.entry_id][DATA_COORDINATOR].data = []
|
|
|
|
with pytest.raises(AssertionError):
|
|
await get_diagnostics_for_device(hass, hass_client, config_entry, reg_device)
|