diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2011-10-23 15:19:09 +0000 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2011-10-23 15:19:09 +0000 |
| commit | 965c5d7cced0d2e09f5b0c3165c192ab4334331b (patch) | |
| tree | cfa0750be06f673bd53ed4abaedb81f982372769 | |
| parent | 59c051d1707ec1c32256193221b6ee2e3e533be5 (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.py | 4 | ||||
| -rw-r--r-- | tests/regressiontests/utils/feedgenerator.py | 13 |
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) |
