test.py

#

nose-based unit tests.

CTB: where is stdout getting captured in here!?

CTB TODO: * cleanup files after running tests

from pkg_resources import require
#

require(‘quixote >= 2.3’)

require('twill >= 0.8.2a3')

import sys
import utils, test_session2
import twill
from cStringIO import StringIO
#

Test basic session handling with the volatile session handler.

def test_basic():
#
    utils.setup_wsgi_intercept(test_session2.use_volatile)

    try:
        old_err, sys.stderr = sys.stderr, StringIO()

        twill.execute_file('test/twill-tests/increment')
        twill.execute_file('test/twill-tests/increment+fail')
        twill.execute_file('test/twill-tests/logout')
        twill.execute_file('test/twill-tests/logout+fail')
        twill.execute_file('test/twill-tests/logout+nokeep')
        twill.execute_file('test/twill-tests/session_id')
    finally:
        sys.stderr = old_err
    
    utils.teardown_wsgi_intercept()
#

Test basic session handling with the directory session handler.

def test_directory():
#
    utils.setup_wsgi_intercept(test_session2.use_directory)

    try:
        old_err, sys.stderr = sys.stderr, StringIO()
        
        twill.execute_file('test/twill-tests/increment')
        twill.execute_file('test/twill-tests/increment+fail')
        twill.execute_file('test/twill-tests/logout')
        twill.execute_file('test/twill-tests/logout+fail')
        twill.execute_file('test/twill-tests/logout+nokeep')
        twill.execute_file('test/twill-tests/session_id')
    finally:
        sys.stderr = old_err
    
    utils.teardown_wsgi_intercept()
#

Test basic session handling with the shelve session handler.

def test_shelve():
#
    utils.setup_wsgi_intercept(test_session2.use_shelve)
    
    try:
        old_err, sys.stderr = sys.stderr, StringIO()

        twill.execute_file('test/twill-tests/increment')
        twill.execute_file('test/twill-tests/increment+fail')
        twill.execute_file('test/twill-tests/logout')
        twill.execute_file('test/twill-tests/logout+fail')
        twill.execute_file('test/twill-tests/logout+nokeep')
        twill.execute_file('test/twill-tests/session_id')
    finally:
        sys.stderr = old_err
    
    utils.teardown_wsgi_intercept()
#

Test basic session handling with the durus session handler.

def test_durus():
#
    try:
        import durus
    except ImportError:
        pass
    else:
        utils.setup_wsgi_intercept(test_session2.use_durus)

        try:
            old_err, sys.stderr = sys.stderr, StringIO()

            twill.execute_file('test/twill-tests/increment')
            twill.execute_file('test/twill-tests/increment+fail')
            twill.execute_file('test/twill-tests/logout')
            twill.execute_file('test/twill-tests/logout+fail')
            twill.execute_file('test/twill-tests/logout+nokeep')
            twill.execute_file('test/twill-tests/session_id')
        finally:
            sys.stderr = old_err

        utils.teardown_wsgi_intercept()