~ubuntu-branches/ubuntu/saucy/python-django/saucy-updates

« back to all changes in this revision

Viewing changes to django/contrib/auth/tests/remote_user.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone, Jakub Wilk, Luke Faraone
  • Date: 2013-05-09 15:10:47 UTC
  • mfrom: (1.1.21) (4.4.27 sid)
  • Revision ID: package-import@ubuntu.com-20130509151047-aqv8d71oj9wvcv8c
Tags: 1.5.1-2
[ Jakub Wilk ]
* Use canonical URIs for Vcs-* fields.

[ Luke Faraone ]
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from datetime import datetime
2
2
 
3
3
from django.conf import settings
 
4
from django.contrib.auth import authenticate
4
5
from django.contrib.auth.backends import RemoteUserBackend
5
 
from django.contrib.auth.models import User
 
6
from django.contrib.auth.models import User, AnonymousUser
 
7
from django.contrib.auth.tests.utils import skipIfCustomUser
6
8
from django.test import TestCase
7
9
from django.utils import timezone
8
10
 
9
11
 
 
12
@skipIfCustomUser
10
13
class RemoteUserTest(TestCase):
11
14
 
12
15
    urls = 'django.contrib.auth.tests.urls'
21
24
        self.curr_middleware = settings.MIDDLEWARE_CLASSES
22
25
        self.curr_auth = settings.AUTHENTICATION_BACKENDS
23
26
        settings.MIDDLEWARE_CLASSES += (self.middleware,)
24
 
        settings.AUTHENTICATION_BACKENDS = (self.backend,)
 
27
        settings.AUTHENTICATION_BACKENDS += (self.backend,)
25
28
 
26
29
    def test_no_remote_user(self):
27
30
        """
95
98
        response = self.client.get('/remote_user/', REMOTE_USER=self.known_user)
96
99
        self.assertEqual(default_login, response.context['user'].last_login)
97
100
 
 
101
    def test_header_disappears(self):
 
102
        """
 
103
        Tests that a logged in user is logged out automatically when
 
104
        the REMOTE_USER header disappears during the same browser session.
 
105
        """
 
106
        User.objects.create(username='knownuser')
 
107
        # Known user authenticates
 
108
        response = self.client.get('/remote_user/', REMOTE_USER=self.known_user)
 
109
        self.assertEqual(response.context['user'].username, 'knownuser')
 
110
        # During the session, the REMOTE_USER header disappears. Should trigger logout.
 
111
        response = self.client.get('/remote_user/')
 
112
        self.assertEqual(response.context['user'].is_anonymous(), True)
 
113
        # verify the remoteuser middleware will not remove a user
 
114
        # authenticated via another backend
 
115
        User.objects.create_user(username='modeluser', password='foo')
 
116
        self.client.login(username='modeluser', password='foo')
 
117
        authenticate(username='modeluser', password='foo')
 
118
        response = self.client.get('/remote_user/')
 
119
        self.assertEqual(response.context['user'].username, 'modeluser')
 
120
 
98
121
    def tearDown(self):
99
122
        """Restores settings to avoid breaking other tests."""
100
123
        settings.MIDDLEWARE_CLASSES = self.curr_middleware
106
129
    create_unknown_user = False
107
130
 
108
131
 
 
132
@skipIfCustomUser
109
133
class RemoteUserNoCreateTest(RemoteUserTest):
110
134
    """
111
135
    Contains the same tests as RemoteUserTest, but using a custom auth backend
142
166
        return user
143
167
 
144
168
 
 
169
@skipIfCustomUser
145
170
class RemoteUserCustomTest(RemoteUserTest):
146
171
    """
147
172
    Tests a custom RemoteUserBackend subclass that overrides the clean_username