From 817f0c9aae2b590a069dbc990a90b278e490e065 Mon Sep 17 00:00:00 2001 From: Dave T <17680170+davet2001@users.noreply.github.com> Date: Sat, 1 Jan 2022 20:50:48 +0000 Subject: [PATCH] Refactor enum zwave js tests (#62712) * Use new enums in zwave_js tests * Convert == to is * Refactor some ATTR_ * as well. * Address review comments --- .../components/zwave_js/test_binary_sensor.py | 30 ++++------ tests/components/zwave_js/test_cover.py | 17 +++--- tests/components/zwave_js/test_select.py | 7 ++- tests/components/zwave_js/test_sensor.py | 58 +++++++++---------- 4 files changed, 48 insertions(+), 64 deletions(-) diff --git a/tests/components/zwave_js/test_binary_sensor.py b/tests/components/zwave_js/test_binary_sensor.py index 64c27f276e7..292bbc2da37 100644 --- a/tests/components/zwave_js/test_binary_sensor.py +++ b/tests/components/zwave_js/test_binary_sensor.py @@ -2,19 +2,11 @@ from zwave_js_server.event import Event from zwave_js_server.model.node import Node -from homeassistant.components.binary_sensor import ( - DEVICE_CLASS_DOOR, - DEVICE_CLASS_MOTION, - DEVICE_CLASS_TAMPER, -) -from homeassistant.const import ( - DEVICE_CLASS_BATTERY, - ENTITY_CATEGORY_DIAGNOSTIC, - STATE_OFF, - STATE_ON, -) +from homeassistant.components.binary_sensor import BinarySensorDeviceClass +from homeassistant.const import ATTR_DEVICE_CLASS, STATE_OFF, STATE_ON from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er +from homeassistant.helpers.entity import EntityCategory from .common import ( DISABLED_LEGACY_BINARY_SENSOR, @@ -34,13 +26,13 @@ async def test_low_battery_sensor(hass, multisensor_6, integration): assert state assert state.state == STATE_OFF - assert state.attributes["device_class"] == DEVICE_CLASS_BATTERY + assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.BATTERY registry = er.async_get(hass) entity_entry = registry.async_get(LOW_BATTERY_BINARY_SENSOR) assert entity_entry - assert entity_entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC + assert entity_entry.entity_category is EntityCategory.DIAGNOSTIC async def test_enabled_legacy_sensor(hass, ecolink_door_sensor, integration): @@ -52,7 +44,7 @@ async def test_enabled_legacy_sensor(hass, ecolink_door_sensor, integration): state = hass.states.get(ENABLED_LEGACY_BINARY_SENSOR) assert state assert state.state == STATE_OFF - assert state.attributes.get("device_class") is None + assert state.attributes.get(ATTR_DEVICE_CLASS) is None # Test state updates from value updated event event = Event( @@ -105,19 +97,19 @@ async def test_notification_sensor(hass, multisensor_6, integration): assert state assert state.state == STATE_ON - assert state.attributes["device_class"] == DEVICE_CLASS_MOTION + assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.MOTION state = hass.states.get(TAMPER_SENSOR) assert state assert state.state == STATE_OFF - assert state.attributes["device_class"] == DEVICE_CLASS_TAMPER + assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.TAMPER registry = er.async_get(hass) entity_entry = registry.async_get(TAMPER_SENSOR) assert entity_entry - assert entity_entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC + assert entity_entry.entity_category is EntityCategory.DIAGNOSTIC async def test_notification_off_state( @@ -141,7 +133,7 @@ async def test_notification_off_state( door_states = [ state for state in hass.states.async_all("binary_sensor") - if state.attributes.get("device_class") == DEVICE_CLASS_DOOR + if state.attributes.get(ATTR_DEVICE_CLASS) == BinarySensorDeviceClass.DOOR ] # Only one entity should be created for the Door state notification states. @@ -159,7 +151,7 @@ async def test_property_sensor_door_status(hass, lock_august_pro, integration): state = hass.states.get(PROPERTY_DOOR_STATUS_BINARY_SENSOR) assert state assert state.state == STATE_OFF - assert state.attributes["device_class"] == DEVICE_CLASS_DOOR + assert state.attributes[ATTR_DEVICE_CLASS] == BinarySensorDeviceClass.DOOR # open door event = Event( diff --git a/tests/components/zwave_js/test_cover.py b/tests/components/zwave_js/test_cover.py index d6d3376d0e6..0958e259ab0 100644 --- a/tests/components/zwave_js/test_cover.py +++ b/tests/components/zwave_js/test_cover.py @@ -4,13 +4,10 @@ from zwave_js_server.event import Event from homeassistant.components.cover import ( ATTR_CURRENT_POSITION, ATTR_CURRENT_TILT_POSITION, - DEVICE_CLASS_BLIND, - DEVICE_CLASS_GARAGE, - DEVICE_CLASS_SHUTTER, - DEVICE_CLASS_WINDOW, DOMAIN, SERVICE_CLOSE_COVER, SERVICE_OPEN_COVER, + CoverDeviceClass, ) from homeassistant.const import ( ATTR_DEVICE_CLASS, @@ -35,7 +32,7 @@ async def test_window_cover(hass, client, chain_actuator_zws12, integration): state = hass.states.get(WINDOW_COVER_ENTITY) assert state - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_WINDOW + assert state.attributes[ATTR_DEVICE_CLASS] == CoverDeviceClass.WINDOW assert state.state == "closed" assert state.attributes[ATTR_CURRENT_POSITION] == 0 @@ -315,7 +312,7 @@ async def test_fibaro_FGR222_shutter_cover( """Test tilt function of the Fibaro Shutter devices.""" state = hass.states.get(FIBARO_SHUTTER_COVER_ENTITY) assert state - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_SHUTTER + assert state.attributes[ATTR_DEVICE_CLASS] == CoverDeviceClass.SHUTTER assert state.state == "open" assert state.attributes[ATTR_CURRENT_TILT_POSITION] == 0 @@ -396,7 +393,7 @@ async def test_aeotec_nano_shutter_cover( state = hass.states.get(AEOTEC_SHUTTER_COVER_ENTITY) assert state - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_WINDOW + assert state.attributes[ATTR_DEVICE_CLASS] == CoverDeviceClass.WINDOW assert state.state == "closed" assert state.attributes[ATTR_CURRENT_POSITION] == 0 @@ -602,7 +599,7 @@ async def test_blind_cover(hass, client, iblinds_v2, integration): state = hass.states.get(BLIND_COVER_ENTITY) assert state - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_BLIND + assert state.attributes[ATTR_DEVICE_CLASS] == CoverDeviceClass.BLIND async def test_shutter_cover(hass, client, qubino_shutter, integration): @@ -610,7 +607,7 @@ async def test_shutter_cover(hass, client, qubino_shutter, integration): state = hass.states.get(SHUTTER_COVER_ENTITY) assert state - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_SHUTTER + assert state.attributes[ATTR_DEVICE_CLASS] == CoverDeviceClass.SHUTTER async def test_motor_barrier_cover(hass, client, gdc_zw062, integration): @@ -619,7 +616,7 @@ async def test_motor_barrier_cover(hass, client, gdc_zw062, integration): state = hass.states.get(GDC_COVER_ENTITY) assert state - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_GARAGE + assert state.attributes[ATTR_DEVICE_CLASS] == CoverDeviceClass.GARAGE assert state.state == STATE_CLOSED diff --git a/tests/components/zwave_js/test_select.py b/tests/components/zwave_js/test_select.py index 82f84372ee0..e5b415d1341 100644 --- a/tests/components/zwave_js/test_select.py +++ b/tests/components/zwave_js/test_select.py @@ -5,8 +5,9 @@ from zwave_js_server.event import Event from zwave_js_server.model.node import Node from homeassistant.config_entries import ConfigEntry -from homeassistant.const import ENTITY_CATEGORY_CONFIG, STATE_UNKNOWN +from homeassistant.const import STATE_UNKNOWN from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity import EntityCategory import homeassistant.helpers.entity_registry as er DEFAULT_TONE_SELECT_ENTITY = "select.indoor_siren_6_default_tone_2" @@ -63,7 +64,7 @@ async def test_default_tone_select( entity_entry = entity_registry.async_get(DEFAULT_TONE_SELECT_ENTITY) assert entity_entry - assert entity_entry.entity_category == ENTITY_CATEGORY_CONFIG + assert entity_entry.entity_category is EntityCategory.CONFIG # Test select option with string value await hass.services.async_call( @@ -146,7 +147,7 @@ async def test_protection_select( entity_entry = entity_registry.async_get(PROTECTION_SELECT_ENTITY) assert entity_entry - assert entity_entry.entity_category == ENTITY_CATEGORY_CONFIG + assert entity_entry.entity_category is EntityCategory.CONFIG # Test select option with string value await hass.services.async_call( diff --git a/tests/components/zwave_js/test_sensor.py b/tests/components/zwave_js/test_sensor.py index 74b7d331834..03c0aa07599 100644 --- a/tests/components/zwave_js/test_sensor.py +++ b/tests/components/zwave_js/test_sensor.py @@ -7,8 +7,8 @@ from zwave_js_server.model.node import Node from homeassistant.components.sensor import ( ATTR_STATE_CLASS, - STATE_CLASS_MEASUREMENT, - STATE_CLASS_TOTAL_INCREASING, + SensorDeviceClass, + SensorStateClass, ) from homeassistant.components.zwave_js.const import ( ATTR_METER_TYPE, @@ -21,22 +21,16 @@ from homeassistant.const import ( ATTR_DEVICE_CLASS, ATTR_ENTITY_ID, ATTR_ICON, - DEVICE_CLASS_BATTERY, - DEVICE_CLASS_CURRENT, - DEVICE_CLASS_ENERGY, - DEVICE_CLASS_HUMIDITY, - DEVICE_CLASS_POWER, - DEVICE_CLASS_TEMPERATURE, - DEVICE_CLASS_VOLTAGE, + ATTR_UNIT_OF_MEASUREMENT, ELECTRIC_CURRENT_AMPERE, ELECTRIC_POTENTIAL_VOLT, ENERGY_KILO_WATT_HOUR, - ENTITY_CATEGORY_DIAGNOSTIC, POWER_WATT, STATE_UNAVAILABLE, TEMP_CELSIUS, ) from homeassistant.helpers import entity_registry as er +from homeassistant.helpers.entity import EntityCategory from .common import ( AIR_TEMPERATURE_SENSOR, @@ -59,27 +53,27 @@ async def test_numeric_sensor(hass, multisensor_6, integration): assert state assert state.state == "9.0" - assert state.attributes["unit_of_measurement"] == TEMP_CELSIUS - assert state.attributes["device_class"] == DEVICE_CLASS_TEMPERATURE + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == TEMP_CELSIUS + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.TEMPERATURE state = hass.states.get(BATTERY_SENSOR) assert state assert state.state == "100.0" - assert state.attributes["unit_of_measurement"] == "%" - assert state.attributes["device_class"] == DEVICE_CLASS_BATTERY + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == "%" + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.BATTERY ent_reg = er.async_get(hass) entity_entry = ent_reg.async_get(BATTERY_SENSOR) assert entity_entry - assert entity_entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC + assert entity_entry.entity_category is EntityCategory.DIAGNOSTIC state = hass.states.get(HUMIDITY_SENSOR) assert state assert state.state == "65.0" - assert state.attributes["unit_of_measurement"] == "%" - assert state.attributes["device_class"] == DEVICE_CLASS_HUMIDITY + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == "%" + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.HUMIDITY async def test_energy_sensors(hass, hank_binary_switch, integration): @@ -88,31 +82,31 @@ async def test_energy_sensors(hass, hank_binary_switch, integration): assert state assert state.state == "0.0" - assert state.attributes["unit_of_measurement"] == POWER_WATT - assert state.attributes["device_class"] == DEVICE_CLASS_POWER - assert state.attributes["state_class"] == STATE_CLASS_MEASUREMENT + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == POWER_WATT + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.POWER + assert state.attributes[ATTR_STATE_CLASS] is SensorStateClass.MEASUREMENT state = hass.states.get(ENERGY_SENSOR) assert state assert state.state == "0.16" - assert state.attributes["unit_of_measurement"] == ENERGY_KILO_WATT_HOUR - assert state.attributes["device_class"] == DEVICE_CLASS_ENERGY - assert state.attributes["state_class"] == STATE_CLASS_TOTAL_INCREASING + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == ENERGY_KILO_WATT_HOUR + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.ENERGY + assert state.attributes[ATTR_STATE_CLASS] is SensorStateClass.TOTAL_INCREASING state = hass.states.get(VOLTAGE_SENSOR) assert state assert state.state == "122.96" - assert state.attributes["unit_of_measurement"] == ELECTRIC_POTENTIAL_VOLT - assert state.attributes["device_class"] == DEVICE_CLASS_VOLTAGE + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == ELECTRIC_POTENTIAL_VOLT + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.VOLTAGE state = hass.states.get(CURRENT_SENSOR) assert state assert state.state == "0.0" - assert state.attributes["unit_of_measurement"] == ELECTRIC_CURRENT_AMPERE - assert state.attributes["device_class"] == DEVICE_CLASS_CURRENT + assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == ELECTRIC_CURRENT_AMPERE + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.CURRENT async def test_disabled_notification_sensor(hass, multisensor_6, integration): @@ -168,7 +162,7 @@ async def test_node_status_sensor(hass, client, lock_id_lock_as_id150, integrati entity_entry = ent_reg.async_get(NODE_STATUS_ENTITY) assert not entity_entry.disabled - assert entity_entry.entity_category == ENTITY_CATEGORY_DIAGNOSTIC + assert entity_entry.entity_category is EntityCategory.DIAGNOSTIC assert hass.states.get(NODE_STATUS_ENTITY).state == "alive" # Test transitions work @@ -295,8 +289,8 @@ async def test_meter_attributes( assert state assert state.attributes[ATTR_METER_TYPE] == MeterType.ELECTRIC.value assert state.attributes[ATTR_METER_TYPE_NAME] == MeterType.ELECTRIC.name - assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_ENERGY - assert state.attributes[ATTR_STATE_CLASS] == STATE_CLASS_TOTAL_INCREASING + assert state.attributes[ATTR_DEVICE_CLASS] == SensorDeviceClass.ENERGY + assert state.attributes[ATTR_STATE_CLASS] is SensorStateClass.TOTAL_INCREASING async def test_special_meters(hass, aeon_smart_switch_6_state, client, integration): @@ -358,9 +352,9 @@ async def test_special_meters(hass, aeon_smart_switch_6_state, client, integrati state = hass.states.get("sensor.smart_switch_6_electric_consumed_kvah_10") assert state assert ATTR_DEVICE_CLASS not in state.attributes - assert state.attributes[ATTR_STATE_CLASS] == STATE_CLASS_TOTAL_INCREASING + assert state.attributes[ATTR_STATE_CLASS] is SensorStateClass.TOTAL_INCREASING state = hass.states.get("sensor.smart_switch_6_electric_consumed_kva_reactive_11") assert state assert ATTR_DEVICE_CLASS not in state.attributes - assert state.attributes[ATTR_STATE_CLASS] == STATE_CLASS_MEASUREMENT + assert state.attributes[ATTR_STATE_CLASS] is SensorStateClass.MEASUREMENT