Project skeleton
This commit is contained in:
72
tests/test_sensor.py
Normal file
72
tests/test_sensor.py
Normal 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
|
||||
Reference in New Issue
Block a user