summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Mayer <entroP@gmail.com>2016-08-11 17:57:37 -0600
committerGitHub <noreply@github.com>2016-08-11 17:57:37 -0600
commit5b75ad380d3583081684932b30182bba7eb2db44 (patch)
tree3de0e9d7de9a278f51bafe45cc8e022e58e04892
parent5d54cf0af3c3b5ba5ac2791c06720cacf7b16ac1 (diff)
parent87ff59c2b5c9bf727f79cdad5b5660f53311f8ef (diff)
downloadfeedgenerator-5b75ad380d3583081684932b30182bba7eb2db44.tar.gz
Merge pull request #7 from Scheirle/updatedate
Always set the 'updated' element of an 'entry' in Atom Feeds
-rw-r--r--feedgenerator/django/utils/feedgenerator.py6
-rw-r--r--tests_feedgenerator/test_feedgenerator.py11
2 files changed, 13 insertions, 4 deletions
diff --git a/feedgenerator/django/utils/feedgenerator.py b/feedgenerator/django/utils/feedgenerator.py
index d89c136..0da6ab1 100644
--- a/feedgenerator/django/utils/feedgenerator.py
+++ b/feedgenerator/django/utils/feedgenerator.py
@@ -349,10 +349,14 @@ class Atom1Feed(SyndicationFeed):
def add_item_elements(self, handler, item):
handler.addQuickElement("title", item['title'])
handler.addQuickElement("link", "", {"href": item['link'], "rel": "alternate"})
+
+ updateddate = datetime.datetime.now()
if item['pubdate'] is not None:
handler.addQuickElement("published", rfc3339_date(item['pubdate']))
+ updateddate = item['pubdate']
if item['updateddate'] is not None:
- handler.addQuickElement("updated", rfc3339_date(item['updateddate']))
+ updateddate = item['updateddate']
+ handler.addQuickElement("updated", rfc3339_date(updateddate))
# Author information.
if item['author_name'] is not None:
diff --git a/tests_feedgenerator/test_feedgenerator.py b/tests_feedgenerator/test_feedgenerator.py
index c02a555..95fa0cd 100644
--- a/tests_feedgenerator/test_feedgenerator.py
+++ b/tests_feedgenerator/test_feedgenerator.py
@@ -8,6 +8,7 @@ except ImportError:
import unittest
import six
+import datetime
import feedgenerator
@@ -26,6 +27,7 @@ FIXT_ITEM = dict(
link="http://www.holovaty.com/test/",
description="Testing.",
content="Full content of our testing entry.",
+ pubdate=datetime.datetime(2016,8,11,0,0,0,0),
)
@@ -34,10 +36,10 @@ EXPECTED_RESULT_RSS = """<?xml version="1.0" encoding="utf-8"?>
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.
- </description><language>en</language><lastBuildDate>%DATE%</lastBuildDate><item><title>Hello</title><link>http://www.holovaty.com/test/</link><description>Testing.</description></item></channel></rss>"""
+ </description><language>en</language><lastBuildDate>%DATE%</lastBuildDate><item><title>Hello</title><link>http://www.holovaty.com/test/</link><description>Testing.</description><pubDate>Thu, 11 Aug 2016 00:00:00 -0000</pubDate></item></channel></rss>"""
EXPECTED_RESULT_ATOM = """<?xml version="1.0" encoding="utf-8"?>
-<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Poynter E-Media Tidbits</title><link href="http://www.poynter.org/column.asp?id=31" rel="alternate"></link><id>http://www.poynter.org/column.asp?id=31</id><updated>%DATE%</updated><entry><title>Hello</title><link href="http://www.holovaty.com/test/" rel="alternate"></link><id>tag:www.holovaty.com:/test/</id><summary type="html">Testing.</summary><content type="html">Full content of our testing entry.</content></entry></feed>"""
+<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Poynter E-Media Tidbits</title><link href="http://www.poynter.org/column.asp?id=31" rel="alternate"></link><id>http://www.poynter.org/column.asp?id=31</id><updated>%DATE%</updated><entry><title>Hello</title><link href="http://www.holovaty.com/test/" rel="alternate"></link><published>2016-08-11T00:00:00Z</published><updated>2016-08-11T00:00:00Z</updated><id>tag:www.holovaty.com,2016-08-11:/test/</id><summary type="html">Testing.</summary><content type="html">Full content of our testing entry.</content></entry></feed>"""
ENCODING = 'utf-8'
@@ -71,7 +73,10 @@ class TestFeedGenerator(unittest.TestCase):
for k, v in FIXT_FEED.items():
self.assertEqual(type(v), ty)
for k, v in FIXT_ITEM.items():
- self.assertEqual(type(v), ty)
+ if k == "pubdate" or k == "updateddate":
+ self.assertEqual(type(v), datetime.datetime)
+ else:
+ self.assertEqual(type(v), ty)
self.assertEqual(type(EXPECTED_RESULT_RSS), ty)
def test_001_string_results_rss(self):