diff --git a/homeassistant/components/fluss/button.py b/homeassistant/components/fluss/button.py index 1a6332625902..e7fe2a4cc4e6 100644 --- a/homeassistant/components/fluss/button.py +++ b/homeassistant/components/fluss/button.py @@ -16,7 +16,7 @@ async def async_setup_entry( hass: HomeAssistant, entry: FlussConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, -) -> bool: +) -> None: """Set up the Fluss Devices, filtering out any invalid payloads.""" coordinator = entry.runtime_data devices = coordinator.data @@ -25,7 +25,6 @@ async def async_setup_entry( FlussButton(coordinator, device_id, device) for device_id, device in devices.items() ) - return True class FlussButton(FlussEntity, ButtonEntity): diff --git a/homeassistant/components/fluss/config_flow.py b/homeassistant/components/fluss/config_flow.py index 074180b78ee4..fcd0dae6c2f4 100644 --- a/homeassistant/components/fluss/config_flow.py +++ b/homeassistant/components/fluss/config_flow.py @@ -41,7 +41,7 @@ class FlussConfigFlow(ConfigFlow, domain=DOMAIN): errors["base"] = "cannot_connect" except FlussApiClientAuthenticationError: errors["base"] = "invalid_auth" - except Exception: + except Exception: # noqa: BLE001 LOGGER.exception("Unexpected exception occurred") errors["base"] = "unknown" if not errors: diff --git a/homeassistant/components/fluss/coordinator.py b/homeassistant/components/fluss/coordinator.py index 38782362f18f..b8ea59bbb6b0 100644 --- a/homeassistant/components/fluss/coordinator.py +++ b/homeassistant/components/fluss/coordinator.py @@ -7,16 +7,15 @@ from typing import Any from fluss_api import ( FlussApiClient, FlussApiClientAuthenticationError, - FlussApiClientCommunicationError, FlussApiClientError, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant +from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.util import slugify -from homeassistant.exceptions import ConfigEntryAuthFailed from .const import LOGGER, UPDATE_INTERVAL_TIMEDELTA diff --git a/homeassistant/components/fluss/manifest.json b/homeassistant/components/fluss/manifest.json index 4b52abcfe3cd..252e426d5fe9 100644 --- a/homeassistant/components/fluss/manifest.json +++ b/homeassistant/components/fluss/manifest.json @@ -6,5 +6,6 @@ "documentation": "https://www.home-assistant.io/integrations/fluss", "iot_class": "cloud_polling", "loggers": ["fluss-api"], + "quality_scale": "bronze", "requirements": ["fluss-api==0.1.9.17"] } diff --git a/homeassistant/components/fluss/quality_scale.yaml b/homeassistant/components/fluss/quality_scale.yaml index 83f75db2d7ab..c2b4a85a6887 100644 --- a/homeassistant/components/fluss/quality_scale.yaml +++ b/homeassistant/components/fluss/quality_scale.yaml @@ -1,6 +1,9 @@ rules: # Bronze - action-setup: exempt + action-setup: + status: exempt + comment: | + No actions present appropriate-polling: done brands: done common-modules: done @@ -37,20 +40,23 @@ rules: status: exempt comment: | Not needed - discovery: done + discovery: todo stale-devices: todo diagnostics: todo exception-translations: todo - icon-translations: exempt + icon-translations: + status: exempt + comment: | + No icons used reconfiguration-flow: todo dynamic-devices: todo - discovery-update-info: exempt - repair-issues: exempt + discovery-update-info: todo + repair-issues: + status: exempt + comment: | + No issues to repair docs-use-cases: done - docs-supported-devices: - status: exempt - comment: | - There is only one device + docs-supported-devices: todo docs-supported-functions: done docs-data-update: todo docs-known-limitations: done @@ -60,4 +66,4 @@ rules: # Platinum async-dependency: done inject-websession: done - strict-typing: todo \ No newline at end of file + strict-typing: todo diff --git a/homeassistant/generated/integrations.json b/homeassistant/generated/integrations.json index 06bad5aa8c2f..61e00583bc05 100644 --- a/homeassistant/generated/integrations.json +++ b/homeassistant/generated/integrations.json @@ -2063,7 +2063,7 @@ "iot_class": "cloud_polling" }, "fluss": { - "name": "Fluss +", + "name": "Fluss+", "integration_type": "hub", "config_flow": true, "iot_class": "cloud_polling" diff --git a/tests/components/fluss/__init__.py b/tests/components/fluss/__init__.py index cf9f4582236c..471d0b5c1d0a 100644 --- a/tests/components/fluss/__init__.py +++ b/tests/components/fluss/__init__.py @@ -20,7 +20,7 @@ from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady @pytest.mark.parametrize( - "side_effect, expected_exception", + ("side_effect", "expected_exception"), [ (FlussApiClientAuthenticationError, ConfigEntryAuthFailed), (FlussApiClientCommunicationError, ConfigEntryNotReady), @@ -70,7 +70,9 @@ async def test_async_unload_entry( assert mock_config_entry.state is ConfigEntryState.LOADED # Test unloading - with patch("homeassistant.components.fluss.async_unload_platforms", return_value=True): + with patch( + "homeassistant.components.fluss.async_unload_platforms", return_value=True + ): assert await hass.config_entries.async_unload(mock_config_entry.entry_id) assert mock_config_entry.state is ConfigEntryState.NOT_LOADED @@ -87,4 +89,4 @@ async def test_platforms_forwarded( assert mock_config_entry.state is ConfigEntryState.LOADED hass.config_entries.async_forward_entry_setups.assert_called_with( mock_config_entry, [Platform.BUTTON] - ) \ No newline at end of file + ) diff --git a/tests/components/fluss/conftest.py b/tests/components/fluss/conftest.py index 156f513f1d79..7d3ceff61c59 100644 --- a/tests/components/fluss/conftest.py +++ b/tests/components/fluss/conftest.py @@ -4,7 +4,6 @@ from __future__ import annotations from unittest.mock import AsyncMock, patch -from fluss_api import FlussApiClient import pytest from homeassistant.components.fluss.const import DOMAIN diff --git a/tests/components/fluss/test_button.py b/tests/components/fluss/test_button.py index f8472abae17d..789fc8ef8664 100644 --- a/tests/components/fluss/test_button.py +++ b/tests/components/fluss/test_button.py @@ -18,7 +18,6 @@ from homeassistant.helpers import device_registry as dr, entity_registry as er from tests.common import MockConfigEntry, snapshot_platform -@pytest.mark.asyncio async def test_async_setup_entry_multiple_devices( hass: HomeAssistant, mock_api_client_multiple_devices: AsyncMock, @@ -36,7 +35,6 @@ async def test_async_setup_entry_multiple_devices( await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id) -@pytest.mark.asyncio async def test_button_press_success( hass: HomeAssistant, mock_api_client: FlussApiClient, @@ -66,7 +64,6 @@ async def test_button_press_success( mock_api_client.async_trigger_device.assert_called_once_with("1") -@pytest.mark.asyncio async def test_button_press_error( hass: HomeAssistant, mock_api_client: FlussApiClient, @@ -87,7 +84,6 @@ async def test_button_press_error( ) -@pytest.mark.asyncio async def test_no_devices_setup( hass: HomeAssistant, mock_api_client: FlussApiClient, @@ -104,7 +100,6 @@ async def test_no_devices_setup( assert hass.states.get("button.test_device") is None -@pytest.mark.asyncio async def test_unload_entry( hass: HomeAssistant, init_integration: MockConfigEntry, diff --git a/tests/components/fluss/test_config_flow.py b/tests/components/fluss/test_config_flow.py index cbbf7fbdc70c..9657c54eefb8 100644 --- a/tests/components/fluss/test_config_flow.py +++ b/tests/components/fluss/test_config_flow.py @@ -14,8 +14,6 @@ from homeassistant.const import CONF_API_KEY from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import FlowResultType -from tests.common import MockConfigEntry - async def test_show_form(hass: HomeAssistant) -> None: """Test that the form is shown.""" diff --git a/tests/components/fluss/test_init.py b/tests/components/fluss/test_init.py index 2e62dbb4a5fa..1d1fc49f594f 100644 --- a/tests/components/fluss/test_init.py +++ b/tests/components/fluss/test_init.py @@ -9,10 +9,8 @@ from fluss_api import ( ) import pytest -from homeassistant.components.fluss import async_setup_entry from homeassistant.config_entries import ConfigEntryState from homeassistant.core import HomeAssistant -from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from tests.common import MockConfigEntry