mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
Merge pull request #448 from mhsparks/master
Add setter to user property on request object
This commit is contained in:
commit
56bb4a5b03
|
@ -169,6 +169,15 @@ class Request(object):
|
||||||
self._user, self._auth = self._authenticate()
|
self._user, self._auth = self._authenticate()
|
||||||
return self._user
|
return self._user
|
||||||
|
|
||||||
|
@user.setter
|
||||||
|
def user(self, value):
|
||||||
|
"""
|
||||||
|
Sets the user on the current request. This is necessary to maintain
|
||||||
|
compatilbility with django.contrib.auth where the user proprety is
|
||||||
|
set in the login and logout functions.
|
||||||
|
"""
|
||||||
|
self._user = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def auth(self):
|
def auth(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -3,6 +3,8 @@ Tests for content parsing, and form-overloaded content parsing.
|
||||||
"""
|
"""
|
||||||
from django.conf.urls.defaults import patterns
|
from django.conf.urls.defaults import patterns
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.contrib.auth import authenticate, login, logout
|
||||||
|
from django.contrib.sessions.middleware import SessionMiddleware
|
||||||
from django.test import TestCase, Client
|
from django.test import TestCase, Client
|
||||||
from django.utils import simplejson as json
|
from django.utils import simplejson as json
|
||||||
|
|
||||||
|
@ -276,3 +278,29 @@ class TestContentParsingWithAuthentication(TestCase):
|
||||||
|
|
||||||
# response = self.csrf_client.post('/', content)
|
# response = self.csrf_client.post('/', content)
|
||||||
# self.assertEqual(status.OK, response.status_code, "POST data is malformed")
|
# self.assertEqual(status.OK, response.status_code, "POST data is malformed")
|
||||||
|
|
||||||
|
|
||||||
|
class TestUserSetter(TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
# Pass request object through session middleware so session is
|
||||||
|
# available to login and logout functions
|
||||||
|
self.request = Request(factory.get('/'))
|
||||||
|
SessionMiddleware().process_request(self.request)
|
||||||
|
|
||||||
|
User.objects.create_user('ringo', 'starr@thebeatles.com', 'yellow')
|
||||||
|
self.user = authenticate(username='ringo', password='yellow')
|
||||||
|
|
||||||
|
def test_user_can_be_set(self):
|
||||||
|
self.request.user = self.user
|
||||||
|
self.assertEqual(self.request.user, self.user)
|
||||||
|
|
||||||
|
def test_user_can_login(self):
|
||||||
|
login(self.request, self.user)
|
||||||
|
self.assertEqual(self.request.user, self.user)
|
||||||
|
|
||||||
|
def test_user_can_logout(self):
|
||||||
|
self.request.user = self.user
|
||||||
|
self.assertFalse(self.request.user.is_anonymous())
|
||||||
|
logout(self.request)
|
||||||
|
self.assertTrue(self.request.user.is_anonymous())
|
||||||
|
|
Loading…
Reference in New Issue
Block a user