diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py index 06008d36e8..856c164d81 100644 --- a/django/utils/feedgenerator.py +++ b/django/utils/feedgenerator.py @@ -52,10 +52,16 @@ def get_tag_uri(url, date): See http://diveintomark.org/archives/2004/05/28/howto-atom-id """ url_split = urlparse.urlparse(url) + + # Python 2.4 didn't have named attributes on split results or the hostname. + hostname = getattr(url_split, 'hostname', url_split[1].split(':')[0]) + path = url_split[2] + fragment = url_split[5] + d = '' if date is not None: d = ',%s' % date.strftime('%Y-%m-%d') - return u'tag:%s%s:%s/%s' % (url_split.hostname, d, url_split.path, url_split.fragment) + return u'tag:%s%s:%s/%s' % (hostname, d, path, fragment) class SyndicationFeed(object): "Base class for all syndication feeds. Subclasses should provide write()" diff --git a/tests/regressiontests/test_client_regress/models.py b/tests/regressiontests/test_client_regress/models.py index f3585268b3..9b40591a73 100644 --- a/tests/regressiontests/test_client_regress/models.py +++ b/tests/regressiontests/test_client_regress/models.py @@ -606,7 +606,7 @@ class ContextTests(TestCase): response.context['does-not-exist'] self.fail('Should not be able to retrieve non-existent key') except KeyError, e: - self.assertEquals(e.message, 'does-not-exist') + self.assertEquals(e.args[0], 'does-not-exist') def test_inherited_context(self): "Context variables can be retrieved from a list of contexts" @@ -621,7 +621,7 @@ class ContextTests(TestCase): response.context['does-not-exist'] self.fail('Should not be able to retrieve non-existent key') except KeyError, e: - self.assertEquals(e.message, 'does-not-exist') + self.assertEquals(e.args[0], 'does-not-exist') class SessionTests(TestCase):