EduploneWebdidactics/tests common.py,NONE,1.1 framework.py,NONE,1.1 runalltests.py,NONE,1.1 testInstall.py,NONE,1.1 testSkeleton.py,NONE,1.1

Jens Klein <[email protected]>
Newsgroups gmane.comp.web.zope.eduplone.cvs
Message-ID <[email protected]>
Update of /cvsroot/eduplone/EduploneWebdidactics/tests
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28801/tests

Added Files:
	common.py framework.py runalltests.py testInstall.py 
	testSkeleton.py 
Log Message:
added basic test framework 


--- NEW FILE: runalltests.py ---
#
# Runs all tests in the current directory
#
# Execute like:
#   python runalltests.py
#
# Alternatively use the testrunner:
#   python /path/to/Zope/utilities/testrunner.py -qa
#

import os, sys
if __name__ == '__main__':
    execfile(os.path.join(sys.path[0], 'framework.py'))

import unittest
TestRunner = unittest.TextTestRunner
suite = unittest.TestSuite()

tests = os.listdir(os.curdir)
tests = [n[:-3] for n in tests if n.startswith('test') and n.endswith('.py')]

for test in tests:
    m = __import__(test)
    if hasattr(m, 'test_suite'):
        suite.addTest(m.test_suite())

if __name__ == '__main__':
    TestRunner().run(suite)

--- NEW FILE: framework.py ---
##############################################################################
#
# ZopeTestCase
#
# COPY THIS FILE TO YOUR 'tests' DIRECTORY.
#
# This version of framework.py will use the SOFTWARE_HOME
# environment variable to locate Zope and the Testing package.
#
# If the tests are run in an INSTANCE_HOME installation of Zope,
# Products.__path__ and sys.path with be adjusted to include the
# instance's Products and lib/python directories respectively.
#
# If you explicitly set INSTANCE_HOME prior to running the tests,
# auto-detection is disabled and the specified path will be used
# instead.
#
# If the 'tests' directory contains a custom_zodb.py file, INSTANCE_HOME
# will be adjusted to use it.
#
# If you set the ZEO_INSTANCE_HOME environment variable a ZEO setup
# is assumed, and you can attach to a running ZEO server (via the
# instance's custom_zodb.py).
#
##############################################################################
#
# The following code should be at the top of every test module:
#
# import os, sys
# if __name__ == '__main__':
#     execfile(os.path.join(sys.path[0], 'framework.py'))
#
# ...and the following at the bottom:
#
# if __name__ == '__main__':
#     framework()
#
##############################################################################

__version__ = '0.2.2'

# Save start state
#
__SOFTWARE_HOME = os.environ.get('SOFTWARE_HOME', '')
__INSTANCE_HOME = os.environ.get('INSTANCE_HOME', '')

if __SOFTWARE_HOME.endswith(os.sep):
    __SOFTWARE_HOME = os.path.dirname(__SOFTWARE_HOME)

if __INSTANCE_HOME.endswith(os.sep):
    __INSTANCE_HOME = os.path.dirname(__INSTANCE_HOME)

# Find and import the Testing package
#
if not sys.modules.has_key('Testing'):
    p0 = sys.path[0]
    if p0 and __name__ == '__main__':
        os.chdir(p0)
        p0 = ''
    s = __SOFTWARE_HOME
    p = d = s and s or os.getcwd()
    while d:
        if os.path.isdir(os.path.join(p, 'Testing')):
            zope_home = os.path.dirname(os.path.dirname(p))
            sys.path[:1] = [p0, os.pardir, p, zope_home]
            break
        p, d = s and ('','') or os.path.split(p)
    else:
        print 'Unable to locate Testing package.',
        print 'You might need to set SOFTWARE_HOME.'
        sys.exit(1)

import Testing, unittest
execfile(os.path.join(os.path.dirname(Testing.__file__), 'common.py'))

# Include ZopeTestCase support
#
if 1:   # Create a new scope

    p = os.path.join(os.path.dirname(Testing.__file__), 'ZopeTestCase')

    if not os.path.isdir(p):
        print 'Unable to locate ZopeTestCase package.',
        print 'You might need to install ZopeTestCase.'
        sys.exit(1)

    ztc_common = 'ztc_common.py'
    ztc_common_global = os.path.join(p, ztc_common)

    f = 0
    if os.path.exists(ztc_common_global):
        execfile(ztc_common_global)
        f = 1
    if os.path.exists(ztc_common):
        execfile(ztc_common)
        f = 1

    if not f:
        print 'Unable to locate %s.' % ztc_common
        sys.exit(1)

# Debug
#
print 'SOFTWARE_HOME: %s' % os.environ.get('SOFTWARE_HOME', 'Not set')
print 'INSTANCE_HOME: %s' % os.environ.get('INSTANCE_HOME', 'Not set')
sys.stdout.flush()

--- NEW FILE: testSkeleton.py ---
import os, sys
if __name__ == '__main__':
    execfile(os.path.join(sys.path[0], 'framework.py'))

from Products.CMFPlone.tests import PloneTestCase

import common
common.installProducts()

class TestSomething(PloneTestCase.PloneTestCase):

    def afterSetUp(self):
        common.installWithinPortal(self, self.portal)

##     def testSomething(self):
##         self.assertEqual(2, 1+1)


def test_suite():
    from unittest import TestSuite, makeSuite
    suite = TestSuite()
    suite.addTest(makeSuite(TestSomething))
    return suite

if __name__ == '__main__':
    framework()

--- NEW FILE: testInstall.py ---
import os, sys
if __name__ == '__main__':
    execfile(os.path.join(sys.path[0], 'framework.py'))

from Products.CMFPlone.tests import PloneTestCase

import common
common.installProducts()

class TestInstall(PloneTestCase.PloneTestCase):

    def afterSetUp(self):
        common.installWithinPortal(self, self.portal)

    def testToolsExist(self):
        for tool in ('atvocabulary_manager',
                     'cmfmember_control', 'member_catalog',
                     'portal_openflow', 'portal_teams'):
            self.assert_(hasattr(self.portal, tool),
                         "Tool %s not found." % tool)

def test_suite():
    from unittest import TestSuite, makeSuite
    suite = TestSuite()
    suite.addTest(makeSuite(TestInstall))
    return suite

if __name__ == '__main__':
    framework()

--- NEW FILE: common.py ---
from Testing import ZopeTestCase

from Products.EduploneLearningSequence.config import *
from Products.EduploneLearningSequence.Extensions.Install \
     import install as myInstall

# eases setting breakpoints for pdb
import os, sys
sys.path.append('%s/Products' % os.environ['INSTANCE_HOME'])

# make Zope products available to test environment
archetypes_dep = ['Archetypes', 'PortalTransforms', 'generator',
                  'validation', 'MimetypesRegistry', 'CMFFormController',
                  'CMFQuickInstallerTool']

eduplone_dep = ['ATContentTypes', 'ATVocabularyManager', 'ATRefBrowserWidget']

product_dep = archetypes_dep + eduplone_dep + [PROJECTNAME]
def installProducts():
    for product in product_dep:
        ZopeTestCase.installProduct(product)

def installWithinPortal(testcase, portal):
    testcase.loginPortalOwner()
    myInstall(portal)
    qi = portal.portal_quickinstaller
    qi.installProduct(PROJECTNAME)
    testcase.logout()
    testcase.login()

def createRulebook(testcase, portal):
    pass

def createVocabulary(testcase, portal):
    self.atvm.invokeFactory('SimpleVocabulary','dml')
    self.atvm.svtest.setTitle('DML Test Vocabulary')



-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.