def test_equality_test_random_data(self): """ Check xml equality test """ for i in range(5): # Run a number of times since we're using random test data a = EtreeUtils.getRandomElementTree(max_children=5, max_depth=5, with_text=True, max_attr=3) b = copy.deepcopy(a) random.shuffle(b._children) self.assertTrue(EtreeUtils.areElementsEqual(a,b)) b.append(EtreeUtils.getRandomElementTree()) self.assertFalse(EtreeUtils.areElementsEqual(a,b))
def test_equality_test_manual_data(self): infile = open(os.path.join("UozuXml","test_xml.xml")) a = ET.XML(infile.read()) infile.close() infile = open(os.path.join("UozuXml","test_xml_shuffled.xml")) b = ET.XML(infile.read()) infile.close() self.assertTrue(EtreeUtils.areElementsEqual(a,b)) # Change an attribute then make sure the elements are not equal for node in b.iter("Bits"): node.set("asdf","asdff") self.assertFalse(EtreeUtils.areElementsEqual(a,b))
def test_random_etree(self): """ Make sure randomly generated tree is valid xml """ for i in range(5): # Run a number of times since we're using random test data out_tree = EtreeUtils.getRandomElementTree(max_children=5, max_depth=5, with_text=True, max_attr=3, with_tail=False) EtreeUtils.prettifyElement(out_tree) temp_file = "random_etree.xml" ofile = open(temp_file,'wb') ET.ElementTree(out_tree).write(ofile, encoding="utf-8", xml_declaration=True) ofile.close() ifile = open(temp_file) in_tree = ET.XML(ifile.read()) ifile.close() # check_file = "random_etree_parsed.xml" # ofile = open(check_file,"wb") # ET.ElementTree(in_tree).write(ofile, encoding="utf-8", xml_declaration=True) # ofile.close() self.assertTrue(EtreeUtils.areElementsEqual(out_tree,in_tree)) os.remove(temp_file)