summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2011-10-23 15:19:09 +0000
committerAymeric Augustin <aymeric.augustin@m4x.org>2011-10-23 15:19:09 +0000
commit965c5d7cced0d2e09f5b0c3165c192ab4334331b (patch)
treecfa0750be06f673bd53ed4abaedb81f982372769
parent59c051d1707ec1c32256193221b6ee2e3e533be5 (diff)
Fixed #14202 -- made the atom:link element optional in feeds.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17029 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/feedgenerator.py4
-rw-r--r--tests/regressiontests/utils/feedgenerator.py13
2 files changed, 16 insertions, 1 deletions
diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py
index aa3a729a8a..7d7c7af65c 100644
--- a/django/utils/feedgenerator.py
+++ b/django/utils/feedgenerator.py
@@ -224,7 +224,9 @@ class RssFeed(SyndicationFeed):
handler.addQuickElement(u"title", self.feed['title'])
handler.addQuickElement(u"link", self.feed['link'])
handler.addQuickElement(u"description", self.feed['description'])
- handler.addQuickElement(u"atom:link", None, {u"rel": u"self", u"href": self.feed['feed_url']})
+ if self.feed['feed_url'] is not None:
+ handler.addQuickElement(u"atom:link", None,
+ {u"rel": u"self", u"href": self.feed['feed_url']})
if self.feed['language'] is not None:
handler.addQuickElement(u"language", self.feed['language'])
for cat in self.feed['categories']:
diff --git a/tests/regressiontests/utils/feedgenerator.py b/tests/regressiontests/utils/feedgenerator.py
index dd20f02757..6b85abf89c 100644
--- a/tests/regressiontests/utils/feedgenerator.py
+++ b/tests/regressiontests/utils/feedgenerator.py
@@ -87,3 +87,16 @@ class FeedgeneratorTest(unittest.TestCase):
atom_feed.mime_type, "application/atom+xml; charset=utf-8"
)
+ # Two regression tests for #14202
+
+ def test_feed_without_feed_url_gets_rendered_without_atom_link(self):
+ feed = feedgenerator.Rss201rev2Feed('title', '/link/', 'descr')
+ self.assertEquals(feed.feed['feed_url'], None)
+ feed_content = feed.writeString('utf-8')
+ self.assertNotIn('<atom:link href=', feed_content)
+
+ def test_feed_with_feed_url_gets_rendered_with_atom_link(self):
+ feed = feedgenerator.Rss201rev2Feed('title', '/link/', 'descr', feed_url='/feed/')
+ self.assertEquals(feed.feed['feed_url'], '/feed/')
+ feed_content = feed.writeString('utf-8')
+ self.assertIn('<atom:link href="/feed/" rel="self"></atom:link>', feed_content)