diff options
| author | Adam Chainz <adam@adamj.eu> | 2016-11-22 11:56:22 +0000 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-11-22 18:27:19 -0500 |
| commit | 10d49b96e667d3936c169e2bead2cf93748451af (patch) | |
| tree | ab4dac978e1e74c39c00838ffae6026420b3aac2 /tests/sitemaps_tests/test_utils.py | |
| parent | b1a9041535db5d03dab7f205669f0ab7a47de854 (diff) | |
Added tests for contrib.sitemaps.ping_google().
Diffstat (limited to 'tests/sitemaps_tests/test_utils.py')
| -rw-r--r-- | tests/sitemaps_tests/test_utils.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/sitemaps_tests/test_utils.py b/tests/sitemaps_tests/test_utils.py new file mode 100644 index 0000000000..ba1eadd5d1 --- /dev/null +++ b/tests/sitemaps_tests/test_utils.py @@ -0,0 +1,40 @@ +from django.contrib.sitemaps import ( + SitemapNotFound, _get_sitemap_full_url, ping_google, +) +from django.core.exceptions import ImproperlyConfigured +from django.test import mock, modify_settings, override_settings +from django.utils.six.moves.urllib.parse import urlencode + +from .base import SitemapTestsBase + + +class PingGoogleTests(SitemapTestsBase): + + @mock.patch('django.contrib.sitemaps.urlopen') + def test_something(self, urlopen): + ping_google() + params = urlencode({'sitemap': 'http://example.com/sitemap-without-entries/sitemap.xml'}) + full_url = 'https://www.google.com/webmasters/tools/ping?%s' % params + urlopen.assert_called_with(full_url) + + def test_get_sitemap_full_url_global(self): + self.assertEqual(_get_sitemap_full_url(None), 'http://example.com/sitemap-without-entries/sitemap.xml') + + @override_settings(ROOT_URLCONF='sitemaps_tests.urls.index_only') + def test_get_sitemap_full_url_index(self): + self.assertEqual(_get_sitemap_full_url(None), 'http://example.com/simple/index.xml') + + @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'), 'http://example.com/foo.xml') + + @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): + _get_sitemap_full_url(None) |
