1
0
mirror of https://github.com/home-assistant/supervisor.git synced 2025-12-24 12:29:08 +00:00

Rename dns checks to fit pattern (#3811)

* Rename dns checks to fit pattern

* Missed a patch reference
This commit is contained in:
Mike Degatano
2022-08-23 07:54:22 -04:00
committed by GitHub
parent f4811a0243
commit cbddca2658
5 changed files with 58 additions and 77 deletions

View File

@@ -6,7 +6,7 @@ import pytest
from supervisor.const import CoreState
from supervisor.coresys import CoreSys
from supervisor.resolution.checks.dns_server_failure import CheckDNSServerFailures
from supervisor.resolution.checks.dns_server import CheckDNSServer
from supervisor.resolution.const import ContextType, IssueType
@@ -14,7 +14,7 @@ from supervisor.resolution.const import ContextType, IssueType
async def fixture_dns_query() -> AsyncMock:
"""Mock aiodns query."""
with patch(
"supervisor.resolution.checks.dns_server_failure.DNSResolver.query",
"supervisor.resolution.checks.dns_server.DNSResolver.query",
new_callable=AsyncMock,
) as dns_query:
yield dns_query
@@ -22,24 +22,24 @@ async def fixture_dns_query() -> AsyncMock:
async def test_base(coresys: CoreSys):
"""Test check basics."""
dns_server_failures = CheckDNSServerFailures(coresys)
assert dns_server_failures.slug == "dns_server_failure"
assert dns_server_failures.enabled
dns_server = CheckDNSServer(coresys)
assert dns_server.slug == "dns_server"
assert dns_server.enabled
async def test_check(coresys: CoreSys, dns_query: AsyncMock):
"""Test check for DNS server failures."""
dns_server_failures = CheckDNSServerFailures(coresys)
dns_server = CheckDNSServer(coresys)
coresys.core.state = CoreState.RUNNING
coresys.plugins.dns.servers = ["dns://1.1.1.1"]
assert dns_server_failures.dns_servers == [
assert dns_server.dns_servers == [
"dns://1.1.1.1",
"dns://192.168.30.1",
]
assert len(coresys.resolution.issues) == 0
await dns_server_failures.run_check.__wrapped__(dns_server_failures)
await dns_server.run_check.__wrapped__(dns_server)
assert dns_query.call_args_list == [
call("_checkdns.home-assistant.io", "A"),
call("_checkdns.home-assistant.io", "A"),
@@ -48,10 +48,10 @@ async def test_check(coresys: CoreSys, dns_query: AsyncMock):
dns_query.reset_mock()
coresys.plugins.dns.servers = []
assert dns_server_failures.dns_servers == ["dns://192.168.30.1"]
assert dns_server.dns_servers == ["dns://192.168.30.1"]
dns_query.side_effect = DNSError()
await dns_server_failures.run_check.__wrapped__(dns_server_failures)
await dns_server.run_check.__wrapped__(dns_server)
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "A")
assert len(coresys.resolution.issues) == 1
@@ -62,53 +62,49 @@ async def test_check(coresys: CoreSys, dns_query: AsyncMock):
async def test_approve(coresys: CoreSys, dns_query: AsyncMock):
"""Test approve existing DNS Server failure issues."""
dns_server_failures = CheckDNSServerFailures(coresys)
dns_server = CheckDNSServer(coresys)
coresys.core.state = CoreState.RUNNING
assert dns_server_failures.dns_servers == ["dns://192.168.30.1"]
assert dns_server.dns_servers == ["dns://192.168.30.1"]
dns_query.side_effect = DNSError()
assert await dns_server_failures.approve_check(reference="dns://1.1.1.1") is False
assert await dns_server.approve_check(reference="dns://1.1.1.1") is False
dns_query.assert_not_called()
assert (
await dns_server_failures.approve_check(reference="dns://192.168.30.1") is True
)
assert await dns_server.approve_check(reference="dns://192.168.30.1") is True
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "A")
dns_query.reset_mock()
dns_query.side_effect = None
assert (
await dns_server_failures.approve_check(reference="dns://192.168.30.1") is False
)
assert await dns_server.approve_check(reference="dns://192.168.30.1") is False
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "A")
async def test_did_run(coresys: CoreSys):
"""Test that the check ran as expected."""
dns_server_failures = CheckDNSServerFailures(coresys)
should_run = dns_server_failures.states
dns_server = CheckDNSServer(coresys)
should_run = dns_server.states
should_not_run = [state for state in CoreState if state not in should_run]
assert should_run == [CoreState.RUNNING]
assert len(should_not_run) != 0
with patch.object(CheckDNSServerFailures, "run_check", return_value=None) as check:
with patch.object(CheckDNSServer, "run_check", return_value=None) as check:
for state in should_run:
coresys.core.state = state
await dns_server_failures()
await dns_server()
check.assert_called_once()
check.reset_mock()
for state in should_not_run:
coresys.core.state = state
await dns_server_failures()
await dns_server()
check.assert_not_called()
check.reset_mock()
async def test_check_if_affected(coresys: CoreSys):
"""Test that check is still executed even if already affected."""
dns_server_failures = CheckDNSServerFailures(coresys)
dns_server = CheckDNSServer(coresys)
coresys.core.state = CoreState.RUNNING
coresys.resolution.create_issue(
@@ -119,10 +115,8 @@ async def test_check_if_affected(coresys: CoreSys):
assert len(coresys.resolution.issues) == 1
with patch.object(
CheckDNSServerFailures, "approve_check", return_value=True
) as approve, patch.object(
CheckDNSServerFailures, "run_check", return_value=None
) as check:
await dns_server_failures()
CheckDNSServer, "approve_check", return_value=True
) as approve, patch.object(CheckDNSServer, "run_check", return_value=None) as check:
await dns_server()
approve.assert_called_once()
check.assert_called_once()