From 2164cd00ecdb61774d05f5f278078a28c926779f Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Mon, 24 Dec 2012 02:11:32 +0000 Subject: [PATCH] [1.5.x] Fixed HTML comparisons of class="foo bar" and class="bar foo" in tests Refs #17758 Backport of 8bc410b44536e03ee38a0087256faf367dd98dd9 from master --- django/test/html.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/django/test/html.py b/django/test/html.py index 274810cab4..2f6e4c9481 100644 --- a/django/test/html.py +++ b/django/test/html.py @@ -182,6 +182,14 @@ class Parser(HTMLParser): self.handle_endtag(tag) def handle_starttag(self, tag, attrs): + # Special case handling of 'class' attribute, so that comparisons of DOM + # instances are not sensitive to ordering of classes. + attrs = [ + (name, " ".join(sorted(value.split(" ")))) + if name == "class" + else (name, value) + for name, value in attrs + ] element = Element(tag, attrs) self.current.append(element) if tag not in self.SELF_CLOSING_TAGS: