mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-09 10:59:43 +00:00
Improve DNS plug-in restart (#5999)
* Improve DNS plug-in restart Instead of simply go by PrimaryConnectioon change, use the DnsManager Configuration property. This property is ultimately used to write the DNS plug-in configuration, so it is really the relevant information we pass on to the plug-in. * Check for changes and restart DNS plugin * Check for changes in plug-in DNS Cache last local (NetworkManager) provided DNS servers. Check against this DNS server list when deciding when to restart the DNS plug-in. * Check connectivity unthrottled in certain situations * Fix pytest * Fix pytest * Improve test coverage for DNS plugins restart functionality * Apply suggestions from code review Co-authored-by: Mike Degatano <michael.degatano@gmail.com> * Debounce local DNS changes and event based connectivity checks * Remove connection check logic * Remove unthrottled connectivity check * Fix delayed call * Store restart task and cancel in case a restart is running * Improve DNS configuration change tests * Remove stale code * Improve DNS plug-in tests, less mocking * Cover multiple private functions at once Improve tests around notify_locals_changed() to cover multiple functions at once. --------- Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
This commit is contained in:
@@ -66,6 +66,7 @@ from .dbus_service_mocks.base import DBusServiceMock
|
||||
from .dbus_service_mocks.network_connection_settings import (
|
||||
ConnectionSettings as ConnectionSettingsService,
|
||||
)
|
||||
from .dbus_service_mocks.network_dns_manager import DnsManager as DnsManagerService
|
||||
from .dbus_service_mocks.network_manager import NetworkManager as NetworkManagerService
|
||||
|
||||
# pylint: disable=redefined-outer-name, protected-access
|
||||
@@ -220,6 +221,14 @@ async def network_manager_service(
|
||||
yield network_manager_services["network_manager"]
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def dns_manager_service(
|
||||
network_manager_services: dict[str, DBusServiceMock | dict[str, DBusServiceMock]],
|
||||
) -> AsyncGenerator[DnsManagerService]:
|
||||
"""Return DNS Manager service mock."""
|
||||
yield network_manager_services["network_dns_manager"]
|
||||
|
||||
|
||||
@pytest.fixture(name="connection_settings_service")
|
||||
async def fixture_connection_settings_service(
|
||||
network_manager_services: dict[str, DBusServiceMock | dict[str, DBusServiceMock]],
|
||||
|
||||
Reference in New Issue
Block a user