Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed assertXMLEqual when first node was a comment

  • Loading branch information...
commit 6b0a836c9c4a311440c2259af9c689933e70703a 1 parent 1636b03
@claudep claudep authored
Showing with 16 additions and 5 deletions.
  1. +11 −5 django/test/utils.py
  2. +5 −0 tests/regressiontests/test_utils/tests.py
View
16 django/test/utils.py
@@ -227,9 +227,10 @@ def disable(self):
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
"""
@@ -267,6 +268,11 @@ def check_element(want_element, got_element):
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')
@@ -279,8 +285,8 @@ def check_element(want_element, got_element):
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)
View
5 tests/regressiontests/test_utils/tests.py
@@ -484,6 +484,11 @@ def test_parsing_errors(self):
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']
Please sign in to comment.
Something went wrong with that request. Please try again.