mirror of
https://github.com/home-assistant/core.git
synced 2025-11-09 19:09:32 +00:00
Bump airOS to 0.5.1 (#151458)
This commit is contained in:
@@ -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],
|
||||||
|
|||||||
@@ -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, ...] = (
|
||||||
|
|||||||
@@ -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],
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
2
requirements_all.txt
generated
@@ -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
|
||||||
|
|||||||
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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."""
|
||||||
|
|||||||
Reference in New Issue
Block a user