ha-supervisor/tests/dbus_service_mocks/hostname.py

159 lines
5.0 KiB
Python

"""Mock of hostname dbus service."""
from json import dumps
from dbus_fast.service import PropertyAccess, dbus_property
from .base import DBusServiceMock, dbus_method
BUS_NAME = "org.freedesktop.hostname1"
def setup(object_path: str | None = None) -> DBusServiceMock:
"""Create dbus mock object."""
return Hostname()
# pylint: disable=invalid-name
class Hostname(DBusServiceMock):
"""Hostname mock.
gdbus introspect --system --dest org.freedesktop.hostname1 --object-path /org/freedesktop/hostname1
"""
object_path = "/org/freedesktop/hostname1"
interface = "org.freedesktop.hostname1"
@dbus_property(access=PropertyAccess.READ)
def Hostname(self) -> "s":
"""Get Hostname."""
return "homeassistant-n2"
@dbus_property(access=PropertyAccess.READ)
def StaticHostname(self) -> "s":
"""Get StaticHostname."""
return "homeassistant-n2"
@dbus_property(access=PropertyAccess.READ)
def PrettyHostname(self) -> "s":
"""Get PrettyHostname."""
return ""
@dbus_property(access=PropertyAccess.READ)
def IconName(self) -> "s":
"""Get IconName."""
return "computer-embedded"
@dbus_property(access=PropertyAccess.READ)
def Chassis(self) -> "s":
"""Get Chassis."""
return "embedded"
@dbus_property(access=PropertyAccess.READ)
def Deployment(self) -> "s":
"""Get Deployment."""
return "development"
@dbus_property(access=PropertyAccess.READ)
def Location(self) -> "s":
"""Get Location."""
return ""
@dbus_property(access=PropertyAccess.READ)
def KernelName(self) -> "s":
"""Get KernelName."""
return "Linux"
@dbus_property(access=PropertyAccess.READ)
def KernelRelease(self) -> "s":
"""Get KernelRelease."""
return "5.10.33"
@dbus_property(access=PropertyAccess.READ)
def KernelVersion(self) -> "s":
"""Get KernelVersion."""
return "#1 SMP PREEMPT Wed May 5 00:55:38 UTC 2021"
@dbus_property(access=PropertyAccess.READ)
def OperatingSystemPrettyName(self) -> "s":
"""Get OperatingSystemPrettyName."""
return "Home Assistant OS 6.0.dev20210504"
@dbus_property(access=PropertyAccess.READ)
def OperatingSystemCPEName(self) -> "s":
"""Get OperatingSystemCPEName."""
return "cpe:2.3:o:home-assistant:haos:6.0.dev20210504:*:development:*:*:*:odroid-n2:*"
@dbus_property(access=PropertyAccess.READ)
def HomeURL(self) -> "s":
"""Get HomeURL."""
return "https://hass.io/"
@dbus_method()
def SetHostname(self, hostname: "s", interactive: "b") -> None:
"""Set hostname."""
self.emit_properties_changed({"Hostname": hostname})
@dbus_method()
def SetStaticHostname(self, hostname: "s", interactive: "b") -> None:
"""Set static hostname."""
self.emit_properties_changed({"StaticHostname": hostname})
@dbus_method()
def SetPrettyHostname(self, hostname: "s", interactive: "b") -> None:
"""Set pretty hostname."""
self.emit_properties_changed({"PrettyHostname": hostname})
@dbus_method()
def SetIconName(self, icon: "s", interactive: "b") -> None:
"""Set icon name."""
self.emit_properties_changed({"IconName": icon})
@dbus_method()
def SetChassis(self, chassis: "s", interactive: "b") -> None:
"""Set chassis."""
self.emit_properties_changed({"Chassis": chassis})
@dbus_method()
def SetDeployment(self, deployment: "s", interactive: "b") -> None:
"""Set deployment."""
self.emit_properties_changed({"Deployment": deployment})
@dbus_method()
def SetLocation(self, location: "s", interactive: "b") -> None:
"""Set location."""
self.emit_properties_changed({"Location": location})
@dbus_method()
def GetProductUUID(self, interactive: "b") -> "ay":
"""Get product UUID."""
return bytearray("d153e353-2a32-4763-b930-b27fbc980da5", encoding="utf-8")
@dbus_method()
def Describe(self) -> "s":
"""Describe."""
return dumps(
{
"Hostname": "odroid-dev",
"StaticHostname": "odroid-dev",
"PrettyHostname": None,
"DefaultHostname": "homeassistant",
"HostnameSource": "static",
"IconName": "computer-embedded",
"Chassis": "embedded",
"Deployment": "development",
"Location": None,
"KernelName": "Linux",
"KernelRelease": "5.15.88",
"KernelVersion": "#1 SMP PREEMPT Mon Jan 16 23:45:23 UTC 2023",
"OperatingSystemPrettyName": "Home Assistant OS 10.0.dev20230116",
"OperatingSystemCPEName": "cpe:2.3:o:home-assistant:haos:10.0.dev20230116:*:development:*:*:*:odroid-n2:*",
"OperatingSystemHomeURL": "https://hass.io/",
"HardwareVendor": None,
"HardwareModel": None,
"ProductUUID": None,
}
)