supervisor/tests/dbus_service_mocks/udisks2_manager.py
Mike Degatano 7fd6dce55f
Migrate to Ruff for lint and format (#4852)
* Migrate to Ruff for lint and format

* Fix pylint issues

* DBus property sets into normal awaitable methods

* Fix tests relying on separate tasks in connect

* Fixes from feedback
2024-02-05 11:37:39 -05:00

102 lines
3.2 KiB
Python

"""Mock of UDisks2 Manager service."""
from dbus_fast.service import PropertyAccess, dbus_property
from .base import DBusServiceMock, dbus_method
BUS_NAME = "org.freedesktop.UDisks2"
def setup(object_path: str | None = None) -> DBusServiceMock:
"""Create dbus mock object."""
return UDisks2Manager()
class UDisks2Manager(DBusServiceMock):
"""UDisks2 Manager mock.
gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/Manager
"""
interface = "org.freedesktop.UDisks2.Manager"
object_path = "/org/freedesktop/UDisks2/Manager"
block_devices = [
"/org/freedesktop/UDisks2/block_devices/loop0",
"/org/freedesktop/UDisks2/block_devices/mmcblk1",
"/org/freedesktop/UDisks2/block_devices/mmcblk1p1",
"/org/freedesktop/UDisks2/block_devices/mmcblk1p2",
"/org/freedesktop/UDisks2/block_devices/mmcblk1p3",
"/org/freedesktop/UDisks2/block_devices/sda",
"/org/freedesktop/UDisks2/block_devices/sda1",
"/org/freedesktop/UDisks2/block_devices/sdb",
"/org/freedesktop/UDisks2/block_devices/sdb1",
"/org/freedesktop/UDisks2/block_devices/zram1",
]
resolved_devices = ["/org/freedesktop/UDisks2/block_devices/sda1"]
@dbus_property(access=PropertyAccess.READ)
def Version(self) -> "s":
"""Get Version."""
return "2.9.2"
@dbus_property(access=PropertyAccess.READ)
def SupportedFilesystems(self) -> "as":
"""Get SupportedFilesystems."""
return ["ext4", "vfat", "ntfs", "exfat", "swap"]
@dbus_property(access=PropertyAccess.READ)
def SupportedEncryptionTypes(self) -> "as":
"""Get SupportedEncryptionTypes."""
return ["luks1", "luks2"]
@dbus_property(access=PropertyAccess.READ)
def DefaultEncryptionType(self) -> "s":
"""Get DefaultEncryptionType."""
return "luks1"
@dbus_method()
def CanFormat(self, type_: "s") -> "(bs)":
"""Do CanFormat method."""
return [False, "mkfs.ntfs"]
@dbus_method()
def CanResize(self, type_: "s") -> "(bts)":
"""Do CanResize method."""
return [False, 6, "ntfsresize"]
@dbus_method()
def CanCheck(self, type_: "s") -> "(bs)":
"""Do CanCheck method."""
return [False, "ntfsfix"]
@dbus_method()
def CanRepair(self, type_: "s") -> "(bs)":
"""Do CanRepair method."""
return [False, "ntfsfix"]
@dbus_method()
def LoopSetup(self, fd: "h", options: "a{sv}") -> "o":
"""Do LoopSetup method."""
return "/org/freedesktop/UDisks2/block_devices/loop0"
@dbus_method()
def MDRaidCreate(
self, blocks: "ao", level: "s", name: "s", chunk: "t", options: "a{sv}"
) -> "o":
"""Do MDRaidCreate method."""
return "/org/freedesktop/UDisks2/block_devices/sdb"
@dbus_method()
def EnableModule(self, name: "s", enable: "b") -> None:
"""Do EnableModule method."""
@dbus_method()
def GetBlockDevices(self, options: "a{sv}") -> "ao":
"""Do GetBlockDevices method."""
return self.block_devices
@dbus_method()
def ResolveDevice(self, devspec: "a{sv}", options: "a{sv}") -> "ao":
"""Do ResolveDevice method."""
return self.resolved_devices