~ubuntu-branches/ubuntu/quantal/python-django/quantal-security

« back to all changes in this revision

Viewing changes to django/contrib/flatpages/tests/middleware.py

  • Committer: Bazaar Package Importer
  • Author(s): Jamie Strandboge
  • Date: 2010-10-12 11:34:35 UTC
  • mfrom: (1.1.12 upstream) (29.1.1 maverick-security)
  • Revision ID: james.westby@ubuntu.com-20101012113435-yy57c8tx6g9anf3e
Tags: 1.2.3-1ubuntu0.1
* SECURITY UPDATE: XSS in CSRF protections. New upstream release
  - CVE-2010-3082
* debian/patches/01_disable_url_verify_regression_tests.diff:
  - updated to disable another test that fails without internet connection
  - patch based on work by Kai Kasurinen and Krzysztof Klimonda
* debian/control: don't Build-Depends on locales-all, which doesn't exist
  in maverick

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import os
 
2
from django.conf import settings
 
3
from django.test import TestCase
 
4
 
 
5
class FlatpageMiddlewareTests(TestCase):
 
6
    fixtures = ['sample_flatpages']
 
7
    urls = 'django.contrib.flatpages.tests.urls'
 
8
 
 
9
    def setUp(self):
 
10
        self.old_MIDDLEWARE_CLASSES = settings.MIDDLEWARE_CLASSES
 
11
        flatpage_middleware_class = 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'
 
12
        if flatpage_middleware_class not in settings.MIDDLEWARE_CLASSES:
 
13
            settings.MIDDLEWARE_CLASSES += (flatpage_middleware_class,)
 
14
        self.old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS
 
15
        settings.TEMPLATE_DIRS = (
 
16
            os.path.join(
 
17
                os.path.dirname(__file__),
 
18
                'templates'
 
19
            ),
 
20
        )
 
21
 
 
22
    def tearDown(self):
 
23
        settings.MIDDLEWARE_CLASSES = self.old_MIDDLEWARE_CLASSES
 
24
        settings.TEMPLATE_DIRS = self.old_TEMPLATE_DIRS
 
25
 
 
26
    def test_view_flatpage(self):
 
27
        "A flatpage can be served through a view, even when the middleware is in use"
 
28
        response = self.client.get('/flatpage_root/flatpage/')
 
29
        self.assertEquals(response.status_code, 200)
 
30
        self.assertContains(response, "<p>Isn't it flat!</p>")
 
31
 
 
32
    def test_view_non_existent_flatpage(self):
 
33
        "A non-existent flatpage raises 404 when served through a view, even when the middleware is in use"
 
34
        response = self.client.get('/flatpage_root/no_such_flatpage/')
 
35
        self.assertEquals(response.status_code, 404)
 
36
 
 
37
    def test_view_authenticated_flatpage(self):
 
38
        "A flatpage served through a view can require authentication"
 
39
        response = self.client.get('/flatpage_root/sekrit/')
 
40
        self.assertRedirects(response, '/accounts/login/?next=/flatpage_root/sekrit/')
 
41
 
 
42
    def test_fallback_flatpage(self):
 
43
        "A flatpage can be served by the fallback middlware"
 
44
        response = self.client.get('/flatpage/')
 
45
        self.assertEquals(response.status_code, 200)
 
46
        self.assertContains(response, "<p>Isn't it flat!</p>")
 
47
 
 
48
    def test_fallback_non_existent_flatpage(self):
 
49
        "A non-existent flatpage raises a 404 when served by the fallback middlware"
 
50
        response = self.client.get('/no_such_flatpage/')
 
51
        self.assertEquals(response.status_code, 404)
 
52
 
 
53
    def test_fallback_authenticated_flatpage(self):
 
54
        "A flatpage served by the middleware can require authentication"
 
55
        response = self.client.get('/sekrit/')
 
56
        self.assertRedirects(response, '/accounts/login/?next=/sekrit/')