from django.apps import apps from django.contrib.sites.models import Site from django.test import TestCase from django.test.utils import modify_settings, override_settings @override_settings( ROOT_URLCONF='flatpages_tests.urls', SITE_ID=1, ) @modify_settings( INSTALLED_APPS={ 'append': ['django.contrib.sitemaps', 'django.contrib.flatpages'], }, ) class FlatpagesSitemapTests(TestCase): @classmethod def setUpClass(cls): super().setUpClass() # This cleanup is necessary because contrib.sites cache # makes tests interfere with each other, see #11505 Site.objects.clear_cache() @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'http://example.com/flatpage_root/foo/', response.getvalue()) self.assertNotIn( b'http://example.com/flatpage_root/private-foo/', response.getvalue(), )