Add credential requirements tests to devel app

* Add models.py required file to app
* Use user_passes_test instead of custom superuser checking in
  new_user_form as it implements the same "next" redirection as
  login_required

Signed-off-by: Ismael Carnales <icarnales@gmail.com>
This commit is contained in:
Ismael Carnales 2009-12-01 23:22:44 -02:00
parent e0506afaf1
commit 3f8fe75d36
3 changed files with 41 additions and 4 deletions

0
devel/models.py Normal file
View File

39
devel/tests.py Normal file
View File

@ -0,0 +1,39 @@
from django.test import TestCase
class DevelTest(TestCase):
def test_index(self):
response = self.client.get('/devel/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'http://testserver/login/?next=/devel/')
def test_notify(self):
response = self.client.get('/devel/notify/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'http://testserver/login/?next=/devel/notify/')
def test_profile(self):
response = self.client.get('/devel/profile/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'http://testserver/login/?next=/devel/profile/')
def test_newuser(self):
response = self.client.get('/devel/newuser/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'http://testserver/login/?next=/devel/newuser/')
def test_mirrors(self):
response = self.client.get('/mirrors/')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.has_header('Location'), True)
self.assertEqual(response['location'],
'http://testserver/login/?next=/mirrors/')

View File

@ -1,6 +1,6 @@
from django import forms
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib.auth.models import User
from django.shortcuts import render_to_response
from django.template import RequestContext
@ -105,10 +105,8 @@ def save(self):
[user.email],
fail_silently=False)
@user_passes_test(lambda u: u.is_superuser)
def new_user_form(request):
if not request.user.is_superuser:
return HttpResponseRedirect('/login/')
if request.POST:
form = NewUserForm(request.POST)
if form.is_valid():