0
0
mirror of https://github.com/django/django.git synced 2024-12-01 15:42:04 +01:00

Fixed #15111 -- Ensured that the auth, contenttypes and sitemaps tests will run when the sites app isn't installed. Thanks to Waldemar Kornewald for the report and draft patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15418 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2011-02-05 03:49:03 +00:00
parent 2d7049c4ee
commit 7a60b41130
3 changed files with 31 additions and 21 deletions

View File

@ -5,7 +5,7 @@ import urllib
from django.conf import settings from django.conf import settings
from django.contrib.auth import SESSION_KEY, REDIRECT_FIELD_NAME from django.contrib.auth import SESSION_KEY, REDIRECT_FIELD_NAME
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm
from django.contrib.sites.models import Site from django.contrib.sites.models import Site, RequestSite
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.test import TestCase from django.test import TestCase
from django.core import mail from django.core import mail
@ -198,9 +198,12 @@ class LoginTest(AuthViewsTestCase):
def test_current_site_in_context_after_login(self): def test_current_site_in_context_after_login(self):
response = self.client.get(reverse('django.contrib.auth.views.login')) response = self.client.get(reverse('django.contrib.auth.views.login'))
self.assertEquals(response.status_code, 200) self.assertEquals(response.status_code, 200)
site = Site.objects.get_current() if Site._meta.installed:
self.assertEquals(response.context['site'], site) site = Site.objects.get_current()
self.assertEquals(response.context['site_name'], site.name) self.assertEquals(response.context['site'], site)
self.assertEquals(response.context['site_name'], site.name)
else:
self.assertIsInstance(response.context['site'], RequestSite)
self.assert_(isinstance(response.context['form'], AuthenticationForm), self.assert_(isinstance(response.context['form'], AuthenticationForm),
'Login form is not an AuthenticationForm') 'Login form is not an AuthenticationForm')

View File

@ -61,9 +61,11 @@ class ContentTypesTests(TestCase):
from django.contrib.auth.models import User from django.contrib.auth.models import User
user_ct = ContentType.objects.get_for_model(User) user_ct = ContentType.objects.get_for_model(User)
obj = User.objects.create(username="john") obj = User.objects.create(username="john")
Site._meta.installed = True
response = shortcut(request, user_ct.id, obj.id) if Site._meta.installed:
self.assertEqual("http://example.com/users/john/", response._headers.get("location")[1]) response = shortcut(request, user_ct.id, obj.id)
self.assertEqual("http://example.com/users/john/", response._headers.get("location")[1])
Site._meta.installed = False Site._meta.installed = False
response = shortcut(request, user_ct.id, obj.id) response = shortcut(request, user_ct.id, obj.id)
self.assertEqual("http://Example.com/users/john/", response._headers.get("location")[1]) self.assertEqual("http://Example.com/users/john/", response._headers.get("location")[1])

View File

@ -15,9 +15,14 @@ class SitemapTests(TestCase):
urls = 'django.contrib.sitemaps.tests.urls' urls = 'django.contrib.sitemaps.tests.urls'
def setUp(self): def setUp(self):
if Site._meta.installed:
self.base_url = 'http://example.com'
else:
self.base_url = 'http://testserver'
self.old_USE_L10N = settings.USE_L10N self.old_USE_L10N = settings.USE_L10N
self.old_Site_meta_installed = Site._meta.installed self.old_Site_meta_installed = Site._meta.installed
self.old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS self.old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS
self.old_Site_meta_installed = Site._meta.installed
settings.TEMPLATE_DIRS = ( settings.TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), 'templates'), os.path.join(os.path.dirname(__file__), 'templates'),
) )
@ -28,6 +33,7 @@ class SitemapTests(TestCase):
settings.USE_L10N = self.old_USE_L10N settings.USE_L10N = self.old_USE_L10N
Site._meta.installed = self.old_Site_meta_installed Site._meta.installed = self.old_Site_meta_installed
settings.TEMPLATE_DIRS = self.old_TEMPLATE_DIRS settings.TEMPLATE_DIRS = self.old_TEMPLATE_DIRS
Site._meta.installed = self.old_Site_meta_installed
def test_simple_sitemap_index(self): def test_simple_sitemap_index(self):
"A simple sitemap index can be rendered" "A simple sitemap index can be rendered"
@ -36,9 +42,9 @@ class SitemapTests(TestCase):
# Check for all the important bits: # Check for all the important bits:
self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?> self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>http://example.com/simple/sitemap-simple.xml</loc></sitemap> <sitemap><loc>%s/simple/sitemap-simple.xml</loc></sitemap>
</sitemapindex> </sitemapindex>
""") """ % self.base_url)
def test_simple_sitemap_custom_index(self): def test_simple_sitemap_custom_index(self):
"A simple sitemap index can be rendered with a custom template" "A simple sitemap index can be rendered with a custom template"
@ -48,9 +54,9 @@ class SitemapTests(TestCase):
self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?> self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<!-- This is a customised template --> <!-- This is a customised template -->
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>http://example.com/simple/sitemap-simple.xml</loc></sitemap> <sitemap><loc>%s/simple/sitemap-simple.xml</loc></sitemap>
</sitemapindex> </sitemapindex>
""") """ % self.base_url)
def test_simple_sitemap(self): def test_simple_sitemap(self):
"A simple sitemap can be rendered" "A simple sitemap can be rendered"
@ -59,9 +65,9 @@ class SitemapTests(TestCase):
# Check for all the important bits: # Check for all the important bits:
self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?> self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>http://example.com/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url>
</urlset> </urlset>
""" % date.today().strftime('%Y-%m-%d')) """ % (self.base_url, date.today().strftime('%Y-%m-%d')))
def test_simple_custom_sitemap(self): def test_simple_custom_sitemap(self):
"A simple sitemap can be rendered with a custom template" "A simple sitemap can be rendered with a custom template"
@ -71,9 +77,9 @@ class SitemapTests(TestCase):
self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?> self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<!-- This is a customised template --> <!-- This is a customised template -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>http://example.com/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url> <url><loc>%s/location/</loc><lastmod>%s</lastmod><changefreq>never</changefreq><priority>0.5</priority></url>
</urlset> </urlset>
""" % date.today().strftime('%Y-%m-%d')) """ % (self.base_url, date.today().strftime('%Y-%m-%d')))
@skipUnless(settings.USE_I18N, "Internationalization is not enabled") @skipUnless(settings.USE_I18N, "Internationalization is not enabled")
def test_localized_priority(self): def test_localized_priority(self):
@ -97,13 +103,13 @@ class SitemapTests(TestCase):
expected = '' expected = ''
for username in User.objects.values_list("username", flat=True): for username in User.objects.values_list("username", flat=True):
expected += "<url><loc>http://example.com/users/%s/</loc></url>" %username expected += "<url><loc>%s/users/%s/</loc></url>" % (self.base_url, username)
# Check for all the important bits: # Check for all the important bits:
self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?> self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
%s %s
</urlset> </urlset>
""" %expected) """ % expected)
@skipUnless("django.contrib.flatpages" in settings.INSTALLED_APPS, "django.contrib.flatpages app not installed.") @skipUnless("django.contrib.flatpages" in settings.INSTALLED_APPS, "django.contrib.flatpages app not installed.")
def test_flatpage_sitemap(self): def test_flatpage_sitemap(self):
@ -131,9 +137,9 @@ class SitemapTests(TestCase):
private.sites.add(settings.SITE_ID) private.sites.add(settings.SITE_ID)
response = self.client.get('/flatpages/sitemap.xml') response = self.client.get('/flatpages/sitemap.xml')
# Public flatpage should be in the sitemap # Public flatpage should be in the sitemap
self.assertContains(response, '<loc>http://example.com%s</loc>' % public.url) self.assertContains(response, '<loc>%s%s</loc>' % (self.base_url, public.url))
# Private flatpage should not be in the sitemap # Private flatpage should not be in the sitemap
self.assertNotContains(response, '<loc>http://example.com%s</loc>' % private.url) self.assertNotContains(response, '<loc>%s%s</loc>' % (self.base_url, private.url))
def test_requestsite_sitemap(self): def test_requestsite_sitemap(self):
# Make sure hitting the flatpages sitemap without the sites framework # Make sure hitting the flatpages sitemap without the sites framework
@ -148,12 +154,12 @@ class SitemapTests(TestCase):
</urlset> </urlset>
""" % date.today().strftime('%Y-%m-%d')) """ % date.today().strftime('%Y-%m-%d'))
@skipUnless("django.contrib.sites" in settings.INSTALLED_APPS, "django.contrib.sites app not installed.")
def test_sitemap_get_urls_no_site_1(self): def test_sitemap_get_urls_no_site_1(self):
""" """
Check we get ImproperlyConfigured if we don't pass a site object to Check we get ImproperlyConfigured if we don't pass a site object to
Sitemap.get_urls and no Site objects exist Sitemap.get_urls and no Site objects exist
""" """
Site._meta.installed = True
Site.objects.all().delete() Site.objects.all().delete()
self.assertRaises(ImproperlyConfigured, Sitemap().get_urls) self.assertRaises(ImproperlyConfigured, Sitemap().get_urls)
@ -163,6 +169,5 @@ class SitemapTests(TestCase):
Sitemap.get_urls if Site objects exists, but the sites framework is not Sitemap.get_urls if Site objects exists, but the sites framework is not
actually installed. actually installed.
""" """
Site.objects.get_current()
Site._meta.installed = False Site._meta.installed = False
self.assertRaises(ImproperlyConfigured, Sitemap().get_urls) self.assertRaises(ImproperlyConfigured, Sitemap().get_urls)