Code

Ticket #13881: 13881.tests_and_fix.patch

File 13881.tests_and_fix.patch, 3.5 KB (added by gregmuellegger, 4 years ago)

Same tests as in first patch, but now includes a simple fix for the issue.

  • django/contrib/sitemaps/__init__.py

    === modified file 'django/contrib/sitemaps/__init__.py'
     
    6565        urls = [] 
    6666        for item in self.paginator.page(page).object_list: 
    6767            loc = "http://%s%s" % (current_site.domain, self.__get('location', item)) 
     68            priority = self.__get('priority', item, None) 
     69            if priority is not None: 
     70                priority = u"%f" % priority 
     71                priority = priority.rstrip(u'0') 
    6872            url_info = { 
    6973                'location':   loc, 
    7074                'lastmod':    self.__get('lastmod', item, None), 
    7175                'changefreq': self.__get('changefreq', item, None), 
    72                 'priority':   self.__get('priority', item, None) 
     76                'priority':   priority 
    7377            } 
    7478            urls.append(url_info) 
    7579        return urls 
  • tests/regressiontests/sitemaps/__init__.py

    === added directory 'tests/regressiontests/sitemaps'
    === added file 'tests/regressiontests/sitemaps/__init__.py'
     
     1# empty. 
  • tests/regressiontests/sitemaps/models.py

    === added file 'tests/regressiontests/sitemaps/models.py'
     
     1# empty. 
  • tests/regressiontests/sitemaps/tests.py

    === added file 'tests/regressiontests/sitemaps/tests.py'
     
     1# -*- coding: utf-8 -*- 
     2from datetime import datetime 
     3from django.conf import settings 
     4from django.utils import translation 
     5from django.test import TestCase 
     6from django.contrib.sitemaps import Sitemap 
     7 
     8 
     9class Page(object): 
     10    def get_absolute_url(self): 
     11        return '/' 
     12 
     13 
     14class PageSitemap(Sitemap): 
     15    changefreq = 'weekly' 
     16    priority = 0.5 
     17 
     18    def items(self): 
     19        return [Page(), Page(), Page()] 
     20 
     21    def lastmod(self, obj): 
     22        return datetime.now() 
     23 
     24 
     25class TestSitemap(TestCase): 
     26    urls = 'regressiontests.sitemaps.urls' 
     27 
     28    def test_localized_priority(self): 
     29        ''' 
     30        Issue 13881: Priority's decimal separator is localized but shouldn't. 
     31        ''' 
     32        org_l10n, settings.USE_L10N = settings.USE_L10N, True 
     33        org_lang = translation.get_language() 
     34        settings.INSTALLED_APPS += ('django.contrib.sitemaps',) 
     35        try: 
     36            translation.activate('ru') 
     37            sitemap = PageSitemap() 
     38            response = self.client.get('/sitemap-page.xml') 
     39            self.assertNotContains(response, '<priority>0,5</priority>') 
     40            self.assertContains(response, '<priority>0.5</priority>') 
     41        finally: 
     42            settings.L10N = org_l10n 
     43            settings.INSTALLED_APPS = settings.INSTALLED_APPS[:-1] 
     44            translation.activate(org_lang) 
  • tests/regressiontests/sitemaps/urls.py

    === added file 'tests/regressiontests/sitemaps/urls.py'
     
     1from django.conf.urls.defaults import handler404, handler500, patterns, url 
     2from regressiontests.sitemaps.tests import PageSitemap 
     3 
     4sitemaps = { 
     5    'page': PageSitemap(), 
     6} 
     7 
     8urlpatterns = patterns('django.contrib.sitemaps.views', 
     9    url(r'^sitemap-(?P<section>\w+).xml$', 'sitemap', {'sitemaps': sitemaps}), 
     10)