diff --git a/rhodecode/tests/functional/test_users.py b/rhodecode/tests/functional/test_admin_users.py
copy from rhodecode/tests/functional/test_users.py
copy to rhodecode/tests/functional/test_admin_users.py
--- a/rhodecode/tests/functional/test_users.py
+++ b/rhodecode/tests/functional/test_admin_users.py
@@ -1,6 +1,9 @@
from rhodecode.tests import *
+from rhodecode.model.db import User
+from rhodecode.lib.auth import check_password
+from sqlalchemy.orm.exc import NoResultFound
-class TestUsersController(TestController):
+class TestAdminUsersController(TestController):
def test_index(self):
response = self.app.get(url('users'))
@@ -10,7 +13,60 @@ class TestUsersController(TestController
response = self.app.get(url('formatted_users', format='xml'))
def test_create(self):
- response = self.app.post(url('users'))
+ self.log_user()
+ username = 'newtestuser'
+ password = 'test12'
+ name = 'name'
+ lastname = 'lastname'
+ email = 'mail@mail.com'
+
+ response = self.app.post(url('users'), {'username':username,
+ 'password':password,
+ 'name':name,
+ 'active':True,
+ 'lastname':lastname,
+ 'email':email})
+
+
+ assert '''created user %s''' % (username) in response.session['flash'][0], 'No flash message about new user'
+
+ new_user = self.sa.query(User).filter(User.username == username).one()
+
+
+ assert new_user.username == username, 'wrong info about username'
+ assert check_password(password, new_user.password) == True , 'wrong info about password'
+ assert new_user.name == name, 'wrong info about name'
+ assert new_user.lastname == lastname, 'wrong info about lastname'
+ assert new_user.email == email, 'wrong info about email'
+
+
+ response.follow()
+ response = response.follow()
+ assert """edit">newtestuser""" 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})
+
+ assert """Invalid username""" in response.body
+ assert """Please enter a value""" in response.body
+ assert """An email address must contain a single @""" in response.body
+
+ def get_user():
+ self.sa.query(User).filter(User.username == username).one()
+
+ self.assertRaises(NoResultFound, get_user), 'found user in database'
def test_new(self):
response = self.app.get(url('new_user'))
@@ -25,7 +81,27 @@ class TestUsersController(TestController
response = self.app.post(url('user', id=1), params=dict(_method='put'))
def test_delete(self):
- response = self.app.delete(url('user', id=1))
+ 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,
+ 'name':name,
+ 'active':True,
+ 'lastname':lastname,
+ 'email':email})
+
+ response = response.follow()
+
+ new_user = self.sa.query(User).filter(User.username == username).one()
+ response = self.app.delete(url('user', id=new_user.user_id))
+
+ assert """sucessfully deleted user""" in response.session['flash'][0], 'No info about user deletion'
+
def test_delete_browser_fakeout(self):
response = self.app.post(url('user', id=1), params=dict(_method='delete'))