Kaydet (Commit) 6b0a836c authored tarafından Claude Paroz's avatar Claude Paroz

Fixed assertXMLEqual when first node was a comment

üst 1636b033
...@@ -227,9 +227,10 @@ class override_settings(object): ...@@ -227,9 +227,10 @@ class override_settings(object):
def compare_xml(want, got): def compare_xml(want, got):
"""Tries to do a 'xml-comparision' of want and got. Plain string """Tries to do a 'xml-comparison' of want and got. Plain string
comparision doesn't always work because, for example, attribute comparison doesn't always work because, for example, attribute
ordering should not be important. 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 Based on http://codespeak.net/svn/lxml/trunk/src/lxml/doctestcompare.py
""" """
...@@ -267,6 +268,11 @@ def compare_xml(want, got): ...@@ -267,6 +268,11 @@ def compare_xml(want, got):
return False return False
return True 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, got = strip_quotes(want, got)
want = want.replace('\\n','\n') want = want.replace('\\n','\n')
got = got.replace('\\n','\n') got = got.replace('\\n','\n')
...@@ -279,8 +285,8 @@ def compare_xml(want, got): ...@@ -279,8 +285,8 @@ def compare_xml(want, got):
got = wrapper % got got = wrapper % got
# Parse the want and got strings, and compare the parsings. # Parse the want and got strings, and compare the parsings.
want_root = parseString(want).firstChild want_root = first_node(parseString(want))
got_root = parseString(got).firstChild got_root = first_node(parseString(got))
return check_element(want_root, got_root) return check_element(want_root, got_root)
......
...@@ -484,6 +484,11 @@ class XMLEqualTests(TestCase): ...@@ -484,6 +484,11 @@ class XMLEqualTests(TestCase):
with self.assertRaises(AssertionError): with self.assertRaises(AssertionError):
self.assertXMLNotEqual(xml_unvalid, xml2) 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): class SkippingExtraTests(TestCase):
fixtures = ['should_not_be_loaded.json'] fixtures = ['should_not_be_loaded.json']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment