Bump airOS to 0.5.1 (#151458)

This commit is contained in:
Tom
2025-09-01 10:40:09 +02:00
committed by GitHub
parent 671c4e1eab
commit bdfff6df2d
10 changed files with 23 additions and 23 deletions

View File

@@ -2,7 +2,7 @@
from __future__ import annotations from __future__ import annotations
from airos.airos8 import AirOS from airos.airos8 import AirOS8
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME, Platform from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME, Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@@ -23,7 +23,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AirOSConfigEntry) -> boo
# with no option in the web UI to change or upload a custom certificate. # with no option in the web UI to change or upload a custom certificate.
session = async_get_clientsession(hass, verify_ssl=False) session = async_get_clientsession(hass, verify_ssl=False)
airos_device = AirOS( airos_device = AirOS8(
host=entry.data[CONF_HOST], host=entry.data[CONF_HOST],
username=entry.data[CONF_USERNAME], username=entry.data[CONF_USERNAME],
password=entry.data[CONF_PASSWORD], password=entry.data[CONF_PASSWORD],

View File

@@ -15,7 +15,7 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .coordinator import AirOSConfigEntry, AirOSData, AirOSDataUpdateCoordinator from .coordinator import AirOS8Data, AirOSConfigEntry, AirOSDataUpdateCoordinator
from .entity import AirOSEntity from .entity import AirOSEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@@ -27,7 +27,7 @@ PARALLEL_UPDATES = 0
class AirOSBinarySensorEntityDescription(BinarySensorEntityDescription): class AirOSBinarySensorEntityDescription(BinarySensorEntityDescription):
"""Describe an AirOS binary sensor.""" """Describe an AirOS binary sensor."""
value_fn: Callable[[AirOSData], bool] value_fn: Callable[[AirOS8Data], bool]
BINARY_SENSORS: tuple[AirOSBinarySensorEntityDescription, ...] = ( BINARY_SENSORS: tuple[AirOSBinarySensorEntityDescription, ...] = (

View File

@@ -19,7 +19,7 @@ from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN from .const import DOMAIN
from .coordinator import AirOS from .coordinator import AirOS8
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@@ -48,7 +48,7 @@ class AirOSConfigFlow(ConfigFlow, domain=DOMAIN):
# with no option in the web UI to change or upload a custom certificate. # with no option in the web UI to change or upload a custom certificate.
session = async_get_clientsession(self.hass, verify_ssl=False) session = async_get_clientsession(self.hass, verify_ssl=False)
airos_device = AirOS( airos_device = AirOS8(
host=user_input[CONF_HOST], host=user_input[CONF_HOST],
username=user_input[CONF_USERNAME], username=user_input[CONF_USERNAME],
password=user_input[CONF_PASSWORD], password=user_input[CONF_PASSWORD],

View File

@@ -4,7 +4,7 @@ from __future__ import annotations
import logging import logging
from airos.airos8 import AirOS, AirOSData from airos.airos8 import AirOS8, AirOS8Data
from airos.exceptions import ( from airos.exceptions import (
AirOSConnectionAuthenticationError, AirOSConnectionAuthenticationError,
AirOSConnectionSetupError, AirOSConnectionSetupError,
@@ -24,13 +24,13 @@ _LOGGER = logging.getLogger(__name__)
type AirOSConfigEntry = ConfigEntry[AirOSDataUpdateCoordinator] type AirOSConfigEntry = ConfigEntry[AirOSDataUpdateCoordinator]
class AirOSDataUpdateCoordinator(DataUpdateCoordinator[AirOSData]): class AirOSDataUpdateCoordinator(DataUpdateCoordinator[AirOS8Data]):
"""Class to manage fetching AirOS data from single endpoint.""" """Class to manage fetching AirOS data from single endpoint."""
config_entry: AirOSConfigEntry config_entry: AirOSConfigEntry
def __init__( def __init__(
self, hass: HomeAssistant, config_entry: AirOSConfigEntry, airos_device: AirOS self, hass: HomeAssistant, config_entry: AirOSConfigEntry, airos_device: AirOS8
) -> None: ) -> None:
"""Initialize the coordinator.""" """Initialize the coordinator."""
self.airos_device = airos_device self.airos_device = airos_device
@@ -42,7 +42,7 @@ class AirOSDataUpdateCoordinator(DataUpdateCoordinator[AirOSData]):
update_interval=SCAN_INTERVAL, update_interval=SCAN_INTERVAL,
) )
async def _async_update_data(self) -> AirOSData: async def _async_update_data(self) -> AirOS8Data:
"""Fetch data from AirOS.""" """Fetch data from AirOS."""
try: try:
await self.airos_device.login() await self.airos_device.login()

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/airos", "documentation": "https://www.home-assistant.io/integrations/airos",
"iot_class": "local_polling", "iot_class": "local_polling",
"quality_scale": "bronze", "quality_scale": "bronze",
"requirements": ["airos==0.4.4"] "requirements": ["airos==0.5.1"]
} }

View File

@@ -26,7 +26,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from .coordinator import AirOSConfigEntry, AirOSData, AirOSDataUpdateCoordinator from .coordinator import AirOS8Data, AirOSConfigEntry, AirOSDataUpdateCoordinator
from .entity import AirOSEntity from .entity import AirOSEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@@ -42,7 +42,7 @@ PARALLEL_UPDATES = 0
class AirOSSensorEntityDescription(SensorEntityDescription): class AirOSSensorEntityDescription(SensorEntityDescription):
"""Describe an AirOS sensor.""" """Describe an AirOS sensor."""
value_fn: Callable[[AirOSData], StateType] value_fn: Callable[[AirOS8Data], StateType]
SENSORS: tuple[AirOSSensorEntityDescription, ...] = ( SENSORS: tuple[AirOSSensorEntityDescription, ...] = (

2
requirements_all.txt generated
View File

@@ -453,7 +453,7 @@ airgradient==0.9.2
airly==1.1.0 airly==1.1.0
# homeassistant.components.airos # homeassistant.components.airos
airos==0.4.4 airos==0.5.1
# homeassistant.components.airthings_ble # homeassistant.components.airthings_ble
airthings-ble==0.9.2 airthings-ble==0.9.2

View File

@@ -435,7 +435,7 @@ airgradient==0.9.2
airly==1.1.0 airly==1.1.0
# homeassistant.components.airos # homeassistant.components.airos
airos==0.4.4 airos==0.5.1
# homeassistant.components.airthings_ble # homeassistant.components.airthings_ble
airthings-ble==0.9.2 airthings-ble==0.9.2

View File

@@ -3,7 +3,7 @@
from collections.abc import Generator from collections.abc import Generator
from unittest.mock import AsyncMock, patch from unittest.mock import AsyncMock, patch
from airos.airos8 import AirOSData from airos.airos8 import AirOS8Data
import pytest import pytest
from homeassistant.components.airos.const import DOMAIN from homeassistant.components.airos.const import DOMAIN
@@ -16,7 +16,7 @@ from tests.common import MockConfigEntry, load_json_object_fixture
def ap_fixture(): def ap_fixture():
"""Load fixture data for AP mode.""" """Load fixture data for AP mode."""
json_data = load_json_object_fixture("airos_loco5ac_ap-ptp.json", DOMAIN) json_data = load_json_object_fixture("airos_loco5ac_ap-ptp.json", DOMAIN)
return AirOSData.from_dict(json_data) return AirOS8Data.from_dict(json_data)
@pytest.fixture @pytest.fixture
@@ -30,15 +30,15 @@ def mock_setup_entry() -> Generator[AsyncMock]:
@pytest.fixture @pytest.fixture
def mock_airos_client( def mock_airos_client(
request: pytest.FixtureRequest, ap_fixture: AirOSData request: pytest.FixtureRequest, ap_fixture: AirOS8Data
) -> Generator[AsyncMock]: ) -> Generator[AsyncMock]:
"""Fixture to mock the AirOS API client.""" """Fixture to mock the AirOS API client."""
with ( with (
patch( patch(
"homeassistant.components.airos.config_flow.AirOS", autospec=True "homeassistant.components.airos.config_flow.AirOS8", autospec=True
) as mock_airos, ) as mock_airos,
patch("homeassistant.components.airos.coordinator.AirOS", new=mock_airos), patch("homeassistant.components.airos.coordinator.AirOS8", new=mock_airos),
patch("homeassistant.components.airos.AirOS", new=mock_airos), patch("homeassistant.components.airos.AirOS8", new=mock_airos),
): ):
client = mock_airos.return_value client = mock_airos.return_value
client.status.return_value = ap_fixture client.status.return_value = ap_fixture

View File

@@ -4,7 +4,7 @@ from unittest.mock import MagicMock
from syrupy.assertion import SnapshotAssertion from syrupy.assertion import SnapshotAssertion
from homeassistant.components.airos.coordinator import AirOSData from homeassistant.components.airos.coordinator import AirOS8Data
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from . import setup_integration from . import setup_integration
@@ -19,7 +19,7 @@ async def test_diagnostics(
hass_client: ClientSessionGenerator, hass_client: ClientSessionGenerator,
mock_airos_client: MagicMock, mock_airos_client: MagicMock,
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
ap_fixture: AirOSData, ap_fixture: AirOS8Data,
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
) -> None: ) -> None:
"""Test diagnostics.""" """Test diagnostics."""