Loading django/contrib/flatpages/sitemaps.py 0 → 100644 +12 −0 Original line number Diff line number Diff line from django.apps import apps as django_apps from django.contrib.sitemaps import Sitemap from django.core.exceptions import ImproperlyConfigured class FlatPageSitemap(Sitemap): def items(self): if not django_apps.is_installed('django.contrib.sites'): raise ImproperlyConfigured("FlatPageSitemap requires django.contrib.sites, which isn't installed.") Site = django_apps.get_model('sites.Site') current_site = Site.objects.get_current() return current_site.flatpage_set.filter(registration_required=False) django/contrib/flatpages/tests/test_sitemaps.py 0 → 100644 +25 −0 Original line number Diff line number Diff line from __future__ import unicode_literals from django.apps import apps from django.test import TestCase from django.test.utils import modify_settings, override_settings @override_settings( ROOT_URLCONF='django.contrib.flatpages.tests.urls', SITE_ID=1, ) @modify_settings(INSTALLED_APPS={'append': ['django.contrib.sitemaps']},) class FlatpagesSitemapTests(TestCase): @classmethod def setUpTestData(cls): Site = apps.get_model('sites.Site') current_site = Site.objects.get_current() current_site.flatpage_set.create(url="/foo/", title="foo") current_site.flatpage_set.create(url="/private-foo/", title="private foo", registration_required=True) def test_flatpage_sitemap(self): response = self.client.get('/flatpages/sitemap.xml') self.assertIn(b'<url><loc>http://example.com/foo/</loc></url>', response.getvalue()) self.assertNotIn(b'<url><loc>http://example.com/private-foo/</loc></url>', response.getvalue()) django/contrib/flatpages/tests/urls.py +6 −0 Original line number Diff line number Diff line from django.conf.urls import include, url from django.contrib.flatpages.sitemaps import FlatPageSitemap from django.contrib.sitemaps import views # special urls for flatpage test cases urlpatterns = [ url(r'^flatpages/sitemap\.xml$', views.sitemap, {'sitemaps': {'flatpages': FlatPageSitemap}}, name='django.contrib.sitemaps.views.sitemap'), url(r'^flatpage_root', include('django.contrib.flatpages.urls')), url(r'^accounts/', include('django.contrib.auth.urls')), ] django/contrib/sitemaps/__init__.py +15 −0 Original line number Diff line number Diff line import warnings from django.apps import apps as django_apps from django.conf import settings from django.core import urlresolvers, paginator from django.core.exceptions import ImproperlyConfigured from django.utils import translation from django.utils.deprecation import RemovedInDjango19Warning from django.utils.six.moves.urllib.parse import urlencode from django.utils.six.moves.urllib.request import urlopen Loading Loading @@ -133,6 +136,18 @@ class Sitemap(object): class FlatPageSitemap(Sitemap): # This class is not a subclass of # django.contrib.flatpages.sitemaps.FlatPageSitemap to avoid a # circular import problem. def __init__(self): warnings.warn( "'django.contrib.sitemaps.FlatPageSitemap' is deprecated. " "Use 'django.contrib.flatpages.sitemaps.FlatPageSitemap' instead.", RemovedInDjango19Warning, stacklevel=2 ) def items(self): if not django_apps.is_installed('django.contrib.sites'): raise ImproperlyConfigured("FlatPageSitemap requires django.contrib.sites, which isn't installed.") Loading django/contrib/sitemaps/tests/test_flatpages.py +18 −0 Original line number Diff line number Diff line from __future__ import unicode_literals from unittest import skipUnless import warnings from django.apps import apps from django.conf import settings from django.contrib.sitemaps import FlatPageSitemap from django.test import SimpleTestCase from .base import SitemapTestsBase Loading Loading @@ -40,3 +43,18 @@ class FlatpagesSitemapTests(SitemapTestsBase): self.assertContains(response, '<loc>%s%s</loc>' % (self.base_url, public.url)) # Private flatpage should not be in the sitemap self.assertNotContains(response, '<loc>%s%s</loc>' % (self.base_url, private.url)) class FlatpagesSitemapDeprecationTests(SimpleTestCase): def test_deprecation(self): with warnings.catch_warnings(record=True) as warns: warnings.simplefilter('always') FlatPageSitemap() self.assertEqual(len(warns), 1) self.assertEqual( str(warns[0].message), "'django.contrib.sitemaps.FlatPageSitemap' is deprecated. " "Use 'django.contrib.flatpages.sitemaps.FlatPageSitemap' instead.", ) Loading
django/contrib/flatpages/sitemaps.py 0 → 100644 +12 −0 Original line number Diff line number Diff line from django.apps import apps as django_apps from django.contrib.sitemaps import Sitemap from django.core.exceptions import ImproperlyConfigured class FlatPageSitemap(Sitemap): def items(self): if not django_apps.is_installed('django.contrib.sites'): raise ImproperlyConfigured("FlatPageSitemap requires django.contrib.sites, which isn't installed.") Site = django_apps.get_model('sites.Site') current_site = Site.objects.get_current() return current_site.flatpage_set.filter(registration_required=False)
django/contrib/flatpages/tests/test_sitemaps.py 0 → 100644 +25 −0 Original line number Diff line number Diff line from __future__ import unicode_literals from django.apps import apps from django.test import TestCase from django.test.utils import modify_settings, override_settings @override_settings( ROOT_URLCONF='django.contrib.flatpages.tests.urls', SITE_ID=1, ) @modify_settings(INSTALLED_APPS={'append': ['django.contrib.sitemaps']},) class FlatpagesSitemapTests(TestCase): @classmethod def setUpTestData(cls): Site = apps.get_model('sites.Site') current_site = Site.objects.get_current() current_site.flatpage_set.create(url="/foo/", title="foo") current_site.flatpage_set.create(url="/private-foo/", title="private foo", registration_required=True) def test_flatpage_sitemap(self): response = self.client.get('/flatpages/sitemap.xml') self.assertIn(b'<url><loc>http://example.com/foo/</loc></url>', response.getvalue()) self.assertNotIn(b'<url><loc>http://example.com/private-foo/</loc></url>', response.getvalue())
django/contrib/flatpages/tests/urls.py +6 −0 Original line number Diff line number Diff line from django.conf.urls import include, url from django.contrib.flatpages.sitemaps import FlatPageSitemap from django.contrib.sitemaps import views # special urls for flatpage test cases urlpatterns = [ url(r'^flatpages/sitemap\.xml$', views.sitemap, {'sitemaps': {'flatpages': FlatPageSitemap}}, name='django.contrib.sitemaps.views.sitemap'), url(r'^flatpage_root', include('django.contrib.flatpages.urls')), url(r'^accounts/', include('django.contrib.auth.urls')), ]
django/contrib/sitemaps/__init__.py +15 −0 Original line number Diff line number Diff line import warnings from django.apps import apps as django_apps from django.conf import settings from django.core import urlresolvers, paginator from django.core.exceptions import ImproperlyConfigured from django.utils import translation from django.utils.deprecation import RemovedInDjango19Warning from django.utils.six.moves.urllib.parse import urlencode from django.utils.six.moves.urllib.request import urlopen Loading Loading @@ -133,6 +136,18 @@ class Sitemap(object): class FlatPageSitemap(Sitemap): # This class is not a subclass of # django.contrib.flatpages.sitemaps.FlatPageSitemap to avoid a # circular import problem. def __init__(self): warnings.warn( "'django.contrib.sitemaps.FlatPageSitemap' is deprecated. " "Use 'django.contrib.flatpages.sitemaps.FlatPageSitemap' instead.", RemovedInDjango19Warning, stacklevel=2 ) def items(self): if not django_apps.is_installed('django.contrib.sites'): raise ImproperlyConfigured("FlatPageSitemap requires django.contrib.sites, which isn't installed.") Loading
django/contrib/sitemaps/tests/test_flatpages.py +18 −0 Original line number Diff line number Diff line from __future__ import unicode_literals from unittest import skipUnless import warnings from django.apps import apps from django.conf import settings from django.contrib.sitemaps import FlatPageSitemap from django.test import SimpleTestCase from .base import SitemapTestsBase Loading Loading @@ -40,3 +43,18 @@ class FlatpagesSitemapTests(SitemapTestsBase): self.assertContains(response, '<loc>%s%s</loc>' % (self.base_url, public.url)) # Private flatpage should not be in the sitemap self.assertNotContains(response, '<loc>%s%s</loc>' % (self.base_url, private.url)) class FlatpagesSitemapDeprecationTests(SimpleTestCase): def test_deprecation(self): with warnings.catch_warnings(record=True) as warns: warnings.simplefilter('always') FlatPageSitemap() self.assertEqual(len(warns), 1) self.assertEqual( str(warns[0].message), "'django.contrib.sitemaps.FlatPageSitemap' is deprecated. " "Use 'django.contrib.flatpages.sitemaps.FlatPageSitemap' instead.", )