Adjust the libvirt config classes' API contract for parsing
Don't not automatically invoke the 'parse_dom' method from the LibvirtConfigObject constructor, because this is too early in construction - no child class constructors have initialized yet. Instead require the 'parse_dom' method to be invoked after the bare object has been constructed. Also make the default impl of 'parse_dom' take an etree.Element instance and validate its root element name. Add a convenient 'parse_str' method for turning a XML string into an etree.Element instance & parsing it. Change-Id: I7eda2b59869f3b4ef9dce1602cbb05f7662f4528 Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
		@@ -53,6 +53,11 @@ class LibvirtConfigTest(LibvirtConfigBaseTest):
 | 
				
			|||||||
        xml = etree.tostring(root)
 | 
					        xml = etree.tostring(root)
 | 
				
			||||||
        self.assertXmlEqual(xml, "<demo><foo>bar</foo></demo>")
 | 
					        self.assertXmlEqual(xml, "<demo><foo>bar</foo></demo>")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_config_parse(self):
 | 
				
			||||||
 | 
					        inxml = "<demo><foo/></demo>"
 | 
				
			||||||
 | 
					        obj = config.LibvirtConfigObject(root_name="demo")
 | 
				
			||||||
 | 
					        obj.parse_str(inxml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class LibvirtConfigGuestTimerTest(LibvirtConfigBaseTest):
 | 
					class LibvirtConfigGuestTimerTest(LibvirtConfigBaseTest):
 | 
				
			||||||
    def test_config_platform(self):
 | 
					    def test_config_platform(self):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user