ha-supervisor/tests/dbus_service_mocks/timedate.py

96 lines
2.5 KiB
Python

"""Mock of timedate dbus service."""
from dbus_fast.service import PropertyAccess, dbus_property
from .base import DBusServiceMock, dbus_method
BUS_NAME = "org.freedesktop.timedate1"
def setup(object_path: str | None = None) -> DBusServiceMock:
"""Create dbus mock object."""
return TimeDate()
# pylint: disable=invalid-name
class TimeDate(DBusServiceMock):
"""TimeDate mock.
gdbus introspect --system --dest org.freedesktop.timedate1 --object-path /org/freedesktop/timedate1
"""
object_path = "/org/freedesktop/timedate1"
interface = "org.freedesktop.timedate1"
@dbus_property(access=PropertyAccess.READ)
def Timezone(self) -> "s":
"""Get Timezone."""
return "Etc/UTC"
@dbus_property(access=PropertyAccess.READ)
def LocalRTC(self) -> "b":
"""Get LocalRTC."""
return False
@dbus_property(access=PropertyAccess.READ)
def CanNTP(self) -> "b":
"""Get CanNTP."""
return True
@dbus_property(access=PropertyAccess.READ)
def NTP(self) -> "b":
"""Get NTP."""
return True
@dbus_property(access=PropertyAccess.READ)
def NTPSynchronized(self) -> "b":
"""Get NTPSynchronized."""
return True
@dbus_property(access=PropertyAccess.READ)
def TimeUSec(self) -> "t":
"""Get TimeUSec."""
return 1621413414405718
@dbus_property(access=PropertyAccess.READ)
def RTCTimeUSec(self) -> "t":
"""Get RTCTimeUSec."""
return 1621413415000000
@dbus_method()
def SetTime(self, usec_utc: "x", relative: "b", interactive: "b") -> None:
"""Set time."""
@dbus_method()
def SetTimezone(self, timezone: "s", interactive: "b") -> None:
"""Set timezone."""
self.emit_properties_changed({"Timezone": timezone})
@dbus_method()
def SetLocalRTC(self, local_rtc: "b", fix_system: "b", interactive: "b") -> None:
"""Set local RTC."""
self.emit_properties_changed({"LocalRTC": local_rtc})
@dbus_method()
def SetNTP(self, use_ntp: "b", interactive: "b") -> None:
"""Set NTP."""
self.emit_properties_changed({"NTP": use_ntp})
@dbus_method()
def ListTimezones(self) -> "as":
"""List timezones."""
return [
"Africa/Abidjan",
"America/New_York",
"Antarctica/Casey",
"Asia/Hong_Kong",
"Atlantic/Azores",
"Australia/Sydney",
"Europe/Amsterdam",
"Indian/Chagos",
"Pacific/Apia",
"UTC",
]