Loading django/test/utils.py +11 −5 Original line number Diff line number Diff line Loading @@ -227,9 +227,10 @@ class override_settings(object): def compare_xml(want, got): """Tries to do a 'xml-comparision' of want and got. Plain string comparision doesn't always work because, for example, attribute ordering should not be important. """Tries to do a 'xml-comparison' of want and got. Plain string comparison doesn't always work because, for example, attribute ordering should not be important. Comment nodes are not considered in the comparison. Based on http://codespeak.net/svn/lxml/trunk/src/lxml/doctestcompare.py """ Loading Loading @@ -267,6 +268,11 @@ def compare_xml(want, got): return False return True def first_node(document): for node in document.childNodes: if node.nodeType != Node.COMMENT_NODE: return node want, got = strip_quotes(want, got) want = want.replace('\\n','\n') got = got.replace('\\n','\n') Loading @@ -279,8 +285,8 @@ def compare_xml(want, got): got = wrapper % got # Parse the want and got strings, and compare the parsings. want_root = parseString(want).firstChild got_root = parseString(got).firstChild want_root = first_node(parseString(want)) got_root = first_node(parseString(got)) return check_element(want_root, got_root) Loading tests/regressiontests/test_utils/tests.py +5 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,11 @@ class XMLEqualTests(TestCase): with self.assertRaises(AssertionError): self.assertXMLNotEqual(xml_unvalid, xml2) def test_comment_root(self): xml1 = "<?xml version='1.0'?><!-- comment1 --><elem attr1='a' attr2='b' />" xml2 = "<?xml version='1.0'?><!-- comment2 --><elem attr2='b' attr1='a' />" self.assertXMLEqual(xml1, xml2) class SkippingExtraTests(TestCase): fixtures = ['should_not_be_loaded.json'] Loading Loading
django/test/utils.py +11 −5 Original line number Diff line number Diff line Loading @@ -227,9 +227,10 @@ class override_settings(object): def compare_xml(want, got): """Tries to do a 'xml-comparision' of want and got. Plain string comparision doesn't always work because, for example, attribute ordering should not be important. """Tries to do a 'xml-comparison' of want and got. Plain string comparison doesn't always work because, for example, attribute ordering should not be important. Comment nodes are not considered in the comparison. Based on http://codespeak.net/svn/lxml/trunk/src/lxml/doctestcompare.py """ Loading Loading @@ -267,6 +268,11 @@ def compare_xml(want, got): return False return True def first_node(document): for node in document.childNodes: if node.nodeType != Node.COMMENT_NODE: return node want, got = strip_quotes(want, got) want = want.replace('\\n','\n') got = got.replace('\\n','\n') Loading @@ -279,8 +285,8 @@ def compare_xml(want, got): got = wrapper % got # Parse the want and got strings, and compare the parsings. want_root = parseString(want).firstChild got_root = parseString(got).firstChild want_root = first_node(parseString(want)) got_root = first_node(parseString(got)) return check_element(want_root, got_root) Loading
tests/regressiontests/test_utils/tests.py +5 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,11 @@ class XMLEqualTests(TestCase): with self.assertRaises(AssertionError): self.assertXMLNotEqual(xml_unvalid, xml2) def test_comment_root(self): xml1 = "<?xml version='1.0'?><!-- comment1 --><elem attr1='a' attr2='b' />" xml2 = "<?xml version='1.0'?><!-- comment2 --><elem attr2='b' attr1='a' />" self.assertXMLEqual(xml1, xml2) class SkippingExtraTests(TestCase): fixtures = ['should_not_be_loaded.json'] Loading