From fbc467c26bc0adb9867b97d0bb5642b2a85eb357 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 10 Feb 2015 08:11:25 -0500 Subject: Moved contrib.sitemaps tests out of contrib. --- tests/sitemaps_tests/test_https.py | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tests/sitemaps_tests/test_https.py (limited to 'tests/sitemaps_tests/test_https.py') diff --git a/tests/sitemaps_tests/test_https.py b/tests/sitemaps_tests/test_https.py new file mode 100644 index 0000000000..f7b363dfe2 --- /dev/null +++ b/tests/sitemaps_tests/test_https.py @@ -0,0 +1,72 @@ +from __future__ import unicode_literals + +from datetime import date + +from django.test import ignore_warnings, override_settings +from django.utils.deprecation import RemovedInDjango20Warning + +from .base import SitemapTestsBase + + +@override_settings(ROOT_URLCONF='sitemaps_tests.urls.https') +class HTTPSSitemapTests(SitemapTestsBase): + protocol = 'https' + + @ignore_warnings(category=RemovedInDjango20Warning) + def test_secure_sitemap_index(self): + "A secure sitemap index can be rendered" + # The URL for views.sitemap in tests/urls/https.py has been updated + # with a name but since reversing by Python path is tried first + # before reversing by name and works since we're giving + # name='django.contrib.sitemaps.views.sitemap', we need to silence + # the erroneous warning until reversing by dotted path is removed. + # The test will work without modification when it's removed. + response = self.client.get('/secure/index.xml') + expected_content = """ + +%s/secure/sitemap-simple.xml + +""" % self.base_url + self.assertXMLEqual(response.content.decode('utf-8'), expected_content) + + def test_secure_sitemap_section(self): + "A secure sitemap section can be rendered" + response = self.client.get('/secure/sitemap-simple.xml') + expected_content = """ + +%s/location/%snever0.5 + +""" % (self.base_url, date.today()) + self.assertXMLEqual(response.content.decode('utf-8'), expected_content) + + +@override_settings(SECURE_PROXY_SSL_HEADER=False) +class HTTPSDetectionSitemapTests(SitemapTestsBase): + extra = {'wsgi.url_scheme': 'https'} + + @ignore_warnings(category=RemovedInDjango20Warning) + def test_sitemap_index_with_https_request(self): + "A sitemap index requested in HTTPS is rendered with HTTPS links" + # The URL for views.sitemap in tests/urls/https.py has been updated + # with a name but since reversing by Python path is tried first + # before reversing by name and works since we're giving + # name='django.contrib.sitemaps.views.sitemap', we need to silence + # the erroneous warning until reversing by dotted path is removed. + # The test will work without modification when it's removed. + response = self.client.get('/simple/index.xml', **self.extra) + expected_content = """ + +%s/simple/sitemap-simple.xml + +""" % self.base_url.replace('http://', 'https://') + self.assertXMLEqual(response.content.decode('utf-8'), 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) + expected_content = """ + +%s/location/%snever0.5 + +""" % (self.base_url.replace('http://', 'https://'), date.today()) + self.assertXMLEqual(response.content.decode('utf-8'), expected_content) -- cgit v1.3