mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-06-20 17:06:30 +00:00
Rename dns checks to fit pattern (#3811)
* Rename dns checks to fit pattern * Missed a patch reference
This commit is contained in:
parent
f4811a0243
commit
cbddca2658
@ -15,11 +15,11 @@ from .base import CheckBase
|
||||
|
||||
def setup(coresys: CoreSys) -> CheckBase:
|
||||
"""Check setup function."""
|
||||
return CheckDNSServerFailures(coresys)
|
||||
return CheckDNSServer(coresys)
|
||||
|
||||
|
||||
class CheckDNSServerFailures(CheckBase):
|
||||
"""CheckDNSServerFailures class for check."""
|
||||
class CheckDNSServer(CheckBase):
|
||||
"""CheckDNSServer class for check."""
|
||||
|
||||
@Job(
|
||||
conditions=[JobCondition.INTERNET_SYSTEM],
|
@ -15,11 +15,11 @@ from .base import CheckBase
|
||||
|
||||
def setup(coresys: CoreSys) -> CheckBase:
|
||||
"""Check setup function."""
|
||||
return CheckDNSServerIPv6Errors(coresys)
|
||||
return CheckDNSServerIPv6(coresys)
|
||||
|
||||
|
||||
class CheckDNSServerIPv6Errors(CheckBase):
|
||||
"""CheckDNSServerIPv6Errors class for check."""
|
||||
class CheckDNSServerIPv6(CheckBase):
|
||||
"""CheckDNSServerIPv6 class for check."""
|
||||
|
||||
@Job(
|
||||
conditions=[JobCondition.INTERNET_SYSTEM],
|
@ -15,10 +15,10 @@ from supervisor.resolution.validate import get_valid_modules
|
||||
def fixture_mock_dns_query():
|
||||
"""Mock aiodns query."""
|
||||
with patch(
|
||||
"supervisor.resolution.checks.dns_server_failure.DNSResolver.query",
|
||||
"supervisor.resolution.checks.dns_server.DNSResolver.query",
|
||||
new_callable=AsyncMock,
|
||||
), patch(
|
||||
"supervisor.resolution.checks.dns_server_ipv6_error.DNSResolver.query",
|
||||
"supervisor.resolution.checks.dns_server_ipv6.DNSResolver.query",
|
||||
new_callable=AsyncMock,
|
||||
):
|
||||
yield
|
||||
|
@ -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()
|
||||
|
@ -6,7 +6,7 @@ import pytest
|
||||
|
||||
from supervisor.const import CoreState
|
||||
from supervisor.coresys import CoreSys
|
||||
from supervisor.resolution.checks.dns_server_ipv6_error import CheckDNSServerIPv6Errors
|
||||
from supervisor.resolution.checks.dns_server_ipv6 import CheckDNSServerIPv6
|
||||
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_ipv6_error.DNSResolver.query",
|
||||
"supervisor.resolution.checks.dns_server_ipv6.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_ipv6_errors = CheckDNSServerIPv6Errors(coresys)
|
||||
assert dns_server_ipv6_errors.slug == "dns_server_ipv6_error"
|
||||
assert dns_server_ipv6_errors.enabled
|
||||
dns_server_ipv6 = CheckDNSServerIPv6(coresys)
|
||||
assert dns_server_ipv6.slug == "dns_server_ipv6"
|
||||
assert dns_server_ipv6.enabled
|
||||
|
||||
|
||||
async def test_check(coresys: CoreSys, dns_query: AsyncMock):
|
||||
"""Test check for DNS server IPv6 errors."""
|
||||
dns_server_ipv6_errors = CheckDNSServerIPv6Errors(coresys)
|
||||
dns_server_ipv6 = CheckDNSServerIPv6(coresys)
|
||||
coresys.core.state = CoreState.RUNNING
|
||||
|
||||
coresys.plugins.dns.servers = ["dns://1.1.1.1"]
|
||||
assert dns_server_ipv6_errors.dns_servers == [
|
||||
assert dns_server_ipv6.dns_servers == [
|
||||
"dns://1.1.1.1",
|
||||
"dns://192.168.30.1",
|
||||
]
|
||||
assert len(coresys.resolution.issues) == 0
|
||||
|
||||
await dns_server_ipv6_errors.run_check.__wrapped__(dns_server_ipv6_errors)
|
||||
await dns_server_ipv6.run_check.__wrapped__(dns_server_ipv6)
|
||||
assert dns_query.call_args_list == [
|
||||
call("_checkdns.home-assistant.io", "AAAA"),
|
||||
call("_checkdns.home-assistant.io", "AAAA"),
|
||||
@ -48,16 +48,16 @@ async def test_check(coresys: CoreSys, dns_query: AsyncMock):
|
||||
|
||||
dns_query.reset_mock()
|
||||
coresys.plugins.dns.servers = []
|
||||
assert dns_server_ipv6_errors.dns_servers == ["dns://192.168.30.1"]
|
||||
assert dns_server_ipv6.dns_servers == ["dns://192.168.30.1"]
|
||||
|
||||
dns_query.side_effect = DNSError(1, "DNS server returned answer with no data")
|
||||
await dns_server_ipv6_errors.run_check.__wrapped__(dns_server_ipv6_errors)
|
||||
await dns_server_ipv6.run_check.__wrapped__(dns_server_ipv6)
|
||||
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "AAAA")
|
||||
assert len(coresys.resolution.issues) == 0
|
||||
|
||||
dns_query.reset_mock()
|
||||
dns_query.side_effect = DNSError(4, "Domain name not found")
|
||||
await dns_server_ipv6_errors.run_check.__wrapped__(dns_server_ipv6_errors)
|
||||
await dns_server_ipv6.run_check.__wrapped__(dns_server_ipv6)
|
||||
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "AAAA")
|
||||
|
||||
assert len(coresys.resolution.issues) == 1
|
||||
@ -68,67 +68,54 @@ async def test_check(coresys: CoreSys, dns_query: AsyncMock):
|
||||
|
||||
async def test_approve(coresys: CoreSys, dns_query: AsyncMock):
|
||||
"""Test approve existing DNS Server IPv6 error issues."""
|
||||
dns_server_ipv6_errors = CheckDNSServerIPv6Errors(coresys)
|
||||
dns_server_ipv6 = CheckDNSServerIPv6(coresys)
|
||||
coresys.core.state = CoreState.RUNNING
|
||||
|
||||
assert dns_server_ipv6_errors.dns_servers == ["dns://192.168.30.1"]
|
||||
assert dns_server_ipv6.dns_servers == ["dns://192.168.30.1"]
|
||||
dns_query.side_effect = DNSError(4, "Domain name not found")
|
||||
|
||||
assert (
|
||||
await dns_server_ipv6_errors.approve_check(reference="dns://1.1.1.1") is False
|
||||
)
|
||||
assert await dns_server_ipv6.approve_check(reference="dns://1.1.1.1") is False
|
||||
dns_query.assert_not_called()
|
||||
|
||||
assert (
|
||||
await dns_server_ipv6_errors.approve_check(reference="dns://192.168.30.1")
|
||||
is True
|
||||
)
|
||||
assert await dns_server_ipv6.approve_check(reference="dns://192.168.30.1") is True
|
||||
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "AAAA")
|
||||
|
||||
dns_query.reset_mock()
|
||||
dns_query.side_effect = DNSError(1, "DNS server returned answer with no data")
|
||||
assert (
|
||||
await dns_server_ipv6_errors.approve_check(reference="dns://192.168.30.1")
|
||||
is False
|
||||
)
|
||||
assert await dns_server_ipv6.approve_check(reference="dns://192.168.30.1") is False
|
||||
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "AAAA")
|
||||
|
||||
dns_query.reset_mock()
|
||||
dns_query.side_effect = None
|
||||
assert (
|
||||
await dns_server_ipv6_errors.approve_check(reference="dns://192.168.30.1")
|
||||
is False
|
||||
)
|
||||
assert await dns_server_ipv6.approve_check(reference="dns://192.168.30.1") is False
|
||||
dns_query.assert_called_once_with("_checkdns.home-assistant.io", "AAAA")
|
||||
|
||||
|
||||
async def test_did_run(coresys: CoreSys):
|
||||
"""Test that the check ran as expected."""
|
||||
dns_server_ipv6_errors = CheckDNSServerIPv6Errors(coresys)
|
||||
should_run = dns_server_ipv6_errors.states
|
||||
dns_server_ipv6 = CheckDNSServerIPv6(coresys)
|
||||
should_run = dns_server_ipv6.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(
|
||||
CheckDNSServerIPv6Errors, "run_check", return_value=None
|
||||
) as check:
|
||||
with patch.object(CheckDNSServerIPv6, "run_check", return_value=None) as check:
|
||||
for state in should_run:
|
||||
coresys.core.state = state
|
||||
await dns_server_ipv6_errors()
|
||||
await dns_server_ipv6()
|
||||
check.assert_called_once()
|
||||
check.reset_mock()
|
||||
|
||||
for state in should_not_run:
|
||||
coresys.core.state = state
|
||||
await dns_server_ipv6_errors()
|
||||
await dns_server_ipv6()
|
||||
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_ipv6_errors = CheckDNSServerIPv6Errors(coresys)
|
||||
dns_server_ipv6 = CheckDNSServerIPv6(coresys)
|
||||
coresys.core.state = CoreState.RUNNING
|
||||
|
||||
coresys.resolution.create_issue(
|
||||
@ -139,10 +126,10 @@ async def test_check_if_affected(coresys: CoreSys):
|
||||
assert len(coresys.resolution.issues) == 1
|
||||
|
||||
with patch.object(
|
||||
CheckDNSServerIPv6Errors, "approve_check", return_value=True
|
||||
CheckDNSServerIPv6, "approve_check", return_value=True
|
||||
) as approve, patch.object(
|
||||
CheckDNSServerIPv6Errors, "run_check", return_value=None
|
||||
CheckDNSServerIPv6, "run_check", return_value=None
|
||||
) as check:
|
||||
await dns_server_ipv6_errors()
|
||||
await dns_server_ipv6()
|
||||
approve.assert_called_once()
|
||||
check.assert_called_once()
|
||||
|
Loading…
x
Reference in New Issue
Block a user