Author: russellm
Date: 2010-08-30 10:11:21 -0500 (Mon, 30 Aug 2010)
New Revision: 13677

Modified:
   django/branches/releases/1.2.X/django/contrib/sitemaps/__init__.py
   django/branches/releases/1.2.X/django/contrib/sitemaps/tests/basic.py
   django/branches/releases/1.2.X/django/contrib/sitemaps/tests/urls.py
Log:
[1.2.X] Fixed #14198 -- Corrected rendering of generic sitemaps when no 
priority is specified. Thanks to palkeo for the report.

Backport of r13676 from trunk.

Modified: django/branches/releases/1.2.X/django/contrib/sitemaps/__init__.py
===================================================================
--- django/branches/releases/1.2.X/django/contrib/sitemaps/__init__.py  
2010-08-30 15:09:12 UTC (rev 13676)
+++ django/branches/releases/1.2.X/django/contrib/sitemaps/__init__.py  
2010-08-30 15:11:21 UTC (rev 13677)
@@ -65,11 +65,12 @@
         urls = []
         for item in self.paginator.page(page).object_list:
             loc = "http://%s%s"; % (current_site.domain, self.__get('location', 
item))
+            priority = self.__get('priority', item, None)
             url_info = {
                 'location':   loc,
                 'lastmod':    self.__get('lastmod', item, None),
                 'changefreq': self.__get('changefreq', item, None),
-                'priority':   str(self.__get('priority', item, ''))
+                'priority':   str(priority is not None and priority or '')
             }
             urls.append(url_info)
         return urls

Modified: django/branches/releases/1.2.X/django/contrib/sitemaps/tests/basic.py
===================================================================
--- django/branches/releases/1.2.X/django/contrib/sitemaps/tests/basic.py       
2010-08-30 15:09:12 UTC (rev 13676)
+++ django/branches/releases/1.2.X/django/contrib/sitemaps/tests/basic.py       
2010-08-30 15:11:21 UTC (rev 13677)
@@ -1,5 +1,6 @@
 from datetime import date
 from django.conf import settings
+from django.contrib.auth.models import User
 from django.test import TestCase
 from django.utils.formats import localize
 from django.utils.translation import activate
@@ -10,6 +11,8 @@
 
     def setUp(self):
         self.old_USE_L10N = settings.USE_L10N
+        # Create a user that will double as sitemap content
+        User.objects.create_user('testuser', '[email protected]', 's3krit')
 
     def tearDown(self):
         settings.USE_L10N = self.old_USE_L10N
@@ -17,11 +20,11 @@
     def test_simple_sitemap(self):
         "A simple sitemap can be rendered"
         # Retrieve the sitemap.
-        response = self.client.get('/sitemaps/sitemap.xml')
+        response = self.client.get('/simple/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>
+<url><loc>http://example.com/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url>
 </urlset>
 """ % date.today().strftime('%Y-%m-%d'))
 
@@ -34,6 +37,17 @@
 
         # Retrieve the sitemap. Check that priorities
         # haven't been rendered in localized format
-        response = self.client.get('/sitemaps/sitemap.xml')
+        response = self.client.get('/simple/sitemap.xml')
         self.assertContains(response, '<priority>0.5</priority>')
         self.assertContains(response, '<lastmod>%s</lastmod>' % 
date.today().strftime('%Y-%m-%d'))
+
+    def test_generic_sitemap(self):
+        "A minimal generic sitemap can be rendered"
+        # Retrieve the sitemap.
+        response = self.client.get('/generic/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/users/testuser/</loc></url>
+</urlset>
+""")

Modified: django/branches/releases/1.2.X/django/contrib/sitemaps/tests/urls.py
===================================================================
--- django/branches/releases/1.2.X/django/contrib/sitemaps/tests/urls.py        
2010-08-30 15:09:12 UTC (rev 13676)
+++ django/branches/releases/1.2.X/django/contrib/sitemaps/tests/urls.py        
2010-08-30 15:11:21 UTC (rev 13677)
@@ -1,20 +1,28 @@
 from datetime import datetime
 from django.conf.urls.defaults import *
-from django.contrib.sitemaps import Sitemap
+from django.contrib.sitemaps import Sitemap, GenericSitemap
+from django.contrib.auth.models import User
 
 class SimpleSitemap(Sitemap):
     changefreq = "never"
     priority = 0.5
-    location = '/ticket14164'
+    location = '/location/'
     lastmod = datetime.now()
 
     def items(self):
         return [object()]
 
-sitemaps = {
+simple_sitemaps = {
     'simple': SimpleSitemap,
 }
 
+generic_sitemaps = {
+    'generic': GenericSitemap({
+        'queryset': User.objects.all()
+    }),
+}
+
 urlpatterns = patterns('django.contrib.sitemaps.views',
-    (r'^sitemaps/sitemap\.xml$', 'sitemap', {'sitemaps': sitemaps}),
+    (r'^simple/sitemap\.xml$', 'sitemap', {'sitemaps': simple_sitemaps}),
+    (r'^generic/sitemap\.xml$', 'sitemap', {'sitemaps': generic_sitemaps}),
 )

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to