Skip to content

Commit

Permalink
Fixed #14164 -- Ensure that sitemap priorities aren't rendered with l…
Browse files Browse the repository at this point in the history
…ocalized numerical formats. Thanks to dokterbob for the report, and vung for the draft patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13644 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
freakboy3742 committed Aug 27, 2010
1 parent 3f96a7a commit 46fab89
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 1 deletion.
2 changes: 1 addition & 1 deletion django/contrib/sitemaps/__init__.py
Expand Up @@ -69,7 +69,7 @@ def get_urls(self, page=1):
'location': loc, 'location': loc,
'lastmod': self.__get('lastmod', item, None), 'lastmod': self.__get('lastmod', item, None),
'changefreq': self.__get('changefreq', item, None), 'changefreq': self.__get('changefreq', item, None),
'priority': self.__get('priority', item, None) 'priority': str(self.__get('priority', item, ''))
} }
urls.append(url_info) urls.append(url_info)
return urls return urls
Expand Down
1 change: 1 addition & 0 deletions django/contrib/sitemaps/tests/__init__.py
@@ -0,0 +1 @@
from django.contrib.sitemaps.tests.basic import *
39 changes: 39 additions & 0 deletions django/contrib/sitemaps/tests/basic.py
@@ -0,0 +1,39 @@
from datetime import date
from django.conf import settings
from django.test import TestCase
from django.utils.formats import localize
from django.utils.translation import activate


class SitemapTests(TestCase):
urls = 'django.contrib.sitemaps.tests.urls'

def setUp(self):
self.old_USE_L10N = settings.USE_L10N

def tearDown(self):
settings.USE_L10N = self.old_USE_L10N

def test_simple_sitemap(self):
"A simple sitemap can be rendered"
# Retrieve the sitemap.
response = self.client.get('/sitemaps/sitemap.xml')
# Check for all the important bits:
self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>http://example.com/ticket14164</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url>
</urlset>
""" % date.today().strftime('%Y-%m-%d'))

def test_localized_priority(self):
"The priority value should not be localized (Refs #14164)"
# Localization should be active
settings.USE_L10N = True
activate('fr')
self.assertEqual(u'0,3', localize(0.3))

# Retrieve the sitemap. Check that priorities
# haven't been rendered in localized format
response = self.client.get('/sitemaps/sitemap.xml')
self.assertContains(response, '<priority>0.5</priority>')
self.assertContains(response, '<lastmod>%s</lastmod>' % date.today().strftime('%Y-%m-%d'))
20 changes: 20 additions & 0 deletions django/contrib/sitemaps/tests/urls.py
@@ -0,0 +1,20 @@
from datetime import datetime
from django.conf.urls.defaults import *
from django.contrib.sitemaps import Sitemap

class SimpleSitemap(Sitemap):
changefreq = "never"
priority = 0.5
location = '/ticket14164'
lastmod = datetime.now()

def items(self):
return [object()]

sitemaps = {
'simple': SimpleSitemap,
}

urlpatterns = patterns('django.contrib.sitemaps.views',
(r'^sitemaps/sitemap\.xml$', 'sitemap', {'sitemaps': sitemaps}),
)

0 comments on commit 46fab89

Please sign in to comment.