tests/nodedev: make compare recursive

This will allow to have nested dict for childrens. See the following
commits.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
Marc-André Lureau
2017-02-23 16:30:44 -05:00
committed by Cole Robinson
parent cd2ade9fd7
commit 806bbbb4ea
+15 -7
View File
@@ -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)