mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-09 19:09:41 +00:00
* Use signals to recognize new disks immediately * Add test for disabled data disk issue * Add mock of UDisks2 base service to test * Apply suggestions from code review * Shutdown manager first to avoid potential race conditions * Update tests/dbus_service_mocks/udisks2.py Co-authored-by: Jan Čermák <sairon@users.noreply.github.com> --------- Co-authored-by: Stefan Agner <stefan@agner.ch> Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
"""Mock of base UDisks2 service."""
|
|
|
|
from dbus_fast import Variant
|
|
from dbus_fast.service import signal
|
|
|
|
from .base import DBusServiceMock, dbus_method
|
|
|
|
BUS_NAME = "org.freedesktop.UDisks2"
|
|
|
|
|
|
def setup(object_path: str | None = None) -> DBusServiceMock:
|
|
"""Create dbus mock object."""
|
|
return UDisks2()
|
|
|
|
|
|
class UDisks2(DBusServiceMock):
|
|
"""UDisks2 base object mock.
|
|
|
|
gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2
|
|
"""
|
|
|
|
interface = "org.freedesktop.DBus.ObjectManager"
|
|
object_path = "/org/freedesktop/UDisks2"
|
|
response_get_managed_objects: dict[str, dict[str, dict[str, Variant]]] = {}
|
|
|
|
@dbus_method()
|
|
def GetManagedObjects(self) -> "a{oa{sa{sv}}}":
|
|
"""Do GetManagedObjects method."""
|
|
return self.response_get_managed_objects
|
|
|
|
@signal()
|
|
def InterfacesAdded(
|
|
self, object_path: str, interfaces_and_properties: dict[str, dict[str, Variant]]
|
|
) -> "oa{sa{sv}}":
|
|
"""Signal interfaces added."""
|
|
return [object_path, interfaces_and_properties]
|
|
|
|
@signal()
|
|
def InterfacesRemoved(self, object_path: str, interfaces: list[str]) -> "oas":
|
|
"""Signal interfaces removed."""
|
|
return [object_path, interfaces]
|