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