ha-supervisor/tests/dbus_service_mocks/resolved.py

139 lines
4.0 KiB
Python

"""Mock of resolved dbus service."""
from dbus_fast.service import PropertyAccess, dbus_property
from .base import DBusServiceMock
BUS_NAME = "org.freedesktop.resolve1"
def setup(object_path: str | None = None) -> DBusServiceMock:
"""Create dbus mock object."""
return Resolved()
# pylint: disable=invalid-name
class Resolved(DBusServiceMock):
"""Resolved mock.
gdbus introspect --system --dest org.freedesktop.resolve1 --object-path /org/freedesktop/resolve1
"""
object_path = "/org/freedesktop/resolve1"
interface = "org.freedesktop.resolve1.Manager"
@dbus_property(access=PropertyAccess.READ)
def LLMNRHostname(self) -> "s":
"""Get LLMNRHostname."""
return "homeassistant"
@dbus_property(access=PropertyAccess.READ)
def LLMNR(self) -> "s":
"""Get LLMNR."""
return "yes"
@dbus_property(access=PropertyAccess.READ)
def MulticastDNS(self) -> "s":
"""Get MulticastDNS."""
return "resolve"
@dbus_property(access=PropertyAccess.READ)
def DNSOverTLS(self) -> "s":
"""Get DNSOverTLS."""
return "no"
@dbus_property(access=PropertyAccess.READ)
def DNS(self) -> "a(iiay)":
"""Get DNS."""
return [
[0, 2, bytearray([127, 0, 0, 1])],
[0, 10, bytearray([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])],
]
@dbus_property(access=PropertyAccess.READ)
def DNSEx(self) -> "a(iiayqs)":
"""Get DNSEx."""
return [
[0, 2, bytearray([127, 0, 0, 1]), 0, ""],
[0, 10, bytearray([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]), 0, ""],
]
@dbus_property(access=PropertyAccess.READ)
def FallbackDNS(self) -> "a(iiay)":
"""Get FallbackDNS."""
return [
[0, 2, bytearray([1, 1, 1, 1])],
[0, 10, bytearray([38, 6, 71, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17])],
]
@dbus_property(access=PropertyAccess.READ)
def FallbackDNSEx(self) -> "a(iiayqs)":
"""Get FallbackDNSEx."""
return [
[0, 2, bytearray([1, 1, 1, 1]), 0, "cloudflare-dns.com"],
[
0,
10,
bytearray([38, 6, 71, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17]),
0,
"cloudflare-dns.com",
],
]
@dbus_property(access=PropertyAccess.READ)
def CurrentDNSServer(self) -> "(iiay)":
"""Get CurrentDNSServer."""
return [0, 2, bytearray([127, 0, 0, 1])]
@dbus_property(access=PropertyAccess.READ)
def CurrentDNSServerEx(self) -> "(iiayqs)":
"""Get CurrentDNSServerEx."""
return [0, 2, bytearray([127, 0, 0, 1]), 0, ""]
@dbus_property(access=PropertyAccess.READ)
def Domains(self) -> "a(isb)":
"""Get Domains."""
return [[0, "local.hass.io", False]]
@dbus_property(access=PropertyAccess.READ)
def TransactionStatistics(self) -> "(tt)":
"""Get TransactionStatistics."""
return [0, 100000]
@dbus_property(access=PropertyAccess.READ)
def CacheStatistics(self) -> "(ttt)":
"""Get CacheStatistics."""
return [10, 50000, 10000]
@dbus_property(access=PropertyAccess.READ)
def DNSSEC(self) -> "s":
"""Get DNSSEC."""
return "no"
@dbus_property(access=PropertyAccess.READ)
def DNSSECStatistics(self) -> "(tttt)":
"""Get DNSSECStatistics."""
return [0, 0, 0, 0]
@dbus_property(access=PropertyAccess.READ)
def DNSSECSupported(self) -> "b":
"""Get DNSSECSupported."""
return False
@dbus_property(access=PropertyAccess.READ)
def DNSSECNegativeTrustAnchors(self) -> "as":
"""Get DNSSECNegativeTrustAnchors."""
return ["168.192.in-addr.arpa", "local"]
@dbus_property(access=PropertyAccess.READ)
def DNSStubListener(self) -> "s":
"""Get DNSStubListener."""
return "no"
@dbus_property(access=PropertyAccess.READ)
def ResolvConfMode(self) -> "s":
"""Get ResolvConfMode."""
return "foreign"