| 1 | # -*- coding: utf-8 -*- |
| 2 | from datetime import datetime |
| 3 | from django.conf import settings |
| 4 | from django.utils import translation |
| 5 | from django.test import TestCase |
| 6 | from django.contrib.sitemaps import Sitemap |
| 7 | |
| 8 | |
| 9 | class Page(object): |
| 10 | def get_absolute_url(self): |
| 11 | return '/' |
| 12 | |
| 13 | |
| 14 | class 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 | |
| 25 | class 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) |