[Neo-report] r2580 gregory - in /trunk: neo/tests/zodb/__init__.py tools/runner
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Dec 29 11:58:04 CET 2010
Author: gregory
Date: Wed Dec 29 11:58:04 2010
New Revision: 2580
Log:
Allow change the NEO configuration for ZODB test cases.
Modified:
trunk/neo/tests/zodb/__init__.py
trunk/tools/runner
Modified: trunk/neo/tests/zodb/__init__.py
==============================================================================
--- trunk/neo/tests/zodb/__init__.py [iso-8859-1] (original)
+++ trunk/neo/tests/zodb/__init__.py [iso-8859-1] Wed Dec 29 11:58:04 2010
@@ -15,6 +15,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import os
import unittest
from neo.tests.functional import NEOCluster, NEOFunctionalTest
@@ -24,8 +25,17 @@ class ZODBTestCase(NEOFunctionalTest):
def setUp(self):
NEOFunctionalTest.setUp(self)
- self.neo = NEOCluster(['test_neo1'], partitions=1, replicas=0,
- master_node_count=1, temp_dir=self.getTempDirectory())
+ masters = int(os.environ.get('ZODB_MASTERS', 1))
+ storages = int(os.environ.get('ZODB_STORAGES', 1))
+ replicas = int(os.environ.get('ZODB_REPLICAS', 0))
+ partitions = int(os.environ.get('ZODB_PARTITIONS', 1))
+ self.neo = NEOCluster(
+ db_list=['test_neo%d' % x for x in xrange(storages)],
+ partitions=partitions,
+ replicas=replicas,
+ master_node_count=masters,
+ temp_dir=self.getTempDirectory(),
+ )
self.neo.start()
self._storage = self.neo.getZODBStorage()
Modified: trunk/tools/runner
==============================================================================
--- trunk/tools/runner [iso-8859-1] (original)
+++ trunk/tools/runner [iso-8859-1] Wed Dec 29 11:58:04 2010
@@ -105,14 +105,22 @@ for logger_name in ('NEO', 'CLIENT'):
class NeoTestRunner(unittest.TestResult):
""" Custom result class to build report with statistics per module """
- def __init__(self, title):
+ def __init__(self, title, masters, storages, replicas, partitions):
unittest.TestResult.__init__(self)
self._title = title
self.modulesStats = {}
self.failedImports = {}
self.lastStart = None
+ self.masters = masters
+ self.storages = storages
+ self.replicas = replicas
+ self.partitions = partitions
self.temp_directory = tempfile.mkdtemp(prefix='neo_')
os.environ['TEMP'] = self.temp_directory
+ os.environ['ZODB_MASTERS'] = str(masters)
+ os.environ['ZODB_STORAGES'] = str(storages)
+ os.environ['ZODB_REPLICAS'] = str(replicas)
+ os.environ['ZODB_PARTITIONS'] = str(partitions)
print "Base directory : %s" % (self.temp_directory, )
def run(self, name, modules):
@@ -186,6 +194,10 @@ class NeoTestRunner(unittest.TestResult)
def _buildSummary(self, add_status):
success = self.testsRun - len(self.errors) - len(self.failures)
add_status('Directory', self.temp_directory)
+ add_status('Masters', self.masters)
+ add_status('Storages', self.storages)
+ add_status('Replicas', self.replicas)
+ add_status('Partitions', self.partitions)
add_status('Status', '%.3f%%' % (success * 100.0 / self.testsRun))
# visual
header = "%25s | run | success | errors | fails | time \n" % 'Test Module'
@@ -268,6 +280,10 @@ class TestRunner(BenchmarkRunner):
parser.add_option('-f', '--functional', action='store_true')
parser.add_option('-u', '--unit', action='store_true')
parser.add_option('-z', '--zodb', action='store_true')
+ parser.add_option('', '--zodb-masters')
+ parser.add_option('', '--zodb-storages')
+ parser.add_option('', '--zodb-replicas')
+ parser.add_option('', '--zodb-partitions')
def load_options(self, options, args):
if not (options.unit or options.functional or options.zodb or args):
@@ -276,12 +292,22 @@ class TestRunner(BenchmarkRunner):
unit = options.unit,
functional = options.functional,
zodb = options.zodb,
+ zodb_masters = int(options.zodb_masters or 1),
+ zodb_storages = int(options.zodb_storages or 1),
+ zodb_replicas = int(options.zodb_replicas or 0),
+ zodb_partitions = int(options.zodb_partitions or 1),
)
def start(self):
config = self._config
# run requested tests
- runner = NeoTestRunner(title=config.title or 'Neo')
+ runner = NeoTestRunner(
+ title=config.title or 'Neo',
+ masters=config.zodb_masters,
+ storages=config.zodb_storages,
+ replicas=config.zodb_replicas,
+ partitions=config.zodb_partitions,
+ )
try:
if config.unit:
runner.run('Unit tests', UNIT_TEST_MODULES)
More information about the Neo-report
mailing list