1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

lvmdbustest: Add test for property "Get"

We typically use "GetAll", so add test for "Get" and check values.
This commit is contained in:
Tony Asleson 2022-06-07 11:47:27 -05:00
parent 01ef2f2525
commit d0f94e763d
2 changed files with 25 additions and 1 deletions

View File

@ -677,6 +677,20 @@ class TestDbusService(unittest.TestCase):
EOD), vg, LV_BASE_INT)
self._validate_lookup("%s/%s" % (vg.Name, lv_name), lv.object_path)
def test_prop_get(self):
lv_name = lv_n()
vg = self._vg_create().Vg
lv = self._test_lv_create(
vg.LvCreate,
(dbus.String(lv_name), dbus.UInt64(mib(4)),
dbus.Array([], signature='(ott)'), dbus.Int32(g_tmo),
EOD), vg, LV_BASE_INT)
ri = RemoteInterface(lv.dbus_object, interface=LV_COMMON_INT, introspect=False)
ri.update()
for prop_name in ri.get_property_names():
self.assertEqual(ri.get_property_value(prop_name), getattr(ri, prop_name))
def test_lv_create_job(self):
lv_name = lv_n()
vg = self._vg_create().Vg

View File

@ -183,6 +183,7 @@ class RemoteInterface(object):
verify_type(
vl, self.introspect[self.interface]
['properties'][kl]['p_type'])
self.p_name[kl] = True
setattr(self, kl, vl)
@property
@ -196,6 +197,7 @@ class RemoteInterface(object):
self.interface = interface
self.introspect = introspect
self.tmo = 0
self.p_name = {}
if timelimit >= 0:
self.tmo = float(timelimit)
@ -213,7 +215,7 @@ class RemoteInterface(object):
def _wrapper(self, _method_name, *args, **kwargs):
# Lets see how long a method takes to execute, in call cases we should
# Let's see how long a method takes to execute, in call cases we should
# return something when the time limit has been reached.
start = time.time()
result = getattr(self.dbus_interface, _method_name)(*args, **kwargs)
@ -241,6 +243,14 @@ class RemoteInterface(object):
def update(self):
self._set_props()
def get_property_names(self):
return self.p_name.keys()
def get_property_value(self, name):
prop_interface = dbus.Interface(
self.dbus_object, 'org.freedesktop.DBus.Properties')
return prop_interface.Get(self.interface, name)
class ClientProxy(object):