Hello community, here is the log from the commit of package python-feedparser for openSUSE:Factory checked in at 2012-06-13 13:32:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-feedparser (Old) and /work/SRC/openSUSE:Factory/.python-feedparser.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-feedparser", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/python-feedparser/python-feedparser.changes 2012-03-29 14:05:03.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-feedparser.new/python-feedparser.changes 2012-06-13 13:32:49.000000000 +0200 @@ -1,0 +2,14 @@ +Sat Jun 9 23:56:05 UTC 2012 - [email protected] + +- Update to 5.1.2: + * Minor changes to the documentation + * Strip potentially dangerous ENTITY declarations in encoded feeds + * feedparser will now try to continue parsing despite compression errors + * Fix issue 321 a little more (the initial fix missed a code path) + * Issue 337 (`_parse_date_rfc822()` returns None on single-digit days) + * Issue 343 (add magnet links to the ACCEPTABLE_URI_SCHEMES) + * Issue 344 (handle deflated data with no headers nor checksums) + * Issue 347 (support `itunes:image` elements with a `url` attribute) +- Remove now-unneeded chmod of README + +------------------------------------------------------------------- Old: ---- feedparser-5.1.1.tar.bz2 New: ---- feedparser-5.1.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-feedparser.spec ++++++ --- /var/tmp/diff_new_pack.W82zWd/_old 2012-06-13 13:32:52.000000000 +0200 +++ /var/tmp/diff_new_pack.W82zWd/_new 2012-06-13 13:32:52.000000000 +0200 @@ -16,9 +16,8 @@ # - Name: python-feedparser -Version: 5.1.1 +Version: 5.1.2 Release: 0 Summary: Universal Feed Parser Module for Python License: BSD-2-Clause @@ -42,13 +41,11 @@ %prep %setup -q -n feedparser-%{version} -chmod 0644 README # Fix executable bits %build python setup.py build %if 0%{?suse_version} > 1010 - %check cd feedparser && python feedparsertest.py %endif @@ -57,7 +54,7 @@ python setup.py install --prefix=%{_prefix} --root=%{buildroot} %files -%defattr(-,root,root,-) +%defattr(-,root,root) %doc LICENSE NEWS README %{python_sitelib}/* ++++++ feedparser-5.1.1.tar.bz2 -> feedparser-5.1.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/NEWS new/feedparser-5.1.2/NEWS --- old/feedparser-5.1.1/NEWS 2012-03-20 16:07:12.000000000 +0100 +++ new/feedparser-5.1.2/NEWS 2012-05-03 15:43:47.000000000 +0200 @@ -1,3 +1,13 @@ +5.1.2 - May 3, 2012 + * Minor changes to the documentation + * Strip potentially dangerous ENTITY declarations in encoded feeds + * feedparser will now try to continue parsing despite compression errors + * Fix issue 321 a little more (the initial fix missed a code path) + * Issue 337 (`_parse_date_rfc822()` returns None on single-digit days) + * Issue 343 (add magnet links to the ACCEPTABLE_URI_SCHEMES) + * Issue 344 (handle deflated data with no headers nor checksums) + * Issue 347 (support `itunes:image` elements with a `url` attribute) + 5.1.1 - March 20, 2011 * Fix mistakes, typos, and bugs in the unit test code * Fix crash in Python 2.4 and 2.5 if the feed has a UTF_32 byte order mark diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/PKG-INFO new/feedparser-5.1.2/PKG-INFO --- old/feedparser-5.1.1/PKG-INFO 2012-03-20 16:36:07.000000000 +0100 +++ new/feedparser-5.1.2/PKG-INFO 2012-05-03 15:57:53.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: feedparser -Version: 5.1.1 +Version: 5.1.2 Summary: Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds Home-page: http://code.google.com/p/feedparser/ Author: Kurt McKee diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/docs/common-rss-elements.rst new/feedparser-5.1.2/docs/common-rss-elements.rst --- old/feedparser-5.1.1/docs/common-rss-elements.rst 2012-02-16 08:29:25.000000000 +0100 +++ new/feedparser-5.1.2/docs/common-rss-elements.rst 2012-05-03 15:36:49.000000000 +0200 @@ -2,8 +2,8 @@ =============================================== The most commonly used elements in :abbr:`RSS (Rich Site Summary)` feeds -(regardless of version) are title, link, description, modified date, and entry -ID. The modified date comes from the pubDate element, and the entry ID comes +(regardless of version) are title, link, description, publication date, and entry +ID. The publication date comes from the pubDate element, and the entry ID comes from the guid element. This sample :abbr:`RSS (Rich Site Summary)` feed is at @@ -18,7 +18,7 @@ <title>Sample Feed</title> <description>For documentation <em>only</em></description> <link>http://example.org/</link> - <pubDate>Sat, 07 Sep 2002 0:00:01 GMT</pubDate> + <pubDate>Sat, 07 Sep 2002 00:00:01 GMT</pubDate> <!-- other elements omitted from this example --> <item> <title>First entry title</title> @@ -26,7 +26,7 @@ <description>Watch out for <span style="background-image: url(javascript:window.location='http://example.org/')">nasty tricks</span></description> - <pubDate>Sat, 07 Sep 2002 0:00:01 GMT</pubDate> + <pubDate>Thu, 05 Sep 2002 00:00:01 GMT</pubDate> <guid>http://example.org/entry/3</guid> <!-- other elements omitted from this example --> </item> @@ -49,9 +49,9 @@ u'http://example.org/' >>> d.feed.description u'For documentation <em>only</em>' - >>> d.feed.date - u'Sat, 07 Sep 2002 0:00:01 GMT' - >>> d.feed.date_parsed + >>> d.feed.published + u'Sat, 07 Sep 2002 00:00:01 GMT' + >>> d.feed.published_parsed (2002, 9, 7, 0, 0, 1, 5, 250, 0) @@ -70,9 +70,9 @@ u'http://example.org/item/1' >>> d.entries[0].description u'Watch out for <span>nasty tricks</span>' - >>> d.entries[0].date - u'Thu, 05 Sep 2002 0:00:01 GMT' - >>> d.entries[0].date_parsed + >>> d.entries[0].published + u'Thu, 05 Sep 2002 00:00:01 GMT' + >>> d.entries[0].published_parsed (2002, 9, 5, 0, 0, 1, 3, 248, 0) >>> d.entries[0].id u'http://example.org/guid/1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/docs/conf.py new/feedparser-5.1.2/docs/conf.py --- old/feedparser-5.1.1/docs/conf.py 2012-03-20 16:07:29.000000000 +0100 +++ new/feedparser-5.1.2/docs/conf.py 2012-05-03 15:44:10.000000000 +0200 @@ -1,8 +1,8 @@ # project information project = u'feedparser' copyright = u'2004-8, Mark Pilgrim' -version = u'5.1.1' -release = u'5.1.1' +version = u'5.1.2' +release = u'5.1.2' language = u'en' # documentation options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/feedparser.egg-info/PKG-INFO new/feedparser-5.1.2/feedparser/feedparser.egg-info/PKG-INFO --- old/feedparser-5.1.1/feedparser/feedparser.egg-info/PKG-INFO 2012-03-20 16:36:02.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/feedparser.egg-info/PKG-INFO 2012-05-03 15:57:48.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: feedparser -Version: 5.1.1 +Version: 5.1.2 Summary: Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds Home-page: http://code.google.com/p/feedparser/ Author: Kurt McKee diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/feedparser.egg-info/SOURCES.txt new/feedparser-5.1.2/feedparser/feedparser.egg-info/SOURCES.txt --- old/feedparser-5.1.1/feedparser/feedparser.egg-info/SOURCES.txt 2012-03-20 16:36:03.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/feedparser.egg-info/SOURCES.txt 2012-05-03 15:57:49.000000000 +0200 @@ -133,9 +133,10 @@ feedparser/feedparser.egg-info/SOURCES.txt feedparser/feedparser.egg-info/dependency_links.txt feedparser/feedparser.egg-info/top_level.txt -feedparser/tests/compression/deflate-error.z +feedparser/tests/compression/deflate-no-headers.z +feedparser/tests/compression/deflate-not-compressed.z feedparser/tests/compression/deflate.z -feedparser/tests/compression/gzip-not-gzipped.gz +feedparser/tests/compression/gzip-not-compressed.gz feedparser/tests/compression/gzip-struct-error.gz feedparser/tests/compression/gzip.gz feedparser/tests/compression/sample.xml @@ -1402,6 +1403,7 @@ feedparser/tests/wellformed/itunes/itunes_channel_explicit_whitespace.xml feedparser/tests/wellformed/itunes/itunes_channel_image.xml feedparser/tests/wellformed/itunes/itunes_channel_image_no_href.xml +feedparser/tests/wellformed/itunes/itunes_channel_image_url.xml feedparser/tests/wellformed/itunes/itunes_channel_keywords.xml feedparser/tests/wellformed/itunes/itunes_channel_keywords_duplicate.xml feedparser/tests/wellformed/itunes/itunes_channel_keywords_duplicate_2.xml @@ -1431,6 +1433,7 @@ feedparser/tests/wellformed/itunes/itunes_item_explicit_uppercase.xml feedparser/tests/wellformed/itunes/itunes_item_explicit_whitespace.xml feedparser/tests/wellformed/itunes/itunes_item_image.xml +feedparser/tests/wellformed/itunes/itunes_item_image_url.xml feedparser/tests/wellformed/itunes/itunes_item_link_image.xml feedparser/tests/wellformed/itunes/itunes_item_subtitle.xml feedparser/tests/wellformed/itunes/itunes_item_summary.xml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/feedparser.py new/feedparser-5.1.2/feedparser/feedparser.py --- old/feedparser-5.1.1/feedparser/feedparser.py 2012-03-20 16:08:21.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/feedparser.py 2012-05-03 15:44:03.000000000 +0200 @@ -9,7 +9,7 @@ Recommended: iconv_codec <http://cjkpython.i18n.org/> """ -__version__ = "5.1.1" +__version__ = "5.1.2" __license__ = """ Copyright (c) 2010-2012 Kurt McKee <[email protected]> Copyright (c) 2002-2008 Mark Pilgrim @@ -131,9 +131,10 @@ # https://secure.wikimedia.org/wikipedia/en/wiki/URI_scheme # Many more will likely need to be added! ACCEPTABLE_URI_SCHEMES = ( - 'file', 'ftp', 'gopher', 'h323', 'hdl', 'http', 'https', 'imap', 'mailto', - 'mms', 'news', 'nntp', 'prospero', 'rsync', 'rtsp', 'rtspu', 'sftp', - 'shttp', 'sip', 'sips', 'snews', 'svn', 'svn+ssh', 'telnet', 'wais', + 'file', 'ftp', 'gopher', 'h323', 'hdl', 'http', 'https', 'imap', 'magnet', + 'mailto', 'mms', 'news', 'nntp', 'prospero', 'rsync', 'rtsp', 'rtspu', + 'sftp', 'shttp', 'sip', 'sips', 'snews', 'svn', 'svn+ssh', 'telnet', + 'wais', # Additional common-but-unofficial schemes 'aim', 'callto', 'cvs', 'facetime', 'feed', 'git', 'gtalk', 'irc', 'ircs', 'irc6', 'itms', 'mms', 'msnim', 'skype', 'ssh', 'smb', 'svn', 'ymsg', @@ -1721,6 +1722,8 @@ self.push('itunes_image', 0) if attrsD.get('href'): self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) + elif attrsD.get('url'): + self._getContext()['image'] = FeedParserDict({'href': attrsD.get('url')}) _start_itunes_link = _start_itunes_image def _end_itunes_block(self): @@ -2554,7 +2557,7 @@ self.baseuri = baseuri def resolveURI(self, uri): - return _makeSafeAbsoluteURI(_urljoin(self.baseuri, uri.strip())) + return _makeSafeAbsoluteURI(self.baseuri, uri.strip()) def unknown_starttag(self, tag, attrs): attrs = self.normalize_attrs(attrs) @@ -3009,11 +3012,14 @@ # try to open with native open function (if url_file_stream_or_string is a filename) try: return open(url_file_stream_or_string, 'rb') - except (IOError, UnicodeEncodeError): + except (IOError, UnicodeEncodeError, TypeError): # if url_file_stream_or_string is a unicode object that # cannot be converted to the encoding returned by # sys.getfilesystemencoding(), a UnicodeEncodeError # will be thrown + # If url_file_stream_or_string is a string that contains NULL + # (such as an XML document encoded in UTF-32), TypeError will + # be thrown. pass # treat url_file_stream_or_string as string @@ -3451,7 +3457,7 @@ _rfc822_month = "(?P<month>%s)(?:[a-z]*,?)" % ('|'.join(_rfc822_months)) # The year may be 2 or 4 digits; capture the century if it exists _rfc822_year = "(?P<year>(?:\d{2})?\d{2})" -_rfc822_day = "(?P<day>\d{2})" +_rfc822_day = "(?P<day> *\d{1,2})" _rfc822_date = "%s %s %s" % (_rfc822_day, _rfc822_month, _rfc822_year) _rfc822_hour = "(?P<hour>\d{2}):(?P<minute>\d{2})(?::(?P<second>\d{2}))?" @@ -3821,22 +3827,25 @@ try: data = gzip.GzipFile(fileobj=_StringIO(data)).read() except (IOError, struct.error), e: - # IOError can occur if the gzip header is bad - # struct.error can occur if the data is damaged - # Some feeds claim to be gzipped but they're not, so - # we get garbage. Ideally, we should re-request the - # feed without the 'Accept-encoding: gzip' header, - # but we don't. + # IOError can occur if the gzip header is bad. + # struct.error can occur if the data is damaged. result['bozo'] = 1 result['bozo_exception'] = e - data = None + if isinstance(e, struct.error): + # A gzip header was found but the data is corrupt. + # Ideally, we should re-request the feed without the + # 'Accept-encoding: gzip' header, but we don't. + data = None elif zlib and 'deflate' in http_headers.get('content-encoding', ''): try: data = zlib.decompress(data) except zlib.error, e: - result['bozo'] = 1 - result['bozo_exception'] = e - data = None + try: + # The data may have no headers and no checksum. + data = zlib.decompress(data, -15) + except zlib.error, e: + result['bozo'] = 1 + result['bozo_exception'] = e # save HTTP headers if http_headers: @@ -3880,9 +3889,6 @@ result['bozo'] = 1 result['bozo_exception'] = NonXMLContentType(bozo_message) - if data is not None: - result['version'], data, entities = _stripDoctype(data) - # ensure that baseuri is an absolute uri using an acceptable URI scheme contentloc = http_headers.get('content-location', u'') href = result.get('href', u'') @@ -3977,6 +3983,8 @@ (result['encoding'], proposed_encoding)) result['encoding'] = proposed_encoding + result['version'], data, entities = _stripDoctype(data) + if not _XML_AVAILABLE: use_strict_parser = 0 if use_strict_parser: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/feedparsertest.py new/feedparser-5.1.2/feedparser/feedparsertest.py --- old/feedparser-5.1.1/feedparser/feedparsertest.py 2012-02-22 09:46:03.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/feedparsertest.py 2012-05-03 15:36:31.000000000 +0200 @@ -86,6 +86,7 @@ headers = {'Content-Encoding': 'gzip'} else: headers = {'Content-Encoding': 'deflate'} + headers['Content-type'] = 'application/xml' else: headers = dict([(k.decode('utf-8'), v.decode('utf-8').strip()) for k, v in self.headers_re.findall(open(path, 'rb').read())]) f = open(path, 'rb') @@ -252,7 +253,19 @@ pass class TestEncodings(BaseTestCase): - pass + def test_doctype_replacement(self): + "Ensure that non-ASCII-compatible encodings don't hide " \ + "disallowed ENTITY declarations" + doc = """<?xml version="1.0" encoding="utf-16be"?> + <!DOCTYPE feed [ + <!ENTITY exponential1 "bogus "> + <!ENTITY exponential2 "&exponential1;&exponential1;"> + <!ENTITY exponential3 "&exponential2;&exponential2;"> + ]> + <feed><title type="html">&exponential3;</title></feed>""" + doc = codecs.BOM_UTF16_BE + doc.encode('utf-16be') + result = feedparser.parse(doc) + self.assertEqual(result['feed']['title'], u'&exponential3') class TestFeedParserDict(unittest.TestCase): "Ensure that FeedParserDict returns values as expected and won't crash" @@ -375,6 +388,7 @@ test_abs = _mktest(u'https://s.test/', u'https://s.test/', 'absolute uri') test_rel = _mktest(u'/new', u'http://d.test/new', 'relative uri') test_bad = _mktest(u'x://bad.test/', u'', 'unacceptable uri protocol') + test_mag = _mktest(u'magnet:?xt=a', u'magnet:?xt=a', 'magnet uri') def test_catch_ValueError(self): 'catch ValueError in Python 2.7 and up' @@ -410,10 +424,11 @@ def test_gzip_good(self): f = feedparser.parse('http://localhost:8097/tests/compression/gzip.gz') self.assertEqual(f.version, 'atom10') - def test_gzip_not_gzipped(self): - f = feedparser.parse('http://localhost:8097/tests/compression/gzip-not-gzipped.gz') + def test_gzip_not_compressed(self): + f = feedparser.parse('http://localhost:8097/tests/compression/gzip-not-compressed.gz') self.assertEqual(f.bozo, 1) self.assertTrue(isinstance(f.bozo_exception, IOError)) + self.assertEqual(f['feed']['title'], 'gzip') def test_gzip_struct_error(self): f = feedparser.parse('http://localhost:8097/tests/compression/gzip-struct-error.gz') self.assertEqual(f.bozo, 1) @@ -421,10 +436,14 @@ def test_zlib_good(self): f = feedparser.parse('http://localhost:8097/tests/compression/deflate.z') self.assertEqual(f.version, 'atom10') - def test_zlib_bad(self): - f = feedparser.parse('http://localhost:8097/tests/compression/deflate-error.z') + def test_zlib_no_headers(self): + f = feedparser.parse('http://localhost:8097/tests/compression/deflate-no-headers.z') + self.assertEqual(f.version, 'atom10') + def test_zlib_not_compressed(self): + f = feedparser.parse('http://localhost:8097/tests/compression/deflate-not-compressed.z') self.assertEqual(f.bozo, 1) self.assertTrue(isinstance(f.bozo_exception, zlib.error)) + self.assertEqual(f['feed']['title'], 'deflate') class TestHTTPStatus(unittest.TestCase): "Test HTTP redirection and other status codes" @@ -548,6 +567,7 @@ (u'Thu, 01 Jan 0100 00:00:01 +0100', (99, 12, 31, 23, 0, 1, 3, 365, 0)), # ancient date (u'Thu, 01 Jan 04 19:48:21 GMT', (2004, 1, 1, 19, 48, 21, 3, 1, 0)), # 2-digit year (u'Thu, 01 Jan 2004 19:48:21 GMT', (2004, 1, 1, 19, 48, 21, 3, 1, 0)), # 4-digit year + (u'Thu, 5 Apr 2012 10:00:00 GMT', (2012, 4, 5, 10, 0, 0, 3, 96, 0)), # 1-digit day (u'Wed, 19 Aug 2009 18:28:00 Etc/GMT', (2009, 8, 19, 18, 28, 0, 2, 231, 0)), # etc/gmt timezone (u'Wed, 19 Feb 2012 22:40:00 GMT-01:01', (2012, 2, 19, 23, 41, 0, 6, 50, 0)), # gmt+hh:mm timezone (u'Mon, 13 Feb, 2012 06:28:00 UTC', (2012, 2, 13, 6, 28, 0, 0, 44, 0)), # extraneous comma @@ -718,7 +738,7 @@ # there are several compression test cases that must be accounted for # as well as a number of http status tests that redirect to a target # and a few `_open_resource`-related tests - httpcount = 5 + 17 + 2 + httpcount = 6 + 17 + 2 httpcount += len([f for f in allfiles if 'http' in f]) httpcount += len([f for f in wellformedfiles if 'http' in f]) httpcount += len([f for f in illformedfiles if 'http' in f]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/tests/compression/deflate-error.z new/feedparser-5.1.2/feedparser/tests/compression/deflate-error.z --- old/feedparser-5.1.1/feedparser/tests/compression/deflate-error.z 2012-02-16 07:50:59.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/tests/compression/deflate-error.z 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -error \ No newline at end of file Files old/feedparser-5.1.1/feedparser/tests/compression/deflate-no-headers.z and new/feedparser-5.1.2/feedparser/tests/compression/deflate-no-headers.z differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/tests/compression/deflate-not-compressed.z new/feedparser-5.1.2/feedparser/tests/compression/deflate-not-compressed.z --- old/feedparser-5.1.1/feedparser/tests/compression/deflate-not-compressed.z 1970-01-01 01:00:00.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/tests/compression/deflate-not-compressed.z 2012-04-19 06:25:48.000000000 +0200 @@ -0,0 +1 @@ +<feed><title>deflate</title></feed> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/tests/compression/gzip-not-compressed.gz new/feedparser-5.1.2/feedparser/tests/compression/gzip-not-compressed.gz --- old/feedparser-5.1.1/feedparser/tests/compression/gzip-not-compressed.gz 1970-01-01 01:00:00.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/tests/compression/gzip-not-compressed.gz 2012-04-19 06:28:18.000000000 +0200 @@ -0,0 +1 @@ +<feed><title>gzip</title></feed> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/tests/compression/gzip-not-gzipped.gz new/feedparser-5.1.2/feedparser/tests/compression/gzip-not-gzipped.gz --- old/feedparser-5.1.1/feedparser/tests/compression/gzip-not-gzipped.gz 2012-02-16 07:50:59.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/tests/compression/gzip-not-gzipped.gz 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -error \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/tests/wellformed/itunes/itunes_channel_image_url.xml new/feedparser-5.1.2/feedparser/tests/wellformed/itunes/itunes_channel_image_url.xml --- old/feedparser-5.1.1/feedparser/tests/wellformed/itunes/itunes_channel_image_url.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/tests/wellformed/itunes/itunes_channel_image_url.xml 2012-04-26 04:17:42.000000000 +0200 @@ -0,0 +1,9 @@ +<!-- +Description: iTunes channel image (incorrectly using url attribute) +Expect: not bozo and feed['image']['href'] == u'http://a.b/i.png' +--> +<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"> +<channel> + <itunes:image url="http://a.b/i.png"></itunes:image> +</channel> +</rss> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/feedparser/tests/wellformed/itunes/itunes_item_image_url.xml new/feedparser-5.1.2/feedparser/tests/wellformed/itunes/itunes_item_image_url.xml --- old/feedparser-5.1.1/feedparser/tests/wellformed/itunes/itunes_item_image_url.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/feedparser-5.1.2/feedparser/tests/wellformed/itunes/itunes_item_image_url.xml 2012-04-26 04:17:42.000000000 +0200 @@ -0,0 +1,11 @@ +<!-- +Description: iTunes item image (incorrectly using url attribute) +Expect: not bozo and entries[0]['image']['href'] == u'http://a.b/i.png' +--> +<rss xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"> +<channel> +<item> + <itunes:image url="http://a.b/i.png"></itunes:image> +</item> +</channel> +</rss> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-5.1.1/setup.py new/feedparser-5.1.2/setup.py --- old/feedparser-5.1.1/setup.py 2012-03-20 16:08:07.000000000 +0100 +++ new/feedparser-5.1.2/setup.py 2012-05-03 15:48:09.000000000 +0200 @@ -7,7 +7,7 @@ setup( name = 'feedparser', - version = '5.1.1', + version = '5.1.2', description = 'Universal feed parser, handles RSS 0.9x, RSS 1.0, ' 'RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds', author = 'Kurt McKee', -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
