From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> This will allow to have nested dict for childrens. See the following commits. Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> --- tests/nodedev.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/tests/nodedev.py b/tests/nodedev.py index 5d9fdec8..1a69c823 100644 --- a/tests/nodedev.py +++ b/tests/nodedev.py @@ -68,18 +68,26 @@ class TestNodeDev(unittest.TestCase): return NodeDevice.parse(conn, xml) def _testCompare(self, devname, vals, devxml=None): + def _compare(dev, vals, root=""): + for attr in vals.keys(): + expect = vals[attr] + actual = getattr(dev, attr) + if isinstance(expect, list): + for adev, exp in zip(actual, expect): + _compare(adev, exp, attr + ".") + else: + if expect != actual: + raise AssertionError("devname=%s attribute=%s%s did not match:\n" + "expect=%s\nactual=%s" % (devname, root, attr, expect, actual)) + self.assertEqual(vals[attr], getattr(dev, attr)) + if devxml: dev = NodeDevice.parse(conn, devxml) else: dev = self._nodeDevFromName(devname) - for attr in vals.keys(): - expect = vals[attr] - actual = getattr(dev, attr) - if expect != actual: - raise AssertionError("devname=%s attribute=%s did not match:\n" - "expect=%s\nactual=%s" % (devname, attr, expect, actual)) - self.assertEqual(vals[attr], getattr(dev, attr)) + _compare(dev, vals) + return dev def _testNode2DeviceCompare(self, nodename, devfile, nodedev=None): devfile = os.path.join("tests/nodedev-xml/devxml", devfile) -- 2.11.0.295.gd7dffce1c.dirty _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list