mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-17 14:37:58 +00:00
Fix tests and fix bug in sudo mode
This commit is contained in:
parent
2223db123f
commit
04bb5a60c1
@ -11,6 +11,8 @@ from seahub.base.accounts import User
|
|||||||
|
|
||||||
|
|
||||||
class Fixtures(Exam):
|
class Fixtures(Exam):
|
||||||
|
user_password = 'secret'
|
||||||
|
admin_password = 'secret'
|
||||||
|
|
||||||
@fixture
|
@fixture
|
||||||
def user(self):
|
def user(self):
|
||||||
@ -94,6 +96,6 @@ class Fixtures(Exam):
|
|||||||
class BaseTestCase(TestCase, Fixtures):
|
class BaseTestCase(TestCase, Fixtures):
|
||||||
def login_as(self, user):
|
def login_as(self, user):
|
||||||
self.client.post(
|
self.client.post(
|
||||||
reverse('auth_login'), {'username': user.username,
|
reverse('auth_login'), {'login': user.username,
|
||||||
'password': 'secret'}
|
'password': 'secret'}
|
||||||
)
|
)
|
||||||
|
@ -1637,7 +1637,7 @@ def sys_sudo_mode(request):
|
|||||||
|
|
||||||
# here we can't use @sys_staff_required
|
# here we can't use @sys_staff_required
|
||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
return Http404
|
raise Http404
|
||||||
|
|
||||||
password_error = False
|
password_error = False
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -3,7 +3,7 @@ from django.http.cookie import parse_cookie
|
|||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
|
||||||
from seahub.base.accounts import User
|
from seahub.base.accounts import User
|
||||||
from seahub.test_utils import Fixtures
|
from seahub.test_utils import Fixtures, BaseTestCase
|
||||||
|
|
||||||
from seaserv import ccnet_threaded_rpc
|
from seaserv import ccnet_threaded_rpc
|
||||||
|
|
||||||
@ -119,3 +119,28 @@ class UserRemoveTest(TestCase, Fixtures):
|
|||||||
self.assertEqual(302, resp.status_code)
|
self.assertEqual(302, resp.status_code)
|
||||||
assert 'Successfully deleted %s' % username in parse_cookie(resp.cookies)['messages']
|
assert 'Successfully deleted %s' % username in parse_cookie(resp.cookies)['messages']
|
||||||
assert len(ccnet_threaded_rpc.search_emailusers('DB', username, -1, -1)) == 0
|
assert len(ccnet_threaded_rpc.search_emailusers('DB', username, -1, -1)) == 0
|
||||||
|
|
||||||
|
|
||||||
|
class SudoModeTest(BaseTestCase):
|
||||||
|
def test_normal_user_raise_404(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
resp = self.client.get(reverse('sys_sudo_mode'))
|
||||||
|
self.assertEqual(404, resp.status_code)
|
||||||
|
|
||||||
|
def test_admin_get(self):
|
||||||
|
self.login_as(self.admin)
|
||||||
|
|
||||||
|
resp = self.client.get(reverse('sys_sudo_mode'))
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
self.assertTemplateUsed('sysadmin/sudo_mode.html')
|
||||||
|
|
||||||
|
def test_admin_post(self):
|
||||||
|
self.login_as(self.admin)
|
||||||
|
|
||||||
|
resp = self.client.post(reverse('sys_sudo_mode'), {
|
||||||
|
'username': self.admin.username,
|
||||||
|
'password': self.admin_password,
|
||||||
|
})
|
||||||
|
self.assertEqual(302, resp.status_code)
|
||||||
|
self.assertRedirects(resp, reverse('sys_useradmin'))
|
||||||
|
Loading…
Reference in New Issue
Block a user