1
from dbus import SystemBus, Interface
3
from landscape.hal import HALDevice, HALManager
4
from landscape.tests.helpers import LandscapeTest
7
class HALManagerTest(LandscapeTest):
10
super(HALManagerTest, self).setUp()
11
self.bus = SystemBus()
12
self.manager = HALManager()
14
def test_get_devices(self):
16
A HALManager can return a flat list of devices. All available
17
devices should be included in the returned list.
19
devices = self.manager.get_devices()
20
manager = self.bus.get_object("org.freedesktop.Hal",
21
"/org/freedesktop/Hal/Manager")
22
manager = Interface(manager, "org.freedesktop.Hal.Manager")
23
expected_devices = manager.GetAllDevices()
24
actual_devices = [device.udi for device in devices]
25
self.assertEquals(set(expected_devices), set(actual_devices))
28
class MockHALManager(object):
30
def __init__(self, devices):
31
self.devices = devices
33
def get_devices(self):
34
return [HALDevice(device) for device in self.devices]
37
class MockRealHALDevice(object):
39
def __init__(self, properties):
40
self._properties = properties
41
self.udi = properties.get("info.udi", "fake_udi")
43
def GetAllProperties(self):
44
return self._properties
47
class HALDeviceTest(LandscapeTest):
50
device = HALDevice(MockRealHALDevice({"info.udi": "wubble"}))
51
self.assertEquals(device.properties, {"info.udi": "wubble"})
52
self.assertEquals(device.udi, "wubble")
53
self.assertEquals(device.parent, None)
55
def test_add_child(self):
56
parent = HALDevice(MockRealHALDevice({"info.udi": "wubble"}))
57
child = HALDevice(MockRealHALDevice({"info.udi": "ooga"}))
58
parent.add_child(child)
59
self.assertEquals(parent.get_children(), [child])
60
self.assertEquals(child.parent, parent)