summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Makowski <dmakowski@gmx.net>2013-04-05 22:23:51 -0700
committerDirk Makowski <dmakowski@gmx.net>2013-04-05 22:23:51 -0700
commit4e32ba3ed95422d09e544add05215c43458ea726 (patch)
tree9ce143a6b2957932126a7de8a1c1b320d2147aa6
parente49a429be4451995ae13a7bf71299f0ed41d8d04 (diff)
parent60ec738f2c0699b2babc7ff63eac0bece39bddfc (diff)
downloadfeedgenerator-4e32ba3ed95422d09e544add05215c43458ea726.tar.gz
Merge pull request #1 from avaris/attribute-order
sort attributes for consistent output
-rw-r--r--feedgenerator/django/utils/feedgenerator.py7
-rw-r--r--feedgenerator/django/utils/xmlutils.py9
-rw-r--r--tests_feedgenerator/test_feedgenerator.py2
-rw-r--r--tests_feedgenerator/test_stringio.py2
4 files changed, 12 insertions, 8 deletions
diff --git a/feedgenerator/django/utils/feedgenerator.py b/feedgenerator/django/utils/feedgenerator.py
index 6ef46de..e8e4d87 100644
--- a/feedgenerator/django/utils/feedgenerator.py
+++ b/feedgenerator/django/utils/feedgenerator.py
@@ -24,7 +24,6 @@ http://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004/
from __future__ import unicode_literals
import datetime
-import collections
try:
from urllib.parse import urlparse
except ImportError: # Python 2
@@ -221,10 +220,8 @@ class RssFeed(SyndicationFeed):
handler.endElement("rss")
def rss_attributes(self):
- d = collections.OrderedDict()
- d["xmlns:atom"] = "http://www.w3.org/2005/Atom"
- d["version"] = self._version
- return d
+ return {'xmlns:atom': 'http://www.w3.org/2005/Atom',
+ 'version': self._version}
def write_items(self, handler):
for item in self.items:
diff --git a/feedgenerator/django/utils/xmlutils.py b/feedgenerator/django/utils/xmlutils.py
index a1eb5fb..0ee81aa 100644
--- a/feedgenerator/django/utils/xmlutils.py
+++ b/feedgenerator/django/utils/xmlutils.py
@@ -2,7 +2,7 @@
Utilities for XML generation/parsing.
"""
-from xml.sax.saxutils import XMLGenerator
+from xml.sax.saxutils import XMLGenerator, quoteattr
class SimplerXMLGenerator(XMLGenerator):
def addQuickElement(self, name, contents=None, attrs=None):
@@ -12,3 +12,10 @@ class SimplerXMLGenerator(XMLGenerator):
if contents is not None:
self.characters(contents)
self.endElement(name)
+
+ def startElement(self, name, attrs):
+ self._write('<' + name)
+ # sort attributes for consistent output
+ for (name, value) in sorted(attrs.items()):
+ self._write(' %s=%s' % (name, quoteattr(value)))
+ self._write('>')
diff --git a/tests_feedgenerator/test_feedgenerator.py b/tests_feedgenerator/test_feedgenerator.py
index fc6b66f..bce5dd4 100644
--- a/tests_feedgenerator/test_feedgenerator.py
+++ b/tests_feedgenerator/test_feedgenerator.py
@@ -29,7 +29,7 @@ FIXT_ITEM = dict(
EXPECTED_RESULT = """<?xml version="1.0" encoding="utf-8"?>
-<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Poynter E-Media Tidbits</title><link>http://www.poynter.org/column.asp?id=31</link><description>A group Weblog by the sharpest minds in online media/journalism/publishing.
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Poynter E-Media Tidbits</title><link>http://www.poynter.org/column.asp?id=31</link><description>A group Weblog by the sharpest minds in online media/journalism/publishing.
Umlauts: äöüßÄÖÜ
Chinese: 老师是四十四,是不是?
Finnish: Mustan kissan paksut posket. (ah, no special chars) Kärpänen sanoi kärpäselle: tuu kattoon kattoon ku kaveri tapettiin tapettiin.
diff --git a/tests_feedgenerator/test_stringio.py b/tests_feedgenerator/test_stringio.py
index 5ba56a8..e6a1785 100644
--- a/tests_feedgenerator/test_stringio.py
+++ b/tests_feedgenerator/test_stringio.py
@@ -15,7 +15,7 @@ ENCODING = 'utf-8'
S0 = 'hello world, Umlauts: äöüßÄÖÜ, Chinese: 四是四,十是十,十四是十四,四十是四十,四十四隻不識字之石獅子是死的'
S0_BYTES = 'fe fi foe fam'.encode(ENCODING)
-print("###", StringIO, "###")
+#print("###", StringIO, "###")
class TestStringIO(unittest.TestCase):