diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-03 20:24:19 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-07 20:37:05 +0100 |
| commit | 9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch) | |
| tree | f0506b668a013d0063e5fba3dbf4863b466713ba /tests/sitemaps_tests | |
| parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/sitemaps_tests')
| -rw-r--r-- | tests/sitemaps_tests/base.py | 16 | ||||
| -rw-r--r-- | tests/sitemaps_tests/models.py | 4 | ||||
| -rw-r--r-- | tests/sitemaps_tests/test_generic.py | 57 | ||||
| -rw-r--r-- | tests/sitemaps_tests/test_http.py | 286 | ||||
| -rw-r--r-- | tests/sitemaps_tests/test_https.py | 34 | ||||
| -rw-r--r-- | tests/sitemaps_tests/test_management.py | 11 | ||||
| -rw-r--r-- | tests/sitemaps_tests/test_utils.py | 40 | ||||
| -rw-r--r-- | tests/sitemaps_tests/urls/http.py | 322 | ||||
| -rw-r--r-- | tests/sitemaps_tests/urls/https.py | 14 | ||||
| -rw-r--r-- | tests/sitemaps_tests/urls/index_only.py | 7 | ||||
| -rw-r--r-- | tests/sitemaps_tests/urls/sitemap_only.py | 6 |
11 files changed, 490 insertions, 307 deletions
diff --git a/tests/sitemaps_tests/base.py b/tests/sitemaps_tests/base.py index 3373af98e7..ba9902c6f7 100644 --- a/tests/sitemaps_tests/base.py +++ b/tests/sitemaps_tests/base.py @@ -6,21 +6,21 @@ from django.test import TestCase, modify_settings, override_settings from .models import I18nTestModel, TestModel -@modify_settings(INSTALLED_APPS={'append': 'django.contrib.sitemaps'}) -@override_settings(ROOT_URLCONF='sitemaps_tests.urls.http') +@modify_settings(INSTALLED_APPS={"append": "django.contrib.sitemaps"}) +@override_settings(ROOT_URLCONF="sitemaps_tests.urls.http") class SitemapTestsBase(TestCase): - protocol = 'http' - sites_installed = apps.is_installed('django.contrib.sites') - domain = 'example.com' if sites_installed else 'testserver' + protocol = "http" + sites_installed = apps.is_installed("django.contrib.sites") + domain = "example.com" if sites_installed else "testserver" @classmethod def setUpTestData(cls): # Create an object for sitemap content. - TestModel.objects.create(name='Test Object') - cls.i18n_model = I18nTestModel.objects.create(name='Test Object') + TestModel.objects.create(name="Test Object") + cls.i18n_model = I18nTestModel.objects.create(name="Test Object") def setUp(self): - self.base_url = '%s://%s' % (self.protocol, self.domain) + self.base_url = "%s://%s" % (self.protocol, self.domain) cache.clear() @classmethod diff --git a/tests/sitemaps_tests/models.py b/tests/sitemaps_tests/models.py index 77ac601841..45edc7e7c8 100644 --- a/tests/sitemaps_tests/models.py +++ b/tests/sitemaps_tests/models.py @@ -7,11 +7,11 @@ class TestModel(models.Model): lastmod = models.DateTimeField(null=True) def get_absolute_url(self): - return '/testmodel/%s/' % self.id + return "/testmodel/%s/" % self.id class I18nTestModel(models.Model): name = models.CharField(max_length=100) def get_absolute_url(self): - return reverse('i18n_testmodel', args=[self.id]) + return reverse("i18n_testmodel", args=[self.id]) diff --git a/tests/sitemaps_tests/test_generic.py b/tests/sitemaps_tests/test_generic.py index 3c25f04d3a..33a8ee5592 100644 --- a/tests/sitemaps_tests/test_generic.py +++ b/tests/sitemaps_tests/test_generic.py @@ -10,24 +10,23 @@ from .models import TestModel @override_settings(ABSOLUTE_URL_OVERRIDES={}) class GenericViewsSitemapTests(SitemapTestsBase): - def test_generic_sitemap_attributes(self): datetime_value = datetime.now() queryset = TestModel.objects.all() generic_sitemap = GenericSitemap( info_dict={ - 'queryset': queryset, - 'date_field': datetime_value, + "queryset": queryset, + "date_field": datetime_value, }, priority=0.6, - changefreq='monthly', - protocol='https', + changefreq="monthly", + protocol="https", ) attr_values = ( - ('date_field', datetime_value), - ('priority', 0.6), - ('changefreq', 'monthly'), - ('protocol', 'https'), + ("date_field", datetime_value), + ("priority", 0.6), + ("changefreq", "monthly"), + ("protocol", "https"), ) for attr_name, expected_value in attr_values: with self.subTest(attr_name=attr_name): @@ -36,48 +35,56 @@ class GenericViewsSitemapTests(SitemapTestsBase): def test_generic_sitemap(self): "A minimal generic sitemap can be rendered" - response = self.client.get('/generic/sitemap.xml') - expected = '' + response = self.client.get("/generic/sitemap.xml") + expected = "" for pk in TestModel.objects.values_list("id", flat=True): expected += "<url><loc>%s/testmodel/%s/</loc></url>" % (self.base_url, pk) - expected_content = """<?xml version="1.0" encoding="UTF-8"?> + expected_content = ( + """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> %s </urlset> -""" % expected +""" + % expected + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_generic_sitemap_lastmod(self): test_model = TestModel.objects.first() TestModel.objects.update(lastmod=datetime(2013, 3, 13, 10, 0, 0)) - response = self.client.get('/generic-lastmod/sitemap.xml') + response = self.client.get("/generic-lastmod/sitemap.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>%s/testmodel/%s/</loc><lastmod>2013-03-13</lastmod></url> </urlset> -""" % (self.base_url, test_model.pk) +""" % ( + self.base_url, + test_model.pk, + ) self.assertXMLEqual(response.content.decode(), expected_content) - self.assertEqual(response.headers['Last-Modified'], 'Wed, 13 Mar 2013 10:00:00 GMT') + self.assertEqual( + response.headers["Last-Modified"], "Wed, 13 Mar 2013 10:00:00 GMT" + ) def test_get_protocol_defined_in_constructor(self): - for protocol in ['http', 'https']: + for protocol in ["http", "https"]: with self.subTest(protocol=protocol): - sitemap = GenericSitemap({'queryset': None}, protocol=protocol) + sitemap = GenericSitemap({"queryset": None}, protocol=protocol) self.assertEqual(sitemap.get_protocol(), protocol) def test_get_protocol_passed_as_argument(self): - sitemap = GenericSitemap({'queryset': None}) - for protocol in ['http', 'https']: + sitemap = GenericSitemap({"queryset": None}) + for protocol in ["http", "https"]: with self.subTest(protocol=protocol): self.assertEqual(sitemap.get_protocol(protocol), protocol) @ignore_warnings(category=RemovedInDjango50Warning) def test_get_protocol_default(self): - sitemap = GenericSitemap({'queryset': None}) - self.assertEqual(sitemap.get_protocol(), 'http') + sitemap = GenericSitemap({"queryset": None}) + self.assertEqual(sitemap.get_protocol(), "http") def test_get_protocol_default_warning(self): - sitemap = GenericSitemap({'queryset': None}) + sitemap = GenericSitemap({"queryset": None}) msg = ( "The default sitemap protocol will be changed from 'http' to " "'https' in Django 5.0. Set Sitemap.protocol to silence this " @@ -88,9 +95,9 @@ class GenericViewsSitemapTests(SitemapTestsBase): def test_generic_sitemap_index(self): TestModel.objects.update(lastmod=datetime(2013, 3, 13, 10, 0, 0)) - response = self.client.get('/generic-lastmod/index.xml') + response = self.client.get("/generic-lastmod/index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>http://example.com/simple/sitemap-generic.xml</loc><lastmod>2013-03-13T10:00:00</lastmod></sitemap> </sitemapindex>""" - self.assertXMLEqual(response.content.decode('utf-8'), expected_content) + self.assertXMLEqual(response.content.decode("utf-8"), expected_content) diff --git a/tests/sitemaps_tests/test_http.py b/tests/sitemaps_tests/test_http.py index 5fea5ac3d3..76707e16e3 100644 --- a/tests/sitemaps_tests/test_http.py +++ b/tests/sitemaps_tests/test_http.py @@ -15,210 +15,254 @@ from .models import TestModel class HTTPSitemapTests(SitemapTestsBase): use_sitemap_err_msg = ( - 'To use sitemaps, either enable the sites framework or pass a ' - 'Site/RequestSite object in your view.' + "To use sitemaps, either enable the sites framework or pass a " + "Site/RequestSite object in your view." ) def test_simple_sitemap_index(self): "A simple sitemap index can be rendered" - response = self.client.get('/simple/index.xml') + response = self.client.get("/simple/index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/simple/sitemap-simple.xml</loc><lastmod>%s</lastmod></sitemap> </sitemapindex> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_sitemap_not_callable(self): """A sitemap may not be callable.""" - response = self.client.get('/simple-not-callable/index.xml') + response = self.client.get("/simple-not-callable/index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/simple/sitemap-simple.xml</loc><lastmod>%s</lastmod></sitemap> </sitemapindex> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_paged_sitemap(self): """A sitemap may have multiple pages.""" - response = self.client.get('/simple-paged/index.xml') + response = self.client.get("/simple-paged/index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>{0}/simple/sitemap-simple.xml</loc><lastmod>{1}</lastmod></sitemap><sitemap><loc>{0}/simple/sitemap-simple.xml?p=2</loc><lastmod>{1}</lastmod></sitemap> </sitemapindex> -""".format(self.base_url, date.today()) +""".format( + self.base_url, date.today() + ) self.assertXMLEqual(response.content.decode(), expected_content) - @override_settings(TEMPLATES=[{ - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')], - }]) + @override_settings( + TEMPLATES=[ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(os.path.dirname(__file__), "templates")], + } + ] + ) def test_simple_sitemap_custom_lastmod_index(self): "A simple sitemap index can be rendered with a custom template" - response = self.client.get('/simple/custom-lastmod-index.xml') + response = self.client.get("/simple/custom-lastmod-index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <!-- This is a customised template --> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/simple/sitemap-simple.xml</loc><lastmod>%s</lastmod></sitemap> </sitemapindex> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_simple_sitemap_section(self): "A simple sitemap section can be rendered" - response = self.client.get('/simple/sitemap-simple.xml') + response = self.client.get("/simple/sitemap-simple.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_no_section(self): - response = self.client.get('/simple/sitemap-simple2.xml') - self.assertEqual(str(response.context['exception']), "No sitemap available for section: 'simple2'") + response = self.client.get("/simple/sitemap-simple2.xml") + self.assertEqual( + str(response.context["exception"]), + "No sitemap available for section: 'simple2'", + ) self.assertEqual(response.status_code, 404) def test_empty_page(self): - response = self.client.get('/simple/sitemap-simple.xml?p=0') - self.assertEqual(str(response.context['exception']), 'Page 0 empty') + response = self.client.get("/simple/sitemap-simple.xml?p=0") + self.assertEqual(str(response.context["exception"]), "Page 0 empty") self.assertEqual(response.status_code, 404) def test_page_not_int(self): - response = self.client.get('/simple/sitemap-simple.xml?p=test') - self.assertEqual(str(response.context['exception']), "No page 'test'") + response = self.client.get("/simple/sitemap-simple.xml?p=test") + self.assertEqual(str(response.context["exception"]), "No page 'test'") self.assertEqual(response.status_code, 404) def test_simple_sitemap(self): "A simple sitemap can be rendered" - response = self.client.get('/simple/sitemap.xml') + response = self.client.get("/simple/sitemap.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) - @override_settings(TEMPLATES=[{ - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')], - }]) + @override_settings( + TEMPLATES=[ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(os.path.dirname(__file__), "templates")], + } + ] + ) def test_simple_custom_sitemap(self): "A simple sitemap can be rendered with a custom template" - response = self.client.get('/simple/custom-sitemap.xml') + response = self.client.get("/simple/custom-sitemap.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <!-- This is a customised template --> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_sitemap_last_modified(self): "Last-Modified header is set correctly" - response = self.client.get('/lastmod/sitemap.xml') - self.assertEqual(response.headers['Last-Modified'], 'Wed, 13 Mar 2013 10:00:00 GMT') + response = self.client.get("/lastmod/sitemap.xml") + self.assertEqual( + response.headers["Last-Modified"], "Wed, 13 Mar 2013 10:00:00 GMT" + ) def test_sitemap_last_modified_date(self): """ The Last-Modified header should be support dates (without time). """ - response = self.client.get('/lastmod/date-sitemap.xml') - self.assertEqual(response.headers['Last-Modified'], 'Wed, 13 Mar 2013 00:00:00 GMT') + response = self.client.get("/lastmod/date-sitemap.xml") + self.assertEqual( + response.headers["Last-Modified"], "Wed, 13 Mar 2013 00:00:00 GMT" + ) def test_sitemap_last_modified_tz(self): """ The Last-Modified header should be converted from timezone aware dates to GMT. """ - response = self.client.get('/lastmod/tz-sitemap.xml') - self.assertEqual(response.headers['Last-Modified'], 'Wed, 13 Mar 2013 15:00:00 GMT') + response = self.client.get("/lastmod/tz-sitemap.xml") + self.assertEqual( + response.headers["Last-Modified"], "Wed, 13 Mar 2013 15:00:00 GMT" + ) def test_sitemap_last_modified_missing(self): "Last-Modified header is missing when sitemap has no lastmod" - response = self.client.get('/generic/sitemap.xml') - self.assertFalse(response.has_header('Last-Modified')) + response = self.client.get("/generic/sitemap.xml") + self.assertFalse(response.has_header("Last-Modified")) def test_sitemap_last_modified_mixed(self): "Last-Modified header is omitted when lastmod not on all items" - response = self.client.get('/lastmod-mixed/sitemap.xml') - self.assertFalse(response.has_header('Last-Modified')) + response = self.client.get("/lastmod-mixed/sitemap.xml") + self.assertFalse(response.has_header("Last-Modified")) def test_sitemaps_lastmod_mixed_ascending_last_modified_missing(self): """ The Last-Modified header is omitted when lastmod isn't found in all sitemaps. Test sitemaps are sorted by lastmod in ascending order. """ - response = self.client.get('/lastmod-sitemaps/mixed-ascending.xml') - self.assertFalse(response.has_header('Last-Modified')) + response = self.client.get("/lastmod-sitemaps/mixed-ascending.xml") + self.assertFalse(response.has_header("Last-Modified")) def test_sitemaps_lastmod_mixed_descending_last_modified_missing(self): """ The Last-Modified header is omitted when lastmod isn't found in all sitemaps. Test sitemaps are sorted by lastmod in descending order. """ - response = self.client.get('/lastmod-sitemaps/mixed-descending.xml') - self.assertFalse(response.has_header('Last-Modified')) + response = self.client.get("/lastmod-sitemaps/mixed-descending.xml") + self.assertFalse(response.has_header("Last-Modified")) def test_sitemaps_lastmod_ascending(self): """ The Last-Modified header is set to the most recent sitemap lastmod. Test sitemaps are sorted by lastmod in ascending order. """ - response = self.client.get('/lastmod-sitemaps/ascending.xml') - self.assertEqual(response.headers['Last-Modified'], 'Sat, 20 Apr 2013 05:00:00 GMT') + response = self.client.get("/lastmod-sitemaps/ascending.xml") + self.assertEqual( + response.headers["Last-Modified"], "Sat, 20 Apr 2013 05:00:00 GMT" + ) def test_sitemaps_lastmod_descending(self): """ The Last-Modified header is set to the most recent sitemap lastmod. Test sitemaps are sorted by lastmod in descending order. """ - response = self.client.get('/lastmod-sitemaps/descending.xml') - self.assertEqual(response.headers['Last-Modified'], 'Sat, 20 Apr 2013 05:00:00 GMT') + response = self.client.get("/lastmod-sitemaps/descending.xml") + self.assertEqual( + response.headers["Last-Modified"], "Sat, 20 Apr 2013 05:00:00 GMT" + ) def test_sitemap_get_latest_lastmod_none(self): """ sitemapindex.lastmod is ommitted when Sitemap.lastmod is callable and Sitemap.get_latest_lastmod is not implemented """ - response = self.client.get('/lastmod/get-latest-lastmod-none-sitemap.xml') - self.assertNotContains(response, '<lastmod>') + response = self.client.get("/lastmod/get-latest-lastmod-none-sitemap.xml") + self.assertNotContains(response, "<lastmod>") def test_sitemap_get_latest_lastmod(self): """ sitemapindex.lastmod is included when Sitemap.lastmod is attribute and Sitemap.get_latest_lastmod is implemented """ - response = self.client.get('/lastmod/get-latest-lastmod-sitemap.xml') - self.assertContains(response, '<lastmod>2013-03-13T10:00:00</lastmod>') + response = self.client.get("/lastmod/get-latest-lastmod-sitemap.xml") + self.assertContains(response, "<lastmod>2013-03-13T10:00:00</lastmod>") def test_sitemap_latest_lastmod_timezone(self): """ lastmod datestamp shows timezones if Sitemap.get_latest_lastmod returns an aware datetime. """ - response = self.client.get('/lastmod/latest-lastmod-timezone-sitemap.xml') - self.assertContains(response, '<lastmod>2013-03-13T10:00:00-05:00</lastmod>') + response = self.client.get("/lastmod/latest-lastmod-timezone-sitemap.xml") + self.assertContains(response, "<lastmod>2013-03-13T10:00:00-05:00</lastmod>") def test_localized_priority(self): """The priority value should not be localized.""" - with translation.override('fr'): - self.assertEqual('0,3', localize(0.3)) + with translation.override("fr"): + self.assertEqual("0,3", localize(0.3)) # Priorities aren't rendered in localized format. - response = self.client.get('/simple/sitemap.xml') - self.assertContains(response, '<priority>0.5</priority>') - self.assertContains(response, '<lastmod>%s</lastmod>' % date.today()) + response = self.client.get("/simple/sitemap.xml") + self.assertContains(response, "<priority>0.5</priority>") + self.assertContains(response, "<lastmod>%s</lastmod>" % date.today()) - @modify_settings(INSTALLED_APPS={'remove': 'django.contrib.sites'}) + @modify_settings(INSTALLED_APPS={"remove": "django.contrib.sites"}) def test_requestsite_sitemap(self): # Hitting the flatpages sitemap without the sites framework installed # doesn't raise an exception. - response = self.client.get('/simple/sitemap.xml') - expected_content = """<?xml version="1.0" encoding="UTF-8"?> + response = self.client.get("/simple/sitemap.xml") + expected_content = ( + """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>http://testserver/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""" % date.today() +""" + % date.today() + ) self.assertXMLEqual(response.content.decode(), expected_content) @ignore_warnings(category=RemovedInDjango50Warning) @@ -231,7 +275,7 @@ class HTTPSitemapTests(SitemapTestsBase): with self.assertRaisesMessage(ImproperlyConfigured, self.use_sitemap_err_msg): Sitemap().get_urls() - @modify_settings(INSTALLED_APPS={'remove': 'django.contrib.sites'}) + @modify_settings(INSTALLED_APPS={"remove": "django.contrib.sites"}) @ignore_warnings(category=RemovedInDjango50Warning) def test_sitemap_get_urls_no_site_2(self): """ @@ -249,10 +293,11 @@ class HTTPSitemapTests(SitemapTestsBase): Sitemap.get_url() url result. """ test_sitemap = Sitemap() - test_sitemap.items = TestModel.objects.order_by('pk').all + test_sitemap.items = TestModel.objects.order_by("pk").all def is_testmodel(url): - return isinstance(url['item'], TestModel) + return isinstance(url["item"], TestModel) + item_in_url_info = all(map(is_testmodel, test_sitemap.get_urls())) self.assertTrue(item_in_url_info) @@ -260,46 +305,51 @@ class HTTPSitemapTests(SitemapTestsBase): """ A cached sitemap index can be rendered (#2713). """ - response = self.client.get('/cached/index.xml') + response = self.client.get("/cached/index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/cached/sitemap-simple.xml</loc><lastmod>%s</lastmod></sitemap> </sitemapindex> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_x_robots_sitemap(self): - response = self.client.get('/simple/index.xml') - self.assertEqual(response.headers['X-Robots-Tag'], 'noindex, noodp, noarchive') + response = self.client.get("/simple/index.xml") + self.assertEqual(response.headers["X-Robots-Tag"], "noindex, noodp, noarchive") - response = self.client.get('/simple/sitemap.xml') - self.assertEqual(response.headers['X-Robots-Tag'], 'noindex, noodp, noarchive') + response = self.client.get("/simple/sitemap.xml") + self.assertEqual(response.headers["X-Robots-Tag"], "noindex, noodp, noarchive") def test_empty_sitemap(self): - response = self.client.get('/empty/sitemap.xml') + response = self.client.get("/empty/sitemap.xml") self.assertEqual(response.status_code, 200) - @override_settings(LANGUAGES=(('en', 'English'), ('pt', 'Portuguese'))) + @override_settings(LANGUAGES=(("en", "English"), ("pt", "Portuguese"))) def test_simple_i18n_sitemap_index(self): """ A simple i18n sitemap index can be rendered, without logging variable lookup errors. """ - with self.assertNoLogs('django.template', 'DEBUG'): - response = self.client.get('/simple/i18n.xml') + with self.assertNoLogs("django.template", "DEBUG"): + response = self.client.get("/simple/i18n.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>{0}/en/i18n/testmodel/{1}/</loc><changefreq>never</changefreq><priority>0.5</priority></url><url><loc>{0}/pt/i18n/testmodel/{1}/</loc><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""".format(self.base_url, self.i18n_model.pk) +""".format( + self.base_url, self.i18n_model.pk + ) self.assertXMLEqual(response.content.decode(), expected_content) - @override_settings(LANGUAGES=(('en', 'English'), ('pt', 'Portuguese'))) + @override_settings(LANGUAGES=(("en", "English"), ("pt", "Portuguese"))) def test_alternate_i18n_sitemap_index(self): """ A i18n sitemap with alternate/hreflang links can be rendered. """ - response = self.client.get('/alternates/i18n.xml') + response = self.client.get("/alternates/i18n.xml") url, pk = self.base_url, self.i18n_model.pk expected_urls = f""" <url><loc>{url}/en/i18n/testmodel/{pk}/</loc><changefreq>never</changefreq><priority>0.5</priority> @@ -310,7 +360,9 @@ class HTTPSitemapTests(SitemapTestsBase): <xhtml:link rel="alternate" hreflang="en" href="{url}/en/i18n/testmodel/{pk}/"/> <xhtml:link rel="alternate" hreflang="pt" href="{url}/pt/i18n/testmodel/{pk}/"/> </url> -""".replace('\n', '') +""".replace( + "\n", "" + ) expected_content = f"""<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> {expected_urls} @@ -318,12 +370,14 @@ class HTTPSitemapTests(SitemapTestsBase): """ self.assertXMLEqual(response.content.decode(), expected_content) - @override_settings(LANGUAGES=(('en', 'English'), ('pt', 'Portuguese'), ('es', 'Spanish'))) + @override_settings( + LANGUAGES=(("en", "English"), ("pt", "Portuguese"), ("es", "Spanish")) + ) def test_alternate_i18n_sitemap_limited(self): """ A i18n sitemap index with limited languages can be rendered. """ - response = self.client.get('/limited/i18n.xml') + response = self.client.get("/limited/i18n.xml") url, pk = self.base_url, self.i18n_model.pk expected_urls = f""" <url><loc>{url}/en/i18n/testmodel/{pk}/</loc><changefreq>never</changefreq><priority>0.5</priority> @@ -334,7 +388,9 @@ class HTTPSitemapTests(SitemapTestsBase): <xhtml:link rel="alternate" hreflang="en" href="{url}/en/i18n/testmodel/{pk}/"/> <xhtml:link rel="alternate" hreflang="es" href="{url}/es/i18n/testmodel/{pk}/"/> </url> -""".replace('\n', '') +""".replace( + "\n", "" + ) expected_content = f"""<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> {expected_urls} @@ -342,12 +398,12 @@ class HTTPSitemapTests(SitemapTestsBase): """ self.assertXMLEqual(response.content.decode(), expected_content) - @override_settings(LANGUAGES=(('en', 'English'), ('pt', 'Portuguese'))) + @override_settings(LANGUAGES=(("en", "English"), ("pt", "Portuguese"))) def test_alternate_i18n_sitemap_xdefault(self): """ A i18n sitemap index with x-default can be rendered. """ - response = self.client.get('/x-default/i18n.xml') + response = self.client.get("/x-default/i18n.xml") url, pk = self.base_url, self.i18n_model.pk expected_urls = f""" <url><loc>{url}/en/i18n/testmodel/{pk}/</loc><changefreq>never</changefreq><priority>0.5</priority> @@ -360,7 +416,9 @@ class HTTPSitemapTests(SitemapTestsBase): <xhtml:link rel="alternate" hreflang="pt" href="{url}/pt/i18n/testmodel/{pk}/"/> <xhtml:link rel="alternate" hreflang="x-default" href="{url}/i18n/testmodel/{pk}/"/> </url> -""".replace('\n', '') +""".replace( + "\n", "" + ) expected_content = f"""<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> {expected_urls} @@ -369,7 +427,7 @@ class HTTPSitemapTests(SitemapTestsBase): self.assertXMLEqual(response.content.decode(), expected_content) def test_sitemap_without_entries(self): - response = self.client.get('/sitemap-without-entries/sitemap.xml') + response = self.client.get("/sitemap-without-entries/sitemap.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> @@ -381,10 +439,10 @@ class HTTPSitemapTests(SitemapTestsBase): Not all items have `lastmod`. Therefore the `Last-Modified` header is not set by the detail or index sitemap view. """ - index_response = self.client.get('/callable-lastmod-partial/index.xml') - sitemap_response = self.client.get('/callable-lastmod-partial/sitemap.xml') - self.assertNotIn('Last-Modified', index_response) - self.assertNotIn('Last-Modified', sitemap_response) + index_response = self.client.get("/callable-lastmod-partial/index.xml") + sitemap_response = self.client.get("/callable-lastmod-partial/sitemap.xml") + self.assertNotIn("Last-Modified", index_response) + self.assertNotIn("Last-Modified", sitemap_response) expected_content_index = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>http://example.com/simple/sitemap-callable-lastmod.xml</loc></sitemap> @@ -403,10 +461,14 @@ class HTTPSitemapTests(SitemapTestsBase): All items in the sitemap have `lastmod`. The `Last-Modified` header is set for the detail and index sitemap view. """ - index_response = self.client.get('/callable-lastmod-full/index.xml') - sitemap_response = self.client.get('/callable-lastmod-full/sitemap.xml') - self.assertEqual(index_response.headers['Last-Modified'], 'Thu, 13 Mar 2014 10:00:00 GMT') - self.assertEqual(sitemap_response.headers['Last-Modified'], 'Thu, 13 Mar 2014 10:00:00 GMT') + index_response = self.client.get("/callable-lastmod-full/index.xml") + sitemap_response = self.client.get("/callable-lastmod-full/sitemap.xml") + self.assertEqual( + index_response.headers["Last-Modified"], "Thu, 13 Mar 2014 10:00:00 GMT" + ) + self.assertEqual( + sitemap_response.headers["Last-Modified"], "Thu, 13 Mar 2014 10:00:00 GMT" + ) expected_content_index = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>http://example.com/simple/sitemap-callable-lastmod.xml</loc><lastmod>2014-03-13T10:00:00</lastmod></sitemap> @@ -423,27 +485,37 @@ class HTTPSitemapTests(SitemapTestsBase): # RemovedInDjango50Warning class DeprecatedTests(SitemapTestsBase): - @override_settings(TEMPLATES=[{ - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')], - }]) + @override_settings( + TEMPLATES=[ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(os.path.dirname(__file__), "templates")], + } + ] + ) def test_simple_sitemap_custom_index_warning(self): - msg = 'Calling `__str__` on SitemapIndexItem is deprecated, use the `location` attribute instead.' + msg = "Calling `__str__` on SitemapIndexItem is deprecated, use the `location` attribute instead." with self.assertRaisesMessage(RemovedInDjango50Warning, msg): - self.client.get('/simple/custom-index.xml') + self.client.get("/simple/custom-index.xml") @ignore_warnings(category=RemovedInDjango50Warning) - @override_settings(TEMPLATES=[{ - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')], - }]) + @override_settings( + TEMPLATES=[ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(os.path.dirname(__file__), "templates")], + } + ] + ) def test_simple_sitemap_custom_index(self): "A simple sitemap index can be rendered with a custom template" - response = self.client.get('/simple/custom-index.xml') + response = self.client.get("/simple/custom-index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <!-- This is a customised template --> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/simple/sitemap-simple.xml</loc></sitemap> </sitemapindex> - """ % (self.base_url) + """ % ( + self.base_url + ) self.assertXMLEqual(response.content.decode(), expected_content) diff --git a/tests/sitemaps_tests/test_https.py b/tests/sitemaps_tests/test_https.py index 1e8c28d6c3..e2923cf6f4 100644 --- a/tests/sitemaps_tests/test_https.py +++ b/tests/sitemaps_tests/test_https.py @@ -5,51 +5,63 @@ from django.test import override_settings from .base import SitemapTestsBase -@override_settings(ROOT_URLCONF='sitemaps_tests.urls.https') +@override_settings(ROOT_URLCONF="sitemaps_tests.urls.https") class HTTPSSitemapTests(SitemapTestsBase): - protocol = 'https' + protocol = "https" def test_secure_sitemap_index(self): "A secure sitemap index can be rendered" - response = self.client.get('/secure/index.xml') + response = self.client.get("/secure/index.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/secure/sitemap-simple.xml</loc><lastmod>%s</lastmod></sitemap> </sitemapindex> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_secure_sitemap_section(self): "A secure sitemap section can be rendered" - response = self.client.get('/secure/sitemap-simple.xml') + response = self.client.get("/secure/sitemap-simple.xml") expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""" % (self.base_url, date.today()) +""" % ( + self.base_url, + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) @override_settings(SECURE_PROXY_SSL_HEADER=False) class HTTPSDetectionSitemapTests(SitemapTestsBase): - extra = {'wsgi.url_scheme': 'https'} + extra = {"wsgi.url_scheme": "https"} def test_sitemap_index_with_https_request(self): "A sitemap index requested in HTTPS is rendered with HTTPS links" - response = self.client.get('/simple/index.xml', **self.extra) + response = self.client.get("/simple/index.xml", **self.extra) expected_content = """<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap><loc>%s/simple/sitemap-simple.xml</loc><lastmod>%s</lastmod></sitemap> </sitemapindex> -""" % (self.base_url.replace('http://', 'https://'), date.today()) +""" % ( + self.base_url.replace("http://", "https://"), + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) def test_sitemap_section_with_https_request(self): "A sitemap section requested in HTTPS is rendered with HTTPS links" - response = self.client.get('/simple/sitemap-simple.xml', **self.extra) + response = self.client.get("/simple/sitemap-simple.xml", **self.extra) expected_content = """<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> </urlset> -""" % (self.base_url.replace('http://', 'https://'), date.today()) +""" % ( + self.base_url.replace("http://", "https://"), + date.today(), + ) self.assertXMLEqual(response.content.decode(), expected_content) diff --git a/tests/sitemaps_tests/test_management.py b/tests/sitemaps_tests/test_management.py index f91de8ac4b..aa797216e4 100644 --- a/tests/sitemaps_tests/test_management.py +++ b/tests/sitemaps_tests/test_management.py @@ -5,13 +5,14 @@ from django.core.management import call_command from .base import SitemapTestsBase -@mock.patch('django.contrib.sitemaps.management.commands.ping_google.ping_google') +@mock.patch("django.contrib.sitemaps.management.commands.ping_google.ping_google") class PingGoogleTests(SitemapTestsBase): - def test_default(self, ping_google_func): - call_command('ping_google') + call_command("ping_google") ping_google_func.assert_called_with(sitemap_url=None, sitemap_uses_https=True) def test_args(self, ping_google_func): - call_command('ping_google', 'foo.xml', '--sitemap-uses-http') - ping_google_func.assert_called_with(sitemap_url='foo.xml', sitemap_uses_https=False) + call_command("ping_google", "foo.xml", "--sitemap-uses-http") + ping_google_func.assert_called_with( + sitemap_url="foo.xml", sitemap_uses_https=False + ) diff --git a/tests/sitemaps_tests/test_utils.py b/tests/sitemaps_tests/test_utils.py index d230e1a358..e83b50cd73 100644 --- a/tests/sitemaps_tests/test_utils.py +++ b/tests/sitemaps_tests/test_utils.py @@ -1,9 +1,7 @@ from unittest import mock from urllib.parse import urlencode -from django.contrib.sitemaps import ( - SitemapNotFound, _get_sitemap_full_url, ping_google, -) +from django.contrib.sitemaps import SitemapNotFound, _get_sitemap_full_url, ping_google from django.core.exceptions import ImproperlyConfigured from django.test import modify_settings, override_settings @@ -11,39 +9,47 @@ from .base import SitemapTestsBase class PingGoogleTests(SitemapTestsBase): - - @override_settings(ROOT_URLCONF='sitemaps_tests.urls.sitemap_only') - @mock.patch('django.contrib.sitemaps.urlopen') + @override_settings(ROOT_URLCONF="sitemaps_tests.urls.sitemap_only") + @mock.patch("django.contrib.sitemaps.urlopen") def test_something(self, urlopen): ping_google() - params = urlencode({'sitemap': 'https://example.com/sitemap-without-entries/sitemap.xml'}) - full_url = 'https://www.google.com/webmasters/tools/ping?%s' % params + params = urlencode( + {"sitemap": "https://example.com/sitemap-without-entries/sitemap.xml"} + ) + full_url = "https://www.google.com/webmasters/tools/ping?%s" % params urlopen.assert_called_with(full_url) - @override_settings(ROOT_URLCONF='sitemaps_tests.urls.sitemap_only') + @override_settings(ROOT_URLCONF="sitemaps_tests.urls.sitemap_only") def test_get_sitemap_full_url_global(self): - self.assertEqual(_get_sitemap_full_url(None), 'https://example.com/sitemap-without-entries/sitemap.xml') + self.assertEqual( + _get_sitemap_full_url(None), + "https://example.com/sitemap-without-entries/sitemap.xml", + ) - @override_settings(ROOT_URLCONF='sitemaps_tests.urls.index_only') + @override_settings(ROOT_URLCONF="sitemaps_tests.urls.index_only") def test_get_sitemap_full_url_index(self): - self.assertEqual(_get_sitemap_full_url(None), 'https://example.com/simple/index.xml') + self.assertEqual( + _get_sitemap_full_url(None), "https://example.com/simple/index.xml" + ) - @override_settings(ROOT_URLCONF='sitemaps_tests.urls.empty') + @override_settings(ROOT_URLCONF="sitemaps_tests.urls.empty") def test_get_sitemap_full_url_not_detected(self): msg = "You didn't provide a sitemap_url, and the sitemap URL couldn't be auto-detected." with self.assertRaisesMessage(SitemapNotFound, msg): _get_sitemap_full_url(None) def test_get_sitemap_full_url_exact_url(self): - self.assertEqual(_get_sitemap_full_url('/foo.xml'), 'https://example.com/foo.xml') + self.assertEqual( + _get_sitemap_full_url("/foo.xml"), "https://example.com/foo.xml" + ) def test_get_sitemap_full_url_insecure(self): self.assertEqual( - _get_sitemap_full_url('/foo.xml', sitemap_uses_https=False), - 'http://example.com/foo.xml' + _get_sitemap_full_url("/foo.xml", sitemap_uses_https=False), + "http://example.com/foo.xml", ) - @modify_settings(INSTALLED_APPS={'remove': 'django.contrib.sites'}) + @modify_settings(INSTALLED_APPS={"remove": "django.contrib.sites"}) def test_get_sitemap_full_url_no_sites(self): msg = "ping_google requires django.contrib.sites, which isn't installed." with self.assertRaisesMessage(ImproperlyConfigured, msg): diff --git a/tests/sitemaps_tests/urls/http.py b/tests/sitemaps_tests/urls/http.py index f0c0cf68b9..9a468de476 100644 --- a/tests/sitemaps_tests/urls/http.py +++ b/tests/sitemaps_tests/urls/http.py @@ -13,7 +13,7 @@ from ..models import I18nTestModel, TestModel class SimpleSitemap(Sitemap): changefreq = "never" priority = 0.5 - location = '/location/' + location = "/location/" lastmod = date.today() def items(self): @@ -33,7 +33,7 @@ class SimpleI18nSitemap(Sitemap): i18n = True def items(self): - return I18nTestModel.objects.order_by('pk').all() + return I18nTestModel.objects.order_by("pk").all() class AlternatesI18nSitemap(SimpleI18nSitemap): @@ -41,7 +41,7 @@ class AlternatesI18nSitemap(SimpleI18nSitemap): class LimitedI18nSitemap(AlternatesI18nSitemap): - languages = ['en', 'es'] + languages = ["en", "es"] class XDefaultI18nSitemap(AlternatesI18nSitemap): @@ -51,7 +51,7 @@ class XDefaultI18nSitemap(AlternatesI18nSitemap): class EmptySitemap(Sitemap): changefreq = "never" priority = 0.5 - location = '/location/' + location = "/location/" class FixedLastmodSitemap(SimpleSitemap): @@ -61,7 +61,7 @@ class FixedLastmodSitemap(SimpleSitemap): class FixedLastmodMixedSitemap(Sitemap): changefreq = "never" priority = 0.5 - location = '/location/' + location = "/location/" loop = 0 def items(self): @@ -85,7 +85,8 @@ class TimezoneSiteMap(SimpleSitemap): class CallableLastmodPartialSitemap(Sitemap): """Not all items have `lastmod`.""" - location = '/location/' + + location = "/location/" def items(self): o1 = TestModel() @@ -99,7 +100,8 @@ class CallableLastmodPartialSitemap(Sitemap): class CallableLastmodFullSitemap(Sitemap): """All items have `lastmod`.""" - location = '/location/' + + location = "/location/" def items(self): o1 = TestModel() @@ -115,7 +117,7 @@ class CallableLastmodFullSitemap(Sitemap): class GetLatestLastmodNoneSiteMap(Sitemap): changefreq = "never" priority = 0.5 - location = '/location/' + location = "/location/" def items(self): return [object()] @@ -137,216 +139,292 @@ def testmodelview(request, id): simple_sitemaps = { - 'simple': SimpleSitemap, + "simple": SimpleSitemap, } simple_i18n_sitemaps = { - 'i18n': SimpleI18nSitemap, + "i18n": SimpleI18nSitemap, } alternates_i18n_sitemaps = { - 'i18n-alternates': AlternatesI18nSitemap, + "i18n-alternates": AlternatesI18nSitemap, } limited_i18n_sitemaps = { - 'i18n-limited': LimitedI18nSitemap, + "i18n-limited": LimitedI18nSitemap, } xdefault_i18n_sitemaps = { - 'i18n-xdefault': XDefaultI18nSitemap, + "i18n-xdefault": XDefaultI18nSitemap, } simple_sitemaps_not_callable = { - 'simple': SimpleSitemap(), + "simple": SimpleSitemap(), } simple_sitemaps_paged = { - 'simple': SimplePagedSitemap, + "simple": SimplePagedSitemap, } empty_sitemaps = { - 'empty': EmptySitemap, + "empty": EmptySitemap, } fixed_lastmod_sitemaps = { - 'fixed-lastmod': FixedLastmodSitemap, + "fixed-lastmod": FixedLastmodSitemap, } fixed_lastmod_mixed_sitemaps = { - 'fixed-lastmod-mixed': FixedLastmodMixedSitemap, + "fixed-lastmod-mixed": FixedLastmodMixedSitemap, } sitemaps_lastmod_mixed_ascending = { - 'no-lastmod': EmptySitemap, - 'lastmod': FixedLastmodSitemap, + "no-lastmod": EmptySitemap, + "lastmod": FixedLastmodSitemap, } sitemaps_lastmod_mixed_descending = { - 'lastmod': FixedLastmodSitemap, - 'no-lastmod': EmptySitemap, + "lastmod": FixedLastmodSitemap, + "no-lastmod": EmptySitemap, } sitemaps_lastmod_ascending = { - 'date': DateSiteMap, - 'datetime': FixedLastmodSitemap, - 'datetime-newer': FixedNewerLastmodSitemap, + "date": DateSiteMap, + "datetime": FixedLastmodSitemap, + "datetime-newer": FixedNewerLastmodSitemap, } sitemaps_lastmod_descending = { - 'datetime-newer': FixedNewerLastmodSitemap, - 'datetime': FixedLastmodSitemap, - 'date': DateSiteMap, + "datetime-newer": FixedNewerLastmodSitemap, + "datetime": FixedLastmodSitemap, + "date": DateSiteMap, } generic_sitemaps = { - 'generic': GenericSitemap({'queryset': TestModel.objects.order_by('pk').all()}), + "generic": GenericSitemap({"queryset": TestModel.objects.order_by("pk").all()}), } get_latest_lastmod_none_sitemaps = { - 'get-latest-lastmod-none': GetLatestLastmodNoneSiteMap, + "get-latest-lastmod-none": GetLatestLastmodNoneSiteMap, } get_latest_lastmod_sitemaps = { - 'get-latest-lastmod': GetLatestLastmodSiteMap, + "get-latest-lastmod": GetLatestLastmodSiteMap, } latest_lastmod_timezone_sitemaps = { - 'latest-lastmod-timezone': TimezoneSiteMap, + "latest-lastmod-timezone": TimezoneSiteMap, } generic_sitemaps_lastmod = { - 'generic': GenericSitemap({ - 'queryset': TestModel.objects.order_by('pk').all(), - 'date_field': 'lastmod', - }), + "generic": GenericSitemap( + { + "queryset": TestModel.objects.order_by("pk").all(), + "date_field": "lastmod", + } + ), } callable_lastmod_partial_sitemap = { - 'callable-lastmod': CallableLastmodPartialSitemap, + "callable-lastmod": CallableLastmodPartialSitemap, } callable_lastmod_full_sitemap = { - 'callable-lastmod': CallableLastmodFullSitemap, + "callable-lastmod": CallableLastmodFullSitemap, } urlpatterns = [ - path('simple/index.xml', views.index, {'sitemaps': simple_sitemaps}), - path('simple-paged/index.xml', views.index, {'sitemaps': simple_sitemaps_paged}), - path('simple-not-callable/index.xml', views.index, {'sitemaps': simple_sitemaps_not_callable}), + path("simple/index.xml", views.index, {"sitemaps": simple_sitemaps}), + path("simple-paged/index.xml", views.index, {"sitemaps": simple_sitemaps_paged}), path( - 'simple/custom-index.xml', views.index, - {'sitemaps': simple_sitemaps, 'template_name': 'custom_sitemap_index.xml'}), + "simple-not-callable/index.xml", + views.index, + {"sitemaps": simple_sitemaps_not_callable}, + ), path( - 'simple/custom-lastmod-index.xml', views.index, - {'sitemaps': simple_sitemaps, 'template_name': 'custom_sitemap_lastmod_index.xml'}, + "simple/custom-index.xml", + views.index, + {"sitemaps": simple_sitemaps, "template_name": "custom_sitemap_index.xml"}, ), path( - 'simple/sitemap-<section>.xml', views.sitemap, - {'sitemaps': simple_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "simple/custom-lastmod-index.xml", + views.index, + { + "sitemaps": simple_sitemaps, + "template_name": "custom_sitemap_lastmod_index.xml", + }, + ), path( - 'simple/sitemap.xml', views.sitemap, - {'sitemaps': simple_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "simple/sitemap-<section>.xml", + views.sitemap, + {"sitemaps": simple_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'simple/i18n.xml', views.sitemap, - {'sitemaps': simple_i18n_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "simple/sitemap.xml", + views.sitemap, + {"sitemaps": simple_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'alternates/i18n.xml', views.sitemap, - {'sitemaps': alternates_i18n_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "simple/i18n.xml", + views.sitemap, + {"sitemaps": simple_i18n_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'limited/i18n.xml', views.sitemap, - {'sitemaps': limited_i18n_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "alternates/i18n.xml", + views.sitemap, + {"sitemaps": alternates_i18n_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'x-default/i18n.xml', views.sitemap, - {'sitemaps': xdefault_i18n_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "limited/i18n.xml", + views.sitemap, + {"sitemaps": limited_i18n_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'simple/custom-sitemap.xml', views.sitemap, - {'sitemaps': simple_sitemaps, 'template_name': 'custom_sitemap.xml'}, - name='django.contrib.sitemaps.views.sitemap'), + "x-default/i18n.xml", + views.sitemap, + {"sitemaps": xdefault_i18n_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'empty/sitemap.xml', views.sitemap, - {'sitemaps': empty_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "simple/custom-sitemap.xml", + views.sitemap, + {"sitemaps": simple_sitemaps, "template_name": "custom_sitemap.xml"}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod/sitemap.xml', views.sitemap, - {'sitemaps': fixed_lastmod_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "empty/sitemap.xml", + views.sitemap, + {"sitemaps": empty_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod-mixed/sitemap.xml', views.sitemap, - {'sitemaps': fixed_lastmod_mixed_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod/sitemap.xml", + views.sitemap, + {"sitemaps": fixed_lastmod_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod/date-sitemap.xml', views.sitemap, - {'sitemaps': {'date-sitemap': DateSiteMap}}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod-mixed/sitemap.xml", + views.sitemap, + {"sitemaps": fixed_lastmod_mixed_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod/tz-sitemap.xml', views.sitemap, - {'sitemaps': {'tz-sitemap': TimezoneSiteMap}}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod/date-sitemap.xml", + views.sitemap, + {"sitemaps": {"date-sitemap": DateSiteMap}}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod-sitemaps/mixed-ascending.xml', views.sitemap, - {'sitemaps': sitemaps_lastmod_mixed_ascending}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod/tz-sitemap.xml", + views.sitemap, + {"sitemaps": {"tz-sitemap": TimezoneSiteMap}}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod-sitemaps/mixed-descending.xml', views.sitemap, - {'sitemaps': sitemaps_lastmod_mixed_descending}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod-sitemaps/mixed-ascending.xml", + views.sitemap, + {"sitemaps": sitemaps_lastmod_mixed_ascending}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod-sitemaps/ascending.xml', views.sitemap, - {'sitemaps': sitemaps_lastmod_ascending}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod-sitemaps/mixed-descending.xml", + views.sitemap, + {"sitemaps": sitemaps_lastmod_mixed_descending}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod-sitemaps/descending.xml', views.sitemap, - {'sitemaps': sitemaps_lastmod_descending}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod-sitemaps/ascending.xml", + views.sitemap, + {"sitemaps": sitemaps_lastmod_ascending}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'lastmod/get-latest-lastmod-none-sitemap.xml', views.index, - {'sitemaps': get_latest_lastmod_none_sitemaps}, - name='django.contrib.sitemaps.views.index', + "lastmod-sitemaps/descending.xml", + views.sitemap, + {"sitemaps": sitemaps_lastmod_descending}, + name="django.contrib.sitemaps.views.sitemap", ), path( - 'lastmod/get-latest-lastmod-sitemap.xml', views.index, - {'sitemaps': get_latest_lastmod_sitemaps}, - name='django.contrib.sitemaps.views.index', + "lastmod/get-latest-lastmod-none-sitemap.xml", + views.index, + {"sitemaps": get_latest_lastmod_none_sitemaps}, + name="django.contrib.sitemaps.views.index", ), path( - 'lastmod/latest-lastmod-timezone-sitemap.xml', views.index, - {'sitemaps': latest_lastmod_timezone_sitemaps}, - name='django.contrib.sitemaps.views.index', + "lastmod/get-latest-lastmod-sitemap.xml", + views.index, + {"sitemaps": get_latest_lastmod_sitemaps}, + name="django.contrib.sitemaps.views.index", ), path( - 'generic/sitemap.xml', views.sitemap, - {'sitemaps': generic_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "lastmod/latest-lastmod-timezone-sitemap.xml", + views.index, + {"sitemaps": latest_lastmod_timezone_sitemaps}, + name="django.contrib.sitemaps.views.index", + ), path( - 'generic-lastmod/sitemap.xml', views.sitemap, - {'sitemaps': generic_sitemaps_lastmod}, - name='django.contrib.sitemaps.views.sitemap'), + "generic/sitemap.xml", + views.sitemap, + {"sitemaps": generic_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'cached/index.xml', cache_page(1)(views.index), - {'sitemaps': simple_sitemaps, 'sitemap_url_name': 'cached_sitemap'}), + "generic-lastmod/sitemap.xml", + views.sitemap, + {"sitemaps": generic_sitemaps_lastmod}, + name="django.contrib.sitemaps.views.sitemap", + ), path( - 'cached/sitemap-<section>.xml', cache_page(1)(views.sitemap), - {'sitemaps': simple_sitemaps}, name='cached_sitemap'), + "cached/index.xml", + cache_page(1)(views.index), + {"sitemaps": simple_sitemaps, "sitemap_url_name": "cached_sitemap"}, + ), + path( + "cached/sitemap-<section>.xml", + cache_page(1)(views.sitemap), + {"sitemaps": simple_sitemaps}, + name="cached_sitemap", + ), path( - 'sitemap-without-entries/sitemap.xml', views.sitemap, - {'sitemaps': {}}, name='django.contrib.sitemaps.views.sitemap'), - path('callable-lastmod-partial/index.xml', views.index, {'sitemaps': callable_lastmod_partial_sitemap}), - path('callable-lastmod-partial/sitemap.xml', views.sitemap, {'sitemaps': callable_lastmod_partial_sitemap}), - path('callable-lastmod-full/index.xml', views.index, {'sitemaps': callable_lastmod_full_sitemap}), - path('callable-lastmod-full/sitemap.xml', views.sitemap, {'sitemaps': callable_lastmod_full_sitemap}), + "sitemap-without-entries/sitemap.xml", + views.sitemap, + {"sitemaps": {}}, + name="django.contrib.sitemaps.views.sitemap", + ), + path( + "callable-lastmod-partial/index.xml", + views.index, + {"sitemaps": callable_lastmod_partial_sitemap}, + ), + path( + "callable-lastmod-partial/sitemap.xml", + views.sitemap, + {"sitemaps": callable_lastmod_partial_sitemap}, + ), + path( + "callable-lastmod-full/index.xml", + views.index, + {"sitemaps": callable_lastmod_full_sitemap}, + ), + path( + "callable-lastmod-full/sitemap.xml", + views.sitemap, + {"sitemaps": callable_lastmod_full_sitemap}, + ), path( - 'generic-lastmod/index.xml', views.index, - {'sitemaps': generic_sitemaps_lastmod}, - name='django.contrib.sitemaps.views.index', + "generic-lastmod/index.xml", + views.index, + {"sitemaps": generic_sitemaps_lastmod}, + name="django.contrib.sitemaps.views.index", ), ] urlpatterns += i18n_patterns( - path('i18n/testmodel/<int:id>/', testmodelview, name='i18n_testmodel'), + path("i18n/testmodel/<int:id>/", testmodelview, name="i18n_testmodel"), ) diff --git a/tests/sitemaps_tests/urls/https.py b/tests/sitemaps_tests/urls/https.py index 191fb5163e..da7ecaf5db 100644 --- a/tests/sitemaps_tests/urls/https.py +++ b/tests/sitemaps_tests/urls/https.py @@ -5,17 +5,19 @@ from .http import SimpleSitemap class HTTPSSitemap(SimpleSitemap): - protocol = 'https' + protocol = "https" secure_sitemaps = { - 'simple': HTTPSSitemap, + "simple": HTTPSSitemap, } urlpatterns = [ - path('secure/index.xml', views.index, {'sitemaps': secure_sitemaps}), + path("secure/index.xml", views.index, {"sitemaps": secure_sitemaps}), path( - 'secure/sitemap-<section>.xml', views.sitemap, - {'sitemaps': secure_sitemaps}, - name='django.contrib.sitemaps.views.sitemap'), + "secure/sitemap-<section>.xml", + views.sitemap, + {"sitemaps": secure_sitemaps}, + name="django.contrib.sitemaps.views.sitemap", + ), ] diff --git a/tests/sitemaps_tests/urls/index_only.py b/tests/sitemaps_tests/urls/index_only.py index 6f8f8e162e..238172b2e8 100644 --- a/tests/sitemaps_tests/urls/index_only.py +++ b/tests/sitemaps_tests/urls/index_only.py @@ -5,6 +5,9 @@ from .http import simple_sitemaps urlpatterns = [ path( - 'simple/index.xml', views.index, {'sitemaps': simple_sitemaps}, - name='django.contrib.sitemaps.views.index'), + "simple/index.xml", + views.index, + {"sitemaps": simple_sitemaps}, + name="django.contrib.sitemaps.views.index", + ), ] diff --git a/tests/sitemaps_tests/urls/sitemap_only.py b/tests/sitemaps_tests/urls/sitemap_only.py index 3831fe4787..1b23977b28 100644 --- a/tests/sitemaps_tests/urls/sitemap_only.py +++ b/tests/sitemaps_tests/urls/sitemap_only.py @@ -3,7 +3,9 @@ from django.urls import path urlpatterns = [ path( - 'sitemap-without-entries/sitemap.xml', views.sitemap, - {'sitemaps': {}}, name='django.contrib.sitemaps.views.sitemap', + "sitemap-without-entries/sitemap.xml", + views.sitemap, + {"sitemaps": {}}, + name="django.contrib.sitemaps.views.sitemap", ), ] |
