def test_node_memory(self): node = Node('node1') node.id = node.name node.memory = 123 doc_xml = self.builder.build_node_xml(node, self.node_spec) doc = xml.parse_string(doc_xml) memory_element = doc.find('memory') self.assertIsNotNone(memory_element) self.assertEqual('KiB', memory_element['unit']) self.assertEqual(str(123 * 1024), memory_element.text)
def test_network(self): network = Network('net1') network.id = 'net1' doc_xml = self.builder.build_network_xml(network) doc = xml.parse_string(doc_xml) self.assertIsNotNone(doc) self.assertEqual('network', doc.tag) e = doc.find('name') self.assertIsNotNone(e) self.assertEqual('net1', e.text)
def test_network_ip(self): network = Network('net1') network.id = 'net1' network.ip_addresses = IPv4Network('10.0.0.0/24') doc_xml = self.builder.build_network_xml(network) doc = xml.parse_string(doc_xml) ip_element = doc.find('ip') self.assertIsNotNone(ip_element) self.assertIsNotNone(ip_element['address']) self.assertIsNotNone(ip_element['prefix']) self.assertValidIp(ip_element['address'])
def test_network_dhcp_with_custom_dynamic_ip_range(self): network = Network('net1') network.id = 'net1' network.ip_addresses = IPv4Network('10.0.0.0/24') network.dhcp_server = True network.dhcp_dynamic_address_start = IPv4Address('10.0.0.100') network.dhcp_dynamic_address_end = IPv4Address('10.0.0.200') doc_xml = self.builder.build_network_xml(network) doc = xml.parse_string(doc_xml) range_element = doc.find('ip/dhcp/range') self.assertEquals('10.0.0.100', range_element['start']) self.assertEquals('10.0.0.200', range_element['end'])
def test_cdrom_disk(self): node = Node('node1') node.id = node.name node.cdrom = Cdrom(isopath='foo.iso') doc_xml = self.builder.build_node_xml(node, self.node_spec) doc = xml.parse_string(doc_xml) cdrom_element = doc.find( 'devices/disk[@type="file" and @device="cdrom"]') self.assertIsNotNone(cdrom_element) cdrom_driver_element = cdrom_element.find('driver') self.assertIsNotNone(cdrom_driver_element) self.assertEqual('qemu', cdrom_driver_element['name']) self.assertEqual('raw', cdrom_driver_element['type']) cdrom_source_element = cdrom_element.find('source') self.assertIsNotNone(cdrom_source_element) self.assertEqual('foo.iso', cdrom_source_element['file'])
def test_network_dhcp(self): network = Network('net1') network.id = 'net1' network.ip_addresses = IPv4Network('10.0.0.0/24') network.dhcp_server = True doc_xml = self.builder.build_network_xml(network) doc = xml.parse_string(doc_xml) dhcp_element = doc.find('ip/dhcp') self.assertIsNotNone(dhcp_element) range_element = dhcp_element.find('range') self.assertIsNotNone(range_element) self.assertIsNotNone(range_element['start']) self.assertIsNotNone(range_element['end']) self.assertValidIp(range_element['start']) self.assertValidIp(range_element['end'])
def test_parsing_returns_root_element(self): d = xml.parse_string("<a><b /></a>") self.assertIsNotNone(d) self.assertEquals('a', d.tag)
def get_output_as_xml(self, command): output = subprocess.check_output(command) return xml.parse_string(output)
def test_getting_node_text(self): d = xml.parse_string("<a><b>foo</b></a>") e = d.find('b') self.assertEquals('foo', e.text)
def test_finding_node_text(self): d = xml.parse_string("<a><b>foo</b></a>") self.assertEquals('foo', d.find('b/text()'))
def test_finding_absolute_values(self): d = xml.parse_string("<a><b><c name='foo'></c></b><b /></a>") nodes = d.find_all('/a/b') self.assertEquals(2, len(nodes))
def test_finding_all_descendants(self): d = xml.parse_string("<a><b><c name='foo'></c></b><b /></a>") nodes = d.find_all('b') self.assertEquals(2, len(nodes)) self.assertEquals('b', nodes[0].tag) self.assertEquals('b', nodes[1].tag)
def test_finding_attribute_values(self): d = xml.parse_string("<a><b><c name='foo'></c></b></a>") self.assertEquals('foo', d.find('b/c/@name'))
def test_finding_descendants(self): d = xml.parse_string("<a><b><c><d /></c></b></a>") e = d.find('b/c') self.assertIsNotNone(e) self.assertEquals('c', e.tag)