Files
@ 058e2743e7b7
Branch filter:
Location: kallithea/rhodecode/tests/functional/test_admin_users.py
058e2743e7b7
6.8 KiB
text/x-python
fixes issue #455 Creating an archive generates an exception on Windows
- reverted the FileIter implementation as it had the same issue on windows and
probably on unix as ref #448
- reverted the FileIter implementation as it had the same issue on windows and
probably on unix as ref #448
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | from rhodecode.tests import *
from rhodecode.model.db import User, Permission
from rhodecode.lib.auth import check_password
from sqlalchemy.orm.exc import NoResultFound
from rhodecode.model.user import UserModel
class TestAdminUsersController(TestController):
def test_index(self):
self.log_user()
response = self.app.get(url('users'))
# Test response...
def test_index_as_xml(self):
response = self.app.get(url('formatted_users', format='xml'))
def test_create(self):
self.log_user()
username = 'newtestuser'
password = 'test12'
password_confirmation = password
name = 'name'
lastname = 'lastname'
email = 'mail@mail.com'
response = self.app.post(url('users'),
{'username':username,
'password':password,
'password_confirmation':password_confirmation,
'name':name,
'active':True,
'lastname':lastname,
'email':email})
self.assertTrue('''created user %s''' % (username) in
response.session['flash'][0])
new_user = self.Session.query(User).\
filter(User.username == username).one()
self.assertEqual(new_user.username,username)
self.assertEqual(check_password(password, new_user.password),True)
self.assertEqual(new_user.name,name)
self.assertEqual(new_user.lastname,lastname)
self.assertEqual(new_user.email,email)
response.follow()
response = response.follow()
self.assertTrue("""edit">newtestuser</a>""" in response.body)
def test_create_err(self):
self.log_user()
username = 'new_user'
password = ''
name = 'name'
lastname = 'lastname'
email = 'errmail.com'
response = self.app.post(url('users'), {'username':username,
'password':password,
'name':name,
'active':False,
'lastname':lastname,
'email':email})
self.assertTrue("""<span class="error-message">Invalid username</span>""" in response.body)
self.assertTrue("""<span class="error-message">Please enter a value</span>""" in response.body)
self.assertTrue("""<span class="error-message">An email address must contain a single @</span>""" in response.body)
def get_user():
self.Session.query(User).filter(User.username == username).one()
self.assertRaises(NoResultFound, get_user), 'found user in database'
def test_new(self):
self.log_user()
response = self.app.get(url('new_user'))
def test_new_as_xml(self):
response = self.app.get(url('formatted_new_user', format='xml'))
def test_update(self):
response = self.app.put(url('user', id=1))
def test_update_browser_fakeout(self):
response = self.app.post(url('user', id=1), params=dict(_method='put'))
def test_delete(self):
self.log_user()
username = 'newtestuserdeleteme'
password = 'test12'
name = 'name'
lastname = 'lastname'
email = 'todeletemail@mail.com'
response = self.app.post(url('users'), {'username':username,
'password':password,
'password_confirmation':password,
'name':name,
'active':True,
'lastname':lastname,
'email':email})
response = response.follow()
new_user = self.Session.query(User)\
.filter(User.username == username).one()
response = self.app.delete(url('user', id=new_user.user_id))
self.assertTrue("""successfully deleted user""" in
response.session['flash'][0])
def test_delete_browser_fakeout(self):
response = self.app.post(url('user', id=1),
params=dict(_method='delete'))
def test_show(self):
response = self.app.get(url('user', id=1))
def test_show_as_xml(self):
response = self.app.get(url('formatted_user', id=1, format='xml'))
def test_edit(self):
self.log_user()
user = User.get_by_username(TEST_USER_ADMIN_LOGIN)
response = self.app.get(url('edit_user', id=user.user_id))
def test_add_perm_create_repo(self):
self.log_user()
perm_none = Permission.get_by_key('hg.create.none')
perm_create = Permission.get_by_key('hg.create.repository')
user = User.get_by_username(TEST_USER_REGULAR_LOGIN)
#User should have None permission on creation repository
self.assertEqual(UserModel().has_perm(user, perm_none), False)
self.assertEqual(UserModel().has_perm(user, perm_create), False)
response = self.app.post(url('user_perm', id=user.user_id),
params=dict(_method='put',
create_repo_perm=True))
perm_none = Permission.get_by_key('hg.create.none')
perm_create = Permission.get_by_key('hg.create.repository')
user = User.get_by_username(TEST_USER_REGULAR_LOGIN)
#User should have None permission on creation repository
self.assertEqual(UserModel().has_perm(user, perm_none), False)
self.assertEqual(UserModel().has_perm(user, perm_create), True)
def test_revoke_perm_create_repo(self):
self.log_user()
perm_none = Permission.get_by_key('hg.create.none')
perm_create = Permission.get_by_key('hg.create.repository')
user = User.get_by_username(TEST_USER_REGULAR2_LOGIN)
#User should have None permission on creation repository
self.assertEqual(UserModel().has_perm(user, perm_none), False)
self.assertEqual(UserModel().has_perm(user, perm_create), False)
response = self.app.post(url('user_perm', id=user.user_id),
params=dict(_method='put'))
perm_none = Permission.get_by_key('hg.create.none')
perm_create = Permission.get_by_key('hg.create.repository')
user = User.get_by_username(TEST_USER_REGULAR2_LOGIN)
#User should have None permission on creation repository
self.assertEqual(UserModel().has_perm(user, perm_none), True)
self.assertEqual(UserModel().has_perm(user, perm_create), False)
def test_edit_as_xml(self):
response = self.app.get(url('formatted_edit_user', id=1, format='xml'))
|