File tree Expand file tree Collapse file tree 3 files changed +92
-0
lines changed
homeassistant/components/waqi Expand file tree Collapse file tree 3 files changed +92
-0
lines changed Original file line number Diff line number Diff line change 1+ """Diagnostics support for WAQI."""
2+
3+ from __future__ import annotations
4+
5+ from dataclasses import asdict
6+ from typing import Any
7+
8+ from homeassistant .core import HomeAssistant
9+
10+ from .coordinator import WAQIConfigEntry
11+
12+
13+ async def async_get_config_entry_diagnostics (
14+ hass : HomeAssistant , entry : WAQIConfigEntry
15+ ) -> dict [str , Any ]:
16+ """Return diagnostics for a config entry."""
17+ return {
18+ subentry_id : asdict (coordinator .data )
19+ for subentry_id , coordinator in entry .runtime_data .items ()
20+ }
Original file line number Diff line number Diff line change 1+ # serializer version: 1
2+ # name: test_diagnostics
3+ dict({
4+ 'ABCDEF': dict({
5+ 'air_quality_index': 29,
6+ 'attributions': list([
7+ dict({
8+ 'logo': 'Netherland-RIVM.png',
9+ 'name': 'RIVM - Rijksinstituut voor Volksgezondheid en Milieum, Landelijk Meetnet Luchtkwaliteit',
10+ 'url': 'http://www.luchtmeetnet.nl/',
11+ }),
12+ dict({
13+ 'logo': None,
14+ 'name': 'World Air Quality Index Project',
15+ 'url': 'https://waqi.info/',
16+ }),
17+ ]),
18+ 'city': dict({
19+ 'coordinates': dict({
20+ 'latitude': 52.105031,
21+ 'longitude': 5.124464,
22+ }),
23+ 'external_url': 'https://aqicn.org/city/netherland/utrecht/de-jongweg',
24+ 'location': None,
25+ 'name': 'de Jongweg, Utrecht',
26+ }),
27+ 'dominant_pollutant': 'o3',
28+ 'extended_air_quality': dict({
29+ 'carbon_monoxide': 2.3,
30+ 'humidity': 80,
31+ 'nephelometry': 80,
32+ 'nitrogen_dioxide': 2.3,
33+ 'ozone': 29.4,
34+ 'pm10': 12,
35+ 'pm25': 17,
36+ 'pressure': 1008.8,
37+ 'sulfur_dioxide': 2.3,
38+ 'temperature': 16,
39+ }),
40+ 'measured_at': '2023-08-07T17:00:00+02:00',
41+ 'station_id': 4584,
42+ }),
43+ })
44+ # ---
Original file line number Diff line number Diff line change 1+ """Tests for the diagnostics data provided by the WAQI integration."""
2+
3+ from unittest .mock import AsyncMock
4+
5+ from syrupy .assertion import SnapshotAssertion
6+
7+ from homeassistant .core import HomeAssistant
8+
9+ from . import setup_integration
10+
11+ from tests .common import MockConfigEntry
12+ from tests .components .diagnostics import get_diagnostics_for_config_entry
13+ from tests .typing import ClientSessionGenerator
14+
15+
16+ async def test_diagnostics (
17+ hass : HomeAssistant ,
18+ hass_client : ClientSessionGenerator ,
19+ mock_waqi : AsyncMock ,
20+ mock_config_entry : MockConfigEntry ,
21+ snapshot : SnapshotAssertion ,
22+ ) -> None :
23+ """Test diagnostics."""
24+ await setup_integration (hass , mock_config_entry )
25+ assert (
26+ await get_diagnostics_for_config_entry (hass , hass_client , mock_config_entry )
27+ == snapshot
28+ )
You can’t perform that action at this time.
0 commit comments