Changeset - a03250279b15
[Not reviewed]
default
0 2 0
Marcin Kuzminski - 15 years ago 2010-09-06 00:34:23
marcin@python-works.com
test for register page
2 files changed with 67 insertions and 5 deletions:
0 comments (0 inline, 0 general)
pylons_app/tests/__init__.py
Show inline comments
 
@@ -12,13 +12,13 @@ from unittest import TestCase
 
from paste.deploy import loadapp
 
from paste.script.appinstall import SetupCommand
 
from pylons import config, url
 
from routes.util import URLGenerator
 
from webtest import TestApp
 
import os
 

	
 
from pylons_app.model import meta
 
import pylons.test
 

	
 
__all__ = ['environ', 'url', 'TestController']
 

	
 
# Invoke websetup with the current config file
 
SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
 
@@ -29,8 +29,9 @@ class TestController(TestCase):
 

	
 
    def __init__(self, *args, **kwargs):
 
        wsgiapp = pylons.test.pylonsapp
 
        config = wsgiapp.config
 
        self.app = TestApp(wsgiapp)
 
        url._push_object(URLGenerator(config['routes.map'], environ))
 
        self.sa = meta.Session
 
        TestCase.__init__(self, *args, **kwargs)
 

	
pylons_app/tests/functional/test_login.py
Show inline comments
 
from pylons_app.tests import *
 
from pylons_app.model.db import User
 
from pylons_app.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'
 
        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':'test'})
 
        assert response.status == '302 Found','Wrong response code from login'
 
        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':'test'})
 
        assert response.status == '302 Found','Wrong response code from login'
 
        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):
 
@@ -31,13 +34,13 @@ class TestLoginController(TestController
 
        response = self.app.post(url(controller='login', action='index',came_from=test_came_from),
 
                                 {'username':'test_admin',
 
                                  'password':'test'})
 
        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'
 
        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_wrong(self):
 
        response = self.app.post(url(controller='login', action='index'),
 
                                 {'username':'error',
 
@@ -45,7 +48,65 @@ class TestLoginController(TestController
 
        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 '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)
 
    
 
        
 
        
 
        
 
        
 
        
 
        
 
\ No newline at end of file
0 comments (0 inline, 0 general)