Files
home-assistant-envertech/tests/test_sensor.py
Adrian Rumpold 5180992e98
Some checks failed
HACS Validation / validate (push) Failing after 38s
Validate with hassfest / validate (push) Failing after 41s
Project skeleton
2025-04-07 11:09:27 +02:00

73 lines
2.5 KiB
Python

"""Tests for the PV Microinverter sensor platform."""
from datetime import datetime
from unittest.mock import MagicMock
import pytest
from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass
from homeassistant.const import UnitOfEnergy, UnitOfPower
from pv_microinverter.const import PVMicroinverterData
from pv_microinverter.coordinator import (
PVMicroinverterDataUpdateCoordinator,
)
from pv_microinverter.sensor import PVMicroinverterSensor
@pytest.mark.asyncio
async def test_sensor_initialization():
"""Test sensor initialization."""
# Mock data and coordinator
mock_data = PVMicroinverterData(
current_power=500.0,
today_energy=2.5,
lifetime_energy=150.0,
last_updated=datetime.now().isoformat(),
)
mock_coordinator = MagicMock(spec=PVMicroinverterDataUpdateCoordinator)
mock_coordinator.data = mock_data
mock_coordinator.last_update_success = True
# Test current power sensor
current_power_sensor = PVMicroinverterSensor(
coordinator=mock_coordinator,
system_id="test_system",
sensor_type="current_power",
sensor_info={
"name": "Current Power",
"icon": "mdi:solar-power",
"unit": "W",
"device_class": "power",
"state_class": "measurement",
},
)
# Verify sensor properties
assert current_power_sensor.name == "Current Power"
assert current_power_sensor.native_unit_of_measurement == UnitOfPower.WATT
assert current_power_sensor.device_class == SensorDeviceClass.POWER
assert current_power_sensor.state_class == SensorStateClass.MEASUREMENT
assert current_power_sensor.native_value == 500.0
# Test today's energy sensor
today_energy_sensor = PVMicroinverterSensor(
coordinator=mock_coordinator,
system_id="test_system",
sensor_type="today_energy",
sensor_info={
"name": "Today's Energy",
"icon": "mdi:solar-power",
"unit": "kWh",
"device_class": "energy",
"state_class": "total_increasing",
},
)
# Verify sensor properties
assert today_energy_sensor.name == "Today's Energy"
assert today_energy_sensor.native_unit_of_measurement == UnitOfEnergy.KILO_WATT_HOUR
assert today_energy_sensor.device_class == SensorDeviceClass.ENERGY
assert today_energy_sensor.state_class == SensorStateClass.TOTAL_INCREASING
assert today_energy_sensor.native_value == 2.5