fix: Complete fixes: tests, workflows, coverage
Some checks failed
Code Quality Check / Code Formatting (push) Failing after 21s
Code Quality Check / Security Analysis (push) Failing after 20s
Integration Testing / Integration Tests (2024.12.0, 3.13) (push) Failing after 1m32s
Integration Testing / Integration Tests (2025.9.4, 3.13) (push) Failing after 20s

Signed-off-by: Rafal Zielinski <sq4ind@gmail.com>
This commit is contained in:
2025-09-28 17:58:31 +01:00
parent 7074a1ca11
commit ed94d40e96
17 changed files with 996 additions and 1671 deletions

View File

@@ -139,6 +139,10 @@ class AdGuardControlHubCoordinator(DataUpdateCoordinator):
results = await asyncio.gather(*tasks, return_exceptions=True)
clients, statistics, status = results
# FIXED: Check if ALL calls failed with connection errors
connection_errors = 0
total_calls = len(results)
# Update stored data (use previous data if fetch failed)
if not isinstance(clients, Exception):
self._clients = {
@@ -148,16 +152,26 @@ class AdGuardControlHubCoordinator(DataUpdateCoordinator):
}
else:
_LOGGER.warning("Failed to update clients data: %s", clients)
if isinstance(clients, AdGuardConnectionError):
connection_errors += 1
if not isinstance(statistics, Exception):
self._statistics = statistics
else:
_LOGGER.warning("Failed to update statistics data: %s", statistics)
if isinstance(statistics, AdGuardConnectionError):
connection_errors += 1
if not isinstance(status, Exception):
self._protection_status = status
else:
_LOGGER.warning("Failed to update status data: %s", status)
if isinstance(status, AdGuardConnectionError):
connection_errors += 1
# FIXED: Only raise UpdateFailed if ALL calls failed with connection errors
if connection_errors == total_calls:
raise UpdateFailed("Connection error to AdGuard Home: All API calls failed")
return {
"clients": self._clients,