test_login.py
111 lines
| 5.5 KiB
| text/x-python
|
PythonLexer
r188 | from pylons_app.tests import * | |||
r463 | from pylons_app.model.db import User | |||
from pylons_app.lib.auth import check_password | ||||
r188 | ||||
class TestLoginController(TestController): | ||||
def test_index(self): | ||||
response = self.app.get(url(controller='login', action='index')) | ||||
r463 | assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status | |||
r188 | # Test response... | |||
r461 | ||||
def test_login_admin_ok(self): | ||||
response = self.app.post(url(controller='login', action='index'), | ||||
{'username':'test_admin', | ||||
'password':'test'}) | ||||
r463 | assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status | |||
assert response.session['hg_app_user'].username == 'test_admin', 'wrong logged in user' | ||||
r462 | response = response.follow() | |||
assert 'auto description for vcs_test' in response.body | ||||
r461 | ||||
def test_login_regular_ok(self): | ||||
response = self.app.post(url(controller='login', action='index'), | ||||
r462 | {'username':'test_regular', | |||
r461 | 'password':'test'}) | |||
r463 | assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status | |||
assert response.session['hg_app_user'].username == 'test_regular', 'wrong logged in user' | ||||
r462 | response = response.follow() | |||
assert 'auto description for vcs_test' in response.body | ||||
assert '<a title="Admin" href="/_admin">' not in response.body | ||||
r461 | ||||
def test_login_ok_came_from(self): | ||||
test_came_from = '/_admin/users' | ||||
r463 | response = self.app.post(url(controller='login', action='index', came_from=test_came_from), | |||
r461 | {'username':'test_admin', | |||
'password':'test'}) | ||||
r463 | assert response.status == '302 Found', 'Wrong response code from came from redirection' | |||
r461 | response = response.follow() | |||
r463 | assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status | |||
assert 'Users administration' in response.body, 'No proper title in response' | ||||
r461 | ||||
def test_login_wrong(self): | ||||
response = self.app.post(url(controller='login', action='index'), | ||||
{'username':'error', | ||||
'password':'test'}) | ||||
r463 | assert response.status == '200 OK', 'Wrong response from login page' | |||
r461 | ||||
r463 | assert 'invalid user name' in response.body, 'No error username message in response' | |||
assert 'invalid password' in response.body, 'No error password message in response' | ||||
r461 | ||||
r463 | def test_register(self): | |||
response = self.app.get(url(controller='login', action='register')) | ||||
assert 'Sign Up to hg-app' in response.body, 'wrong page for user registration' | ||||
def test_register_err_same_username(self): | ||||
response = self.app.post(url(controller='login', action='register'), | ||||
{'username':'test_admin', | ||||
'password':'test', | ||||
'email':'goodmail@domain.com', | ||||
'name':'test', | ||||
'lastname':'test'}) | ||||
assert response.status == '200 OK', 'Wrong response from register page got %s' % response.status | ||||
assert 'This username already exists' in response.body | ||||
def test_register_err_wrong_data(self): | ||||
response = self.app.post(url(controller='login', action='register'), | ||||
{'username':'xs', | ||||
'password':'', | ||||
'email':'goodmailm', | ||||
'name':'test', | ||||
'lastname':'test'}) | ||||
assert response.status == '200 OK', 'Wrong response from register page got %s' % response.status | ||||
assert 'An email address must contain a single @' in response.body | ||||
assert 'Enter a value 3 characters long or more' in response.body | ||||
assert 'Please enter a value<' in response.body | ||||
def test_register_ok(self): | ||||
username = 'test_regular2' | ||||
password = 'qweqwe' | ||||
email = 'goodmail@mail.com' | ||||
name = 'testname' | ||||
lastname = 'testlastname' | ||||
response = self.app.post(url(controller='login', action='register'), | ||||
{'username':username, | ||||
'password':password, | ||||
'email':email, | ||||
'name':name, | ||||
'lastname':lastname}) | ||||
assert response.status == '302 Found', 'Wrong response from register page got %s' % response.status | ||||
ret = self.sa.query(User).filter(User.username == 'test_regular2').one() | ||||
assert ret.username == username , 'field mismatch %s %s' % (ret.username, username) | ||||
assert check_password(password,ret.password) == True , 'password mismatch' | ||||
assert ret.email == email , 'field mismatch %s %s' % (ret.email, email) | ||||
assert ret.name == name , 'field mismatch %s %s' % (ret.name, name) | ||||
assert ret.lastname == lastname , 'field mismatch %s %s' % (ret.lastname, lastname) | ||||