All pastes #957898 Raw Edit

Unnamed

public text v1 · immutable
#957898 ·published 2008-03-26 09:16 UTC
rendered paste body
# -*- coding: utf8 -*-
import waraamo

from waraamo.tests import *
from waraamo.model.constants import *

import sys
from waraamo.model.user import User

class TestLoginController(TestController):

    def setUp(self):
        # TODO: assert that we are using the test database so we
        # don't accidentally fuck up the production database!
        pass

##    def test_index(self):
##        response = self.app.get(url_for(controller='login'))
        # Test response...
        
    def test_registration(self):

        escaped_test_login = h.escape_once(TEST_LOGIN.lower())
        # Delete the test user if it's there already. 
        db = waraamo.model.db
        #user = db.get_user_by_login(escaped_test_login)
        #if user is not None:
        #     db.delete_user(user)
       
        response = self.app.get(url_for(controller='login', action='registration'))

        self.assert_('Required Information' in response)
        self.assert_('Password' in response)
        
        form = response.forms[0]
        form.set('login', 'averymuchtoolongloginname123456')
        form.set('email', 'foobar@foo')
        form.set('password', '')
        form.set('confirm_password', '')
        form.set('phone', '1234567')
        form.set('user_agreed', 'check')
        
        response = form.submit()
        response.mustcontain('Enter a value less than 20 characters long')
        
        form = response.forms[0]
        form.set('login', TEST_LOGIN.encode('utf8'))
        form.set('email', 'foobar@foo')
        form.set('password', '')
        form.set('confirm_password', '')
        form.set('phone', '')
        form.set('user_agreed', 'check')
        
        response = form.submit()
        response.mustcontain('Address is not valid.')
        # The password fields:
        response.mustcontain('Field must not be empty.')
       
        form = response.forms[0]
        form.set('login', TEST_LOGIN.encode('utf8'))
        form.set('email', 'foobar@foo')
        form.set('password', 'password')
        form.set('confirm_password', 'wrong')
        form.set('phone', '1234567')
        form.set('user_agreed', 'check')

        response = form.submit()
        #response.showbrowser()  
        response.mustcontain("Fields do not match")
        #response.mustcontain("Finnish zip code has 5 numbers.")

        form = response.forms[0]
        form.set('login', TEST_LOGIN.encode('utf8'))
        form.set('email', 'foobar@foo.fi')
        form.set('password', 'password')
        form.set('confirm_password', 'password')
        form.set('phone', '1234567')
        form.set('captcha_guess', 'wrong123')

        form.set('dob_day', '1')
        form.set('dob_month', '1')
        form.set('dob_year', '2004')
        form.set('user_agreed', 'check')
        
        response = form.submit()
        #response.showbrowser()  
        response.mustcontain("Text do not match with the text in the image.")       

        # invalid date
        form = response.forms[0]
        form.set('login', TEST_LOGIN.encode('utf8'))
        form.set('email', 'foobar@foo.fi')
        form.set('password', 'password')
        form.set('confirm_password', 'password')
        form.set('phone', '1234567')
        form.set('captcha_guess', 'tstvalue')
        form.set('dob_day', '31')
        form.set('dob_month', '2')
        form.set('dob_year', '2004')
        form.set('user_agreed', 'check')

        response = form.submit()      
        response.mustcontain("Invalid date.")       

        # Now create the user.
        form = response.forms[0]
        form.set('login', TEST_LOGIN.encode('utf8'))
        form.set('email', 'foobar@foo.fi')
        form.set('password', 'password')
        form.set('confirm_password', 'password')
        form.set('phone', '1234567')
        form.set('captcha_guess', 'tstvalue')
        form.set('dob_day', '1')
        form.set('dob_month', '1')
        form.set('dob_year', '2004')
        form.set('user_agreed', 'check')

        response = form.submit()      
        #response.showbrowser()  
        response = response.follow()
        response.mustcontain('User created, you can now login to your account.')
        
        # Try to create a new user with the same login.
        response = self.app.get(url_for(controller='login', action='registration'))
        self.assert_('Required Information' in response)
        self.assert_('Password' in response)
        
        form = response.forms[0]
        form.set('login', TEST_LOGIN.encode('utf8'))
        form.set('captcha_guess', 'tstvalue')

        response = form.submit()
        response.mustcontain('User name not available')

        # Have to create the db again because SQLAlchemy crashes due to
        # mappings created by the form validator at form.py. They probably
        # mess the mappers created for this db instance and they need to
        # be recreated.
        db = waraamo.model.db
        
        #user = db.get_user_by_login(escaped_test_login)
        #db.delete_user(user)