From 435fdf2a6a5ac62dcb80d04803b059cef3f110dc Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 26 Feb 2018 14:56:24 -0500 Subject: [PATCH] tests: Add xmlns remove_child test case And tighten up the xmlbuilder xmlns hackery --- tests/xmlparse.py | 3 +++ virtinst/xmlbuilder.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/xmlparse.py b/tests/xmlparse.py index 6556c374..03e146da 100644 --- a/tests/xmlparse.py +++ b/tests/xmlparse.py @@ -982,7 +982,10 @@ class XMLParseTest(unittest.TestCase): check = self._make_checker(guest.xmlns_qemu.args[1]) check("value", "bar,baz=wib wob", "testval") guest.xmlns_qemu.args.add_new().value = "additional-arg" + arg0 = guest.xmlns_qemu.args[0] guest.xmlns_qemu.remove_child(guest.xmlns_qemu.args[0]) + self.assertEqual(arg0.get_xml_config(), + "\n") check = self._make_checker(guest.xmlns_qemu.envs[0]) check("name", "SOMEENV") diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py index 50418a55..39ffd02b 100644 --- a/virtinst/xmlbuilder.py +++ b/virtinst/xmlbuilder.py @@ -455,8 +455,8 @@ class _XMLState(object): if not parsexml: parsexml = "<%s%s/>" % (self._root_name, self._namespace) elif self._namespace and "xmlns" not in parsexml: - parsexml = parsexml.replace(self._root_name, - self._root_name + self._namespace) + parsexml = parsexml.replace("<" + self._root_name, + "<" + self._root_name + self._namespace) try: self.xmlapi = XMLAPI(parsexml)