Fixed assertXMLEqual when first node was a comment
This commit is contained in:
parent
1636b03382
commit
6b0a836c9c
|
@ -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):
|
||||||
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):
|
||||||
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):
|
||||||
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']
|
||||||
|
|
Loading…
Reference in New Issue