Add airgradient param fixture (#120241)

This commit is contained in:
Joost Lekkerkerker 2024-06-23 17:48:54 +02:00 committed by GitHub
parent 9769dec44b
commit 080d90b63a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 334 additions and 113 deletions

View File

@ -39,7 +39,7 @@ def mock_airgradient_client() -> Generator[AsyncMock]:
client = mock_client.return_value client = mock_client.return_value
client.host = "10.0.0.131" client.host = "10.0.0.131"
client.get_current_measures.return_value = Measures.from_json( client.get_current_measures.return_value = Measures.from_json(
load_fixture("current_measures.json", DOMAIN) load_fixture("current_measures_indoor.json", DOMAIN)
) )
client.get_config.return_value = Config.from_json( client.get_config.return_value = Config.from_json(
load_fixture("get_config_local.json", DOMAIN) load_fixture("get_config_local.json", DOMAIN)
@ -47,10 +47,21 @@ def mock_airgradient_client() -> Generator[AsyncMock]:
yield client yield client
@pytest.fixture(params=["indoor", "outdoor"])
def airgradient_devices(
mock_airgradient_client: AsyncMock, request: pytest.FixtureRequest
) -> Generator[AsyncMock]:
"""Return a list of AirGradient devices."""
mock_airgradient_client.get_current_measures.return_value = Measures.from_json(
load_fixture(f"current_measures_{request.param}.json", DOMAIN)
)
return mock_airgradient_client
@pytest.fixture @pytest.fixture
def mock_new_airgradient_client( def mock_new_airgradient_client(
mock_airgradient_client: AsyncMock, mock_airgradient_client: AsyncMock,
) -> Generator[AsyncMock]: ) -> AsyncMock:
"""Mock a new AirGradient client.""" """Mock a new AirGradient client."""
mock_airgradient_client.get_config.return_value = Config.from_json( mock_airgradient_client.get_config.return_value = Config.from_json(
load_fixture("get_config.json", DOMAIN) load_fixture("get_config.json", DOMAIN)
@ -61,7 +72,7 @@ def mock_new_airgradient_client(
@pytest.fixture @pytest.fixture
def mock_cloud_airgradient_client( def mock_cloud_airgradient_client(
mock_airgradient_client: AsyncMock, mock_airgradient_client: AsyncMock,
) -> Generator[AsyncMock]: ) -> AsyncMock:
"""Mock a cloud AirGradient client.""" """Mock a cloud AirGradient client."""
mock_airgradient_client.get_config.return_value = Config.from_json( mock_airgradient_client.get_config.return_value = Config.from_json(
load_fixture("get_config_cloud.json", DOMAIN) load_fixture("get_config_cloud.json", DOMAIN)

View File

@ -1,5 +1,5 @@
# serializer version: 1 # serializer version: 1
# name: test_device_info # name: test_device_info[indoor]
DeviceRegistryEntrySnapshot({ DeviceRegistryEntrySnapshot({
'area_id': None, 'area_id': None,
'config_entries': <ANY>, 'config_entries': <ANY>,
@ -29,3 +29,33 @@
'via_device_id': None, 'via_device_id': None,
}) })
# --- # ---
# name: test_device_info[outdoor]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'airgradient',
'84fce612f5b8',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'AirGradient',
'model': 'O-1PPT',
'name': 'Airgradient',
'name_by_user': None,
'serial_number': '84fce60bec38',
'suggested_area': None,
'sw_version': '3.1.1',
'via_device_id': None,
})
# ---

View File

@ -1,5 +1,5 @@
# serializer version: 1 # serializer version: 1
# name: test_all_entities[select.airgradient_configuration_source-entry] # name: test_all_entities[indoor][select.airgradient_configuration_source-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -37,7 +37,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities[select.airgradient_configuration_source-state] # name: test_all_entities[indoor][select.airgradient_configuration_source-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Configuration source', 'friendly_name': 'Airgradient Configuration source',
@ -54,7 +54,7 @@
'state': 'local', 'state': 'local',
}) })
# --- # ---
# name: test_all_entities[select.airgradient_display_pm_standard-entry] # name: test_all_entities[indoor][select.airgradient_display_pm_standard-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -92,7 +92,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities[select.airgradient_display_pm_standard-state] # name: test_all_entities[indoor][select.airgradient_display_pm_standard-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Display PM standard', 'friendly_name': 'Airgradient Display PM standard',
@ -109,7 +109,7 @@
'state': 'ugm3', 'state': 'ugm3',
}) })
# --- # ---
# name: test_all_entities[select.airgradient_display_temperature_unit-entry] # name: test_all_entities[indoor][select.airgradient_display_temperature_unit-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -147,7 +147,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities[select.airgradient_display_temperature_unit-state] # name: test_all_entities[indoor][select.airgradient_display_temperature_unit-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Display temperature unit', 'friendly_name': 'Airgradient Display temperature unit',
@ -164,7 +164,7 @@
'state': 'c', 'state': 'c',
}) })
# --- # ---
# name: test_all_entities[select.airgradient_led_bar_mode-entry] # name: test_all_entities[indoor][select.airgradient_led_bar_mode-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -203,7 +203,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities[select.airgradient_led_bar_mode-state] # name: test_all_entities[indoor][select.airgradient_led_bar_mode-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient LED bar mode', 'friendly_name': 'Airgradient LED bar mode',
@ -221,7 +221,7 @@
'state': 'co2', 'state': 'co2',
}) })
# --- # ---
# name: test_all_entities_outdoor[select.airgradient_configuration_source-entry] # name: test_all_entities[outdoor][select.airgradient_configuration_source-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -259,7 +259,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities_outdoor[select.airgradient_configuration_source-state] # name: test_all_entities[outdoor][select.airgradient_configuration_source-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Configuration source', 'friendly_name': 'Airgradient Configuration source',

View File

@ -1,5 +1,5 @@
# serializer version: 1 # serializer version: 1
# name: test_all_entities[sensor.airgradient_carbon_dioxide-entry] # name: test_all_entities[indoor][sensor.airgradient_carbon_dioxide-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -34,7 +34,7 @@
'unit_of_measurement': 'ppm', 'unit_of_measurement': 'ppm',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_carbon_dioxide-state] # name: test_all_entities[indoor][sensor.airgradient_carbon_dioxide-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'carbon_dioxide', 'device_class': 'carbon_dioxide',
@ -50,7 +50,7 @@
'state': '778', 'state': '778',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_humidity-entry] # name: test_all_entities[indoor][sensor.airgradient_humidity-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -85,7 +85,7 @@
'unit_of_measurement': '%', 'unit_of_measurement': '%',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_humidity-state] # name: test_all_entities[indoor][sensor.airgradient_humidity-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'humidity', 'device_class': 'humidity',
@ -101,7 +101,7 @@
'state': '48.0', 'state': '48.0',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_nox_index-entry] # name: test_all_entities[indoor][sensor.airgradient_nox_index-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -136,7 +136,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_nox_index-state] # name: test_all_entities[indoor][sensor.airgradient_nox_index-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient NOx index', 'friendly_name': 'Airgradient NOx index',
@ -150,7 +150,7 @@
'state': '1', 'state': '1',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm0_3-entry] # name: test_all_entities[indoor][sensor.airgradient_pm0_3-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -185,7 +185,7 @@
'unit_of_measurement': 'particles/dL', 'unit_of_measurement': 'particles/dL',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm0_3-state] # name: test_all_entities[indoor][sensor.airgradient_pm0_3-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient PM0.3', 'friendly_name': 'Airgradient PM0.3',
@ -200,57 +200,7 @@
'state': '270', 'state': '270',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm0_3_count-entry] # name: test_all_entities[indoor][sensor.airgradient_pm1-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.airgradient_pm0_3_count',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'PM0.3 count',
'platform': 'airgradient',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'pm003_count',
'unique_id': '84fce612f5b8-pm003',
'unit_of_measurement': 'particles/dL',
})
# ---
# name: test_all_entities[sensor.airgradient_pm0_3_count-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient PM0.3 count',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'particles/dL',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_pm0_3_count',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '270',
})
# ---
# name: test_all_entities[sensor.airgradient_pm1-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -285,7 +235,7 @@
'unit_of_measurement': 'µg/m³', 'unit_of_measurement': 'µg/m³',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm1-state] # name: test_all_entities[indoor][sensor.airgradient_pm1-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'pm1', 'device_class': 'pm1',
@ -301,7 +251,7 @@
'state': '22', 'state': '22',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm10-entry] # name: test_all_entities[indoor][sensor.airgradient_pm10-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -336,7 +286,7 @@
'unit_of_measurement': 'µg/m³', 'unit_of_measurement': 'µg/m³',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm10-state] # name: test_all_entities[indoor][sensor.airgradient_pm10-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'pm10', 'device_class': 'pm10',
@ -352,7 +302,7 @@
'state': '41', 'state': '41',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm2_5-entry] # name: test_all_entities[indoor][sensor.airgradient_pm2_5-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -387,7 +337,7 @@
'unit_of_measurement': 'µg/m³', 'unit_of_measurement': 'µg/m³',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_pm2_5-state] # name: test_all_entities[indoor][sensor.airgradient_pm2_5-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'pm25', 'device_class': 'pm25',
@ -403,7 +353,7 @@
'state': '34', 'state': '34',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_raw_nox-entry] # name: test_all_entities[indoor][sensor.airgradient_raw_nox-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -438,7 +388,7 @@
'unit_of_measurement': 'ticks', 'unit_of_measurement': 'ticks',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_raw_nox-state] # name: test_all_entities[indoor][sensor.airgradient_raw_nox-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Raw NOx', 'friendly_name': 'Airgradient Raw NOx',
@ -453,7 +403,7 @@
'state': '16931', 'state': '16931',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_raw_voc-entry] # name: test_all_entities[indoor][sensor.airgradient_raw_voc-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -488,7 +438,7 @@
'unit_of_measurement': 'ticks', 'unit_of_measurement': 'ticks',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_raw_voc-state] # name: test_all_entities[indoor][sensor.airgradient_raw_voc-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Raw VOC', 'friendly_name': 'Airgradient Raw VOC',
@ -503,7 +453,7 @@
'state': '31792', 'state': '31792',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_signal_strength-entry] # name: test_all_entities[indoor][sensor.airgradient_signal_strength-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -538,7 +488,7 @@
'unit_of_measurement': 'dBm', 'unit_of_measurement': 'dBm',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_signal_strength-state] # name: test_all_entities[indoor][sensor.airgradient_signal_strength-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'signal_strength', 'device_class': 'signal_strength',
@ -554,7 +504,7 @@
'state': '-52', 'state': '-52',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_temperature-entry] # name: test_all_entities[indoor][sensor.airgradient_temperature-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -589,7 +539,7 @@
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>, 'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_temperature-state] # name: test_all_entities[indoor][sensor.airgradient_temperature-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'temperature', 'device_class': 'temperature',
@ -605,7 +555,7 @@
'state': '27.96', 'state': '27.96',
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_voc_index-entry] # name: test_all_entities[indoor][sensor.airgradient_voc_index-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
}), }),
@ -640,7 +590,7 @@
'unit_of_measurement': None, 'unit_of_measurement': None,
}) })
# --- # ---
# name: test_all_entities[sensor.airgradient_voc_index-state] # name: test_all_entities[indoor][sensor.airgradient_voc_index-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient VOC index', 'friendly_name': 'Airgradient VOC index',
@ -654,3 +604,252 @@
'state': '99', 'state': '99',
}) })
# --- # ---
# name: test_all_entities[outdoor][sensor.airgradient_nox_index-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.airgradient_nox_index',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'NOx index',
'platform': 'airgradient',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'nitrogen_index',
'unique_id': '84fce612f5b8-nitrogen_index',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_nox_index-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient NOx index',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_nox_index',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_raw_nox-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.airgradient_raw_nox',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Raw NOx',
'platform': 'airgradient',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'raw_nitrogen',
'unique_id': '84fce612f5b8-nox_raw',
'unit_of_measurement': 'ticks',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_raw_nox-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Raw NOx',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'ticks',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_raw_nox',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '16359',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_raw_voc-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.airgradient_raw_voc',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Raw VOC',
'platform': 'airgradient',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'raw_total_volatile_organic_component',
'unique_id': '84fce612f5b8-tvoc_raw',
'unit_of_measurement': 'ticks',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_raw_voc-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient Raw VOC',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'ticks',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_raw_voc',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '30802',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_signal_strength-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.airgradient_signal_strength',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
'original_icon': None,
'original_name': 'Signal strength',
'platform': 'airgradient',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '84fce612f5b8-signal_strength',
'unit_of_measurement': 'dBm',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_signal_strength-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'signal_strength',
'friendly_name': 'Airgradient Signal strength',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'dBm',
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_signal_strength',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '-64',
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_voc_index-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.airgradient_voc_index',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'VOC index',
'platform': 'airgradient',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'total_volatile_organic_component_index',
'unique_id': '84fce612f5b8-tvoc',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[outdoor][sensor.airgradient_voc_index-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Airgradient VOC index',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'context': <ANY>,
'entity_id': 'sensor.airgradient_voc_index',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '49',
})
# ---

View File

@ -16,7 +16,7 @@ from tests.common import MockConfigEntry
async def test_device_info( async def test_device_info(
hass: HomeAssistant, hass: HomeAssistant,
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
mock_airgradient_client: AsyncMock, airgradient_devices: AsyncMock,
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
device_registry: dr.DeviceRegistry, device_registry: dr.DeviceRegistry,
) -> None: ) -> None:

View File

@ -2,11 +2,10 @@
from unittest.mock import AsyncMock, patch from unittest.mock import AsyncMock, patch
from airgradient import ConfigurationControl, Measures from airgradient import ConfigurationControl
import pytest import pytest
from syrupy import SnapshotAssertion from syrupy import SnapshotAssertion
from homeassistant.components.airgradient import DOMAIN
from homeassistant.components.select import ( from homeassistant.components.select import (
DOMAIN as SELECT_DOMAIN, DOMAIN as SELECT_DOMAIN,
SERVICE_SELECT_OPTION, SERVICE_SELECT_OPTION,
@ -18,14 +17,14 @@ from homeassistant.helpers import entity_registry as er
from . import setup_integration from . import setup_integration
from tests.common import MockConfigEntry, load_fixture, snapshot_platform from tests.common import MockConfigEntry, snapshot_platform
@pytest.mark.usefixtures("entity_registry_enabled_by_default") @pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_all_entities( async def test_all_entities(
hass: HomeAssistant, hass: HomeAssistant,
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
mock_airgradient_client: AsyncMock, airgradient_devices: AsyncMock,
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
entity_registry: er.EntityRegistry, entity_registry: er.EntityRegistry,
) -> None: ) -> None:
@ -36,24 +35,6 @@ async def test_all_entities(
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id) await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_all_entities_outdoor(
hass: HomeAssistant,
snapshot: SnapshotAssertion,
mock_airgradient_client: AsyncMock,
mock_config_entry: MockConfigEntry,
entity_registry: er.EntityRegistry,
) -> None:
"""Test all entities."""
mock_airgradient_client.get_current_measures.return_value = Measures.from_json(
load_fixture("current_measures_outdoor.json", DOMAIN)
)
with patch("homeassistant.components.airgradient.PLATFORMS", [Platform.SELECT]):
await setup_integration(hass, mock_config_entry)
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
async def test_setting_value( async def test_setting_value(
hass: HomeAssistant, hass: HomeAssistant,
mock_airgradient_client: AsyncMock, mock_airgradient_client: AsyncMock,

View File

@ -27,7 +27,7 @@ from tests.common import (
async def test_all_entities( async def test_all_entities(
hass: HomeAssistant, hass: HomeAssistant,
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
mock_airgradient_client: AsyncMock, airgradient_devices: AsyncMock,
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
entity_registry: er.EntityRegistry, entity_registry: er.EntityRegistry,
) -> None: ) -> None:
@ -53,7 +53,7 @@ async def test_create_entities(
assert len(hass.states.async_all()) == 0 assert len(hass.states.async_all()) == 0
mock_airgradient_client.get_current_measures.return_value = Measures.from_json( mock_airgradient_client.get_current_measures.return_value = Measures.from_json(
load_fixture("current_measures.json", DOMAIN) load_fixture("current_measures_indoor.json", DOMAIN)
) )
freezer.tick(timedelta(minutes=1)) freezer.tick(timedelta(minutes=1))
async_fire_time_changed(hass) async_fire_time_changed(hass)