Commit 69870485 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

[1.2.X] Fixed #15111 -- Ensured that the auth, contenttypes and sitemaps tests...

[1.2.X] 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.

Backport of r15418 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15419 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 69350660
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -191,9 +191,12 @@ class LoginTest(AuthViewsTestCase):
    def test_current_site_in_context_after_login(self):
        response = self.client.get(reverse('django.contrib.auth.views.login'))
        self.assertEquals(response.status_code, 200)
        if Site._meta.installed:
            site = Site.objects.get_current()
            self.assertEquals(response.context['site'], site)
            self.assertEquals(response.context['site_name'], site.name)
        else:
            self.assertTrue(isinstance(response.context['site'], RequestSite))
        self.assert_(isinstance(response.context['form'], AuthenticationForm),
                     'Login form is not an AuthenticationForm')

+5 −3
Original line number Diff line number Diff line
@@ -61,9 +61,11 @@ class ContentTypesTests(TestCase):
        from django.contrib.auth.models import User
        user_ct = ContentType.objects.get_for_model(User)
        obj = User.objects.create(username="john")
        Site._meta.installed = True

        if Site._meta.installed:
            response = shortcut(request, user_ct.id, obj.id)
            self.assertEqual("http://example.com/users/john/", response._headers.get("location")[1])

        Site._meta.installed = False
        response = shortcut(request, user_ct.id, obj.id)
        self.assertEqual("http://Example.com/users/john/", response._headers.get("location")[1])
+18 −15
Original line number Diff line number Diff line
@@ -13,6 +13,10 @@ class SitemapTests(TestCase):
    urls = 'django.contrib.sitemaps.tests.urls'

    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_Site_meta_installed = Site._meta.installed
        # Create a user that will double as sitemap content
@@ -29,9 +33,9 @@ class SitemapTests(TestCase):
        # Check for all the important bits:
        self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<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>
""" % date.today().strftime('%Y-%m-%d'))
""" % (self.base_url, date.today().strftime('%Y-%m-%d')))

    if settings.USE_I18N:
        def test_localized_priority(self):
@@ -55,7 +59,7 @@ class SitemapTests(TestCase):

        expected = ''
        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:
        self.assertEquals(response.content, """<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
@@ -89,9 +93,9 @@ class SitemapTests(TestCase):
            private.sites.add(settings.SITE_ID)
            response = self.client.get('/flatpages/sitemap.xml')
            # Public flatpage should be in the sitemap
            self.assertContains(response, '<loc>http://example.com%s</loc>' % public.url)
            self.assertContains(response, '<loc>http://%s%s</loc>' % (self.base_url, public.url))
            # Private flatpage should not be in the sitemap
            self.assertNotContains(response, '<loc>http://example.com%s</loc>' % private.url)
            self.assertNotContains(response, '<loc>http://%s%s</loc>' % (self.base_url, private.url))

    def test_requestsite_sitemap(self):
        # Make sure hitting the flatpages sitemap without the sites framework
@@ -106,12 +110,12 @@ class SitemapTests(TestCase):
</urlset>
""" % date.today().strftime('%Y-%m-%d'))

    if "django.contrib.sites" in settings.INSTALLED_APPS:
        def test_sitemap_get_urls_no_site_1(self):
            """
            Check we get ImproperlyConfigured if we don't pass a site object to
            Sitemap.get_urls and no Site objects exist
            """
        Site._meta.installed = True
            Site.objects.all().delete()
            self.assertRaises(ImproperlyConfigured, Sitemap().get_urls)

@@ -121,6 +125,5 @@ class SitemapTests(TestCase):
        Sitemap.get_urls if Site objects exists, but the sites framework is not
        actually installed.
        """
        Site.objects.get_current()
        Site._meta.installed = False
        self.assertRaises(ImproperlyConfigured, Sitemap().get_urls)