Refactor enum zwave js tests (#62712)

* Use new enums in zwave_js tests

* Convert == to is

* Refactor some ATTR_ * as well.

* Address review comments
This commit is contained in:
Dave T 2022-01-01 20:50:48 +00:00 committed by GitHub
parent c7b991f56b
commit 817f0c9aae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 64 deletions

View file

@ -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(

View file

@ -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

View file

@ -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(

View file

@ -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