test_sitemaps.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from django.apps import apps
  2. from django.contrib.sites.models import Site
  3. from django.test import TestCase
  4. from django.test.utils import modify_settings, override_settings
  5. @override_settings(
  6. ROOT_URLCONF="flatpages_tests.urls",
  7. SITE_ID=1,
  8. )
  9. @modify_settings(
  10. INSTALLED_APPS={
  11. "append": ["django.contrib.sitemaps", "django.contrib.flatpages"],
  12. },
  13. )
  14. class FlatpagesSitemapTests(TestCase):
  15. @classmethod
  16. def setUpClass(cls):
  17. super().setUpClass()
  18. # This cleanup is necessary because contrib.sites cache
  19. # makes tests interfere with each other, see #11505
  20. Site.objects.clear_cache()
  21. @classmethod
  22. def setUpTestData(cls):
  23. Site = apps.get_model("sites.Site")
  24. current_site = Site.objects.get_current()
  25. current_site.flatpage_set.create(url="/foo/", title="foo")
  26. current_site.flatpage_set.create(
  27. url="/private-foo/", title="private foo", registration_required=True
  28. )
  29. def test_flatpage_sitemap(self):
  30. response = self.client.get("/flatpages/sitemap.xml")
  31. self.assertIn(
  32. b"<url><loc>http://example.com/flatpage_root/foo/</loc></url>",
  33. response.getvalue(),
  34. )
  35. self.assertNotIn(
  36. b"<url><loc>http://example.com/flatpage_root/private-foo/</loc></url>",
  37. response.getvalue(),
  38. )