Mercurial > kallithea
diff rhodecode/tests/functional/test_login.py @ 547:1e757ac98988
renamed project to rhodecode
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 06 Oct 2010 03:18:16 +0200 |
parents | pylons_app/tests/functional/test_login.py@12c976209b2e |
children | b75b77ef649d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/tests/functional/test_login.py Wed Oct 06 03:18:16 2010 +0200 @@ -0,0 +1,147 @@ +from rhodecode.tests import * +from rhodecode.model.db import User +from rhodecode.lib.auth import check_password + + +class TestLoginController(TestController): + + def test_index(self): + response = self.app.get(url(controller='login', action='index')) + assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status + # Test response... + + def test_login_admin_ok(self): + response = self.app.post(url(controller='login', action='index'), + {'username':'test_admin', + 'password':'test12'}) + 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' + response = response.follow() + assert 'auto description for vcs_test' in response.body + + def test_login_regular_ok(self): + response = self.app.post(url(controller='login', action='index'), + {'username':'test_regular', + 'password':'test12'}) + print response + 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' + response = response.follow() + assert 'auto description for vcs_test' in response.body + assert '<a title="Admin" href="/_admin">' not in response.body + + def test_login_ok_came_from(self): + test_came_from = '/_admin/users' + response = self.app.post(url(controller='login', action='index', came_from=test_came_from), + {'username':'test_admin', + 'password':'test12'}) + assert response.status == '302 Found', 'Wrong response code from came from redirection' + response = response.follow() + + 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' + + + def test_login_short_password(self): + response = self.app.post(url(controller='login', action='index'), + {'username':'error', + 'password':'test'}) + assert response.status == '200 OK', 'Wrong response from login page' + + assert 'Enter a value 6 characters long or more' in response.body, 'No error password message in response' + + def test_login_wrong_username_password(self): + response = self.app.post(url(controller='login', action='index'), + {'username':'error', + 'password':'test12'}) + assert response.status == '200 OK', 'Wrong response from login page' + + 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' + + + 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 'Please enter a value' in response.body + + + + def test_register_ok(self): + username = 'test_regular4' + password = 'qweqwe' + email = 'marcin@test.com' + name = 'testname' + lastname = 'testlastname' + + response = self.app.post(url(controller='login', action='register'), + {'username':username, + 'password':password, + 'email':email, + 'name':name, + 'lastname':lastname}) + print response.body + assert response.status == '302 Found', 'Wrong response from register page got %s' % response.status + assert 'You have successfully registered into hg-app' in response.session['flash'][0], 'No flash message about user registration' + + ret = self.sa.query(User).filter(User.username == 'test_regular4').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) + + + def test_forgot_password_wrong_mail(self): + response = self.app.post(url(controller='login', action='password_reset'), + {'email':'marcin@wrongmail.org', }) + + assert "That e-mail address doesn't exist" in response.body, 'Missing error message about wrong email' + + def test_forgot_password(self): + response = self.app.get(url(controller='login', action='password_reset')) + assert response.status == '200 OK', 'Wrong response from login page got %s' % response.status + + username = 'test_password_reset_1' + password = 'qweqwe' + email = 'marcin@python-works.com' + name = 'passwd' + lastname = 'reset' + + response = self.app.post(url(controller='login', action='register'), + {'username':username, + 'password':password, + 'email':email, + 'name':name, + 'lastname':lastname}) + #register new user for email test + response = self.app.post(url(controller='login', action='password_reset'), + {'email':email, }) + print response.session['flash'] + assert 'You have successfully registered into hg-app' in response.session['flash'][0], 'No flash message about user registration' + assert 'Your new password was sent' in response.session['flash'][1], 'No flash message about password reset' + + +