core/tests/components/purpleair/test_diagnostics.py
Erik Montnemery 4b34d1bbb5
Merge config subentry feature branch to dev (#136121)
* Reapply "Add support for subentries to config entries" (#133470) (#136061)

* Reapply "Add support for subentries to config entries" (#133470)

This reverts commit ecb3bf79f32a2e25d141ff467e5958826ed9fc3a.

* Update test snapshot

* Add config subentry support to device registry (#128157)

* Add config subentry support to device registry

* Apply suggestions from code review

* Update syrupy serializer

* Update snapshots

* Address review comments

* Allow a device to be connected to no or a single subentry of a config entry

* Update snapshots

* Revert "Allow a device to be connected to no or a single subentry of a config entry"

This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2.

* Update test snapshots

* Bump release version in comments

* Rename config_subentries to config_entries_subentries

* Add config subentry support to entity registry (#128155)

* Add config subentry support to entity registry

* Update syrupy serializer

* Update snapshots

* Update snapshots

* Accept suggested changes

* Clean registries when removing subentry (#136671)

* Clean up registries when removing subentry

* Update tests

* Clean up subentries from deleted devices when removing config entry (#136669)

* Clean up subentries from deleted devices when removing config entry

* Move

* Add config subentry support to entity platform (#128161)

* Add config subentry support to entity platform

* Rename subentry_id to config_subentry_id

* Store subentry type in subentry (#136687)

* Add reconfigure support to config subentries (#133353)

* Add reconfigure support to config subentries

* Update test

* Minor adjustment

* Rename supported_subentry_flows to supported_subentry_types

* Address review comments

* Add subentry support to kitchen sink (#136755)

* Add subentry support to kitchen sink

* Add subentry reconfigure support to kitchen_sink

* Update kitchen_sink tests with subentry type stored in config entry

* Update kitchen_sink

* Update kitchen_sink

* Adjust kitchen sink tests

* Fix hassfest

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Improve docstrings and strings.json

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-10 16:40:07 +01:00

347 lines
13 KiB
Python

"""Test PurpleAir diagnostics."""
from homeassistant.components.diagnostics import REDACTED
from homeassistant.core import HomeAssistant
from tests.common import ANY
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
async def test_entry_diagnostics(
hass: HomeAssistant,
config_entry,
hass_client: ClientSessionGenerator,
setup_config_entry,
) -> None:
"""Test config entry diagnostics."""
assert await get_diagnostics_for_config_entry(hass, hass_client, config_entry) == {
"entry": {
"entry_id": config_entry.entry_id,
"version": 1,
"minor_version": 1,
"domain": "purpleair",
"title": REDACTED,
"data": {
"api_key": REDACTED,
},
"options": {
"sensor_indices": [
123456,
],
},
"pref_disable_new_entities": False,
"pref_disable_polling": False,
"source": "user",
"unique_id": REDACTED,
"disabled_by": None,
"created_at": ANY,
"modified_at": ANY,
"discovery_keys": {},
"subentries": [],
},
"data": {
"fields": [
"sensor_index",
"name",
"location_type",
"model",
"hardware",
"firmware_version",
"rssi",
"uptime",
"latitude",
"longitude",
"altitude",
"humidity",
"temperature",
"pressure",
"voc",
"pm1.0",
"pm2.5",
"pm10.0",
"0.3_um_count",
"0.5_um_count",
"1.0_um_count",
"2.5_um_count",
"5.0_um_count",
"10.0_um_count",
],
"data": {
"123456": {
"sensor_index": 123456,
"altitude": 569.0,
"analog_input": None,
"channel_flags": None,
"channel_flags_auto": None,
"channel_flags_manual": None,
"channel_state": None,
"confidence": None,
"confidence_auto": None,
"confidence_manual": None,
"date_created_utc": None,
"deciviews": None,
"deciviews_a": None,
"deciviews_b": None,
"firmware_upgrade": None,
"firmware_version": "7.02",
"hardware": "2.0+BME280+PMSX003-B+PMSX003-A",
"humidity": 13.0,
"humidity_a": None,
"humidity_b": None,
"icon": None,
"is_owner": None,
"last_modified_utc": None,
"last_seen_utc": None,
"latitude": REDACTED,
"led_brightness": None,
"location_type": {
"__type": "<enum 'LocationType'>",
"repr": "<LocationType.OUTSIDE: 0>",
},
"longitude": REDACTED,
"memory": None,
"model": "PA-II",
"name": "Test Sensor",
"ozone1": None,
"pa_latency": None,
"pm0_3_um_count": 76.0,
"pm0_3_um_count_a": None,
"pm0_3_um_count_b": None,
"pm0_5_um_count": 68.0,
"pm0_5_um_count_a": None,
"pm0_5_um_count_b": None,
"pm10_0": 0.0,
"pm10_0_a": None,
"pm10_0_atm": None,
"pm10_0_atm_a": None,
"pm10_0_atm_b": None,
"pm10_0_b": None,
"pm10_0_cf_1": None,
"pm10_0_cf_1_a": None,
"pm10_0_cf_1_b": None,
"pm10_0_um_count": 0.0,
"pm10_0_um_count_a": None,
"pm10_0_um_count_b": None,
"pm1_0": 0.0,
"pm1_0_a": None,
"pm1_0_atm": None,
"pm1_0_atm_a": None,
"pm1_0_atm_b": None,
"pm1_0_b": None,
"pm1_0_cf_1": None,
"pm1_0_cf_1_a": None,
"pm1_0_cf_1_b": None,
"pm1_0_um_count": 0.0,
"pm1_0_um_count_a": None,
"pm1_0_um_count_b": None,
"pm2_5": 0.0,
"pm2_5_10minute": None,
"pm2_5_10minute_a": None,
"pm2_5_10minute_b": None,
"pm2_5_1week": None,
"pm2_5_1week_a": None,
"pm2_5_1week_b": None,
"pm2_5_24hour": None,
"pm2_5_24hour_a": None,
"pm2_5_24hour_b": None,
"pm2_5_30minute": None,
"pm2_5_30minute_a": None,
"pm2_5_30minute_b": None,
"pm2_5_60minute": None,
"pm2_5_60minute_a": None,
"pm2_5_60minute_b": None,
"pm2_5_6hour": None,
"pm2_5_6hour_a": None,
"pm2_5_6hour_b": None,
"pm2_5_a": None,
"pm2_5_alt": None,
"pm2_5_alt_a": None,
"pm2_5_alt_b": None,
"pm2_5_atm": None,
"pm2_5_atm_a": None,
"pm2_5_atm_b": None,
"pm2_5_b": None,
"pm2_5_cf_1": None,
"pm2_5_cf_1_a": None,
"pm2_5_cf_1_b": None,
"pm2_5_um_count": 0.0,
"pm2_5_um_count_a": None,
"pm2_5_um_count_b": None,
"pm5_0_um_count": 0.0,
"pm5_0_um_count_a": None,
"pm5_0_um_count_b": None,
"position_rating": None,
"pressure": 1000.74,
"pressure_a": None,
"pressure_b": None,
"primary_id_a": None,
"primary_id_b": None,
"primary_key_a": None,
"primary_key_b": None,
"private": None,
"rssi": -69,
"scattering_coefficient": None,
"scattering_coefficient_a": None,
"scattering_coefficient_b": None,
"secondary_id_a": None,
"secondary_id_b": None,
"secondary_key_a": None,
"secondary_key_b": None,
"stats": None,
"stats_a": None,
"stats_b": None,
"temperature": 82.0,
"temperature_a": None,
"temperature_b": None,
"uptime": 13788,
"visual_range": None,
"visual_range_a": None,
"visual_range_b": None,
"voc": None,
"voc_a": None,
"voc_b": None,
},
"567890": {
"sensor_index": 567890,
"altitude": 569.0,
"analog_input": None,
"channel_flags": None,
"channel_flags_auto": None,
"channel_flags_manual": None,
"channel_state": None,
"confidence": None,
"confidence_auto": None,
"confidence_manual": None,
"date_created_utc": None,
"deciviews": None,
"deciviews_a": None,
"deciviews_b": None,
"firmware_upgrade": None,
"firmware_version": "7.02",
"hardware": "2.0+BME280+PMSX003-B+PMSX003-A",
"humidity": 13.0,
"humidity_a": None,
"humidity_b": None,
"icon": None,
"is_owner": None,
"last_modified_utc": None,
"last_seen_utc": None,
"latitude": REDACTED,
"led_brightness": None,
"location_type": {
"__type": "<enum 'LocationType'>",
"repr": "<LocationType.OUTSIDE: 0>",
},
"longitude": REDACTED,
"memory": None,
"model": "PA-II",
"name": "Test Sensor 2",
"ozone1": None,
"pa_latency": None,
"pm0_3_um_count": 76.0,
"pm0_3_um_count_a": None,
"pm0_3_um_count_b": None,
"pm0_5_um_count": 68.0,
"pm0_5_um_count_a": None,
"pm0_5_um_count_b": None,
"pm10_0": 0.0,
"pm10_0_a": None,
"pm10_0_atm": None,
"pm10_0_atm_a": None,
"pm10_0_atm_b": None,
"pm10_0_b": None,
"pm10_0_cf_1": None,
"pm10_0_cf_1_a": None,
"pm10_0_cf_1_b": None,
"pm10_0_um_count": 0.0,
"pm10_0_um_count_a": None,
"pm10_0_um_count_b": None,
"pm1_0": 0.0,
"pm1_0_a": None,
"pm1_0_atm": None,
"pm1_0_atm_a": None,
"pm1_0_atm_b": None,
"pm1_0_b": None,
"pm1_0_cf_1": None,
"pm1_0_cf_1_a": None,
"pm1_0_cf_1_b": None,
"pm1_0_um_count": 0.0,
"pm1_0_um_count_a": None,
"pm1_0_um_count_b": None,
"pm2_5": 0.0,
"pm2_5_10minute": None,
"pm2_5_10minute_a": None,
"pm2_5_10minute_b": None,
"pm2_5_1week": None,
"pm2_5_1week_a": None,
"pm2_5_1week_b": None,
"pm2_5_24hour": None,
"pm2_5_24hour_a": None,
"pm2_5_24hour_b": None,
"pm2_5_30minute": None,
"pm2_5_30minute_a": None,
"pm2_5_30minute_b": None,
"pm2_5_60minute": None,
"pm2_5_60minute_a": None,
"pm2_5_60minute_b": None,
"pm2_5_6hour": None,
"pm2_5_6hour_a": None,
"pm2_5_6hour_b": None,
"pm2_5_a": None,
"pm2_5_alt": None,
"pm2_5_alt_a": None,
"pm2_5_alt_b": None,
"pm2_5_atm": None,
"pm2_5_atm_a": None,
"pm2_5_atm_b": None,
"pm2_5_b": None,
"pm2_5_cf_1": None,
"pm2_5_cf_1_a": None,
"pm2_5_cf_1_b": None,
"pm2_5_um_count": 0.0,
"pm2_5_um_count_a": None,
"pm2_5_um_count_b": None,
"pm5_0_um_count": 0.0,
"pm5_0_um_count_a": None,
"pm5_0_um_count_b": None,
"position_rating": None,
"pressure": 1000.74,
"pressure_a": None,
"pressure_b": None,
"primary_id_a": None,
"primary_id_b": None,
"primary_key_a": None,
"primary_key_b": None,
"private": None,
"rssi": -69,
"scattering_coefficient": None,
"scattering_coefficient_a": None,
"scattering_coefficient_b": None,
"secondary_id_a": None,
"secondary_id_b": None,
"secondary_key_a": None,
"secondary_key_b": None,
"stats": None,
"stats_a": None,
"stats_b": None,
"temperature": 82.0,
"temperature_a": None,
"temperature_b": None,
"uptime": 13788,
"visual_range": None,
"visual_range_a": None,
"visual_range_b": None,
"voc": None,
"voc_a": None,
"voc_b": None,
},
},
"api_version": "V1.0.11-0.0.41",
"firmware_default_version": "7.02",
"max_age": 604800,
"data_timestamp_utc": "2022-11-20T23:10:00",
"timestamp_utc": "2022-11-20T23:10:17",
},
}