Project skeleton
Some checks failed
HACS Validation / validate (push) Failing after 38s
Validate with hassfest / validate (push) Failing after 41s

This commit is contained in:
Adrian Rumpold
2025-04-07 10:17:40 +02:00
commit 5180992e98
23 changed files with 3302 additions and 0 deletions

72
tests/test_sensor.py Normal file
View File

@@ -0,0 +1,72 @@
"""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