[Zope3-checkins]
SVN: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
prepare the run_tests method to be split into find/run
Christian Theune
ct at gocept.com
Sat May 3 18:14:33 EDT 2008
Log message for revision 86307:
prepare the run_tests method to be split into find/run
Changed:
U zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
-=-
Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py 2008-05-03 22:12:04 UTC (rev 86306)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py 2008-05-03 22:14:32 UTC (rev 86307)
@@ -188,59 +188,58 @@
Returns True if there where failures or False if all tests passed.
"""
- options = self.options
found_suites = self.found_suites
global _layer_name_cache
_layer_name_cache.clear() # Reset to enforce test isolation
- output = options.output
+ output = self.options.output
- if options.resume_layer:
+ if self.options.resume_layer:
original_stderr = sys.stderr
sys.stderr = sys.stdout
- elif options.verbose:
- if options.all:
+ elif self.options.verbose:
+ if self.options.all:
msg = "Running tests at all levels"
else:
- msg = "Running tests at level %d" % options.at_level
+ msg = "Running tests at level %d" % self.options.at_level
output.info(msg)
old_threshold = gc.get_threshold()
- if options.gc:
- if len(options.gc) > 3:
+ if self.options.gc:
+ if len(self.options.gc) > 3:
output.error("Too many --gc options")
sys.exit(1)
- if options.gc[0]:
+ if self.options.gc[0]:
output.info("Cyclic garbage collection threshold set to: %s" %
- repr(tuple(options.gc)))
+ repr(tuple(self.options.gc)))
else:
output.info("Cyclic garbage collection is disabled.")
- gc.set_threshold(*options.gc)
+ gc.set_threshold(*self.options.gc)
old_flags = gc.get_debug()
- if options.gc_option:
+ if self.options.gc_option:
new_flags = 0
- for op in options.gc_option:
+ for op in self.options.gc_option:
new_flags |= getattr(gc, op)
gc.set_debug(new_flags)
self.old_reporting_flags = doctest.set_unittest_reportflags(0)
reporting_flags = 0
- if options.ndiff:
+ if self.options.ndiff:
reporting_flags = doctest.REPORT_NDIFF
- if options.udiff:
+ if self.options.udiff:
if reporting_flags:
output.error("Can only give one of --ndiff, --udiff, or --cdiff")
sys.exit(1)
reporting_flags = doctest.REPORT_UDIFF
- if options.cdiff:
+ if self.options.cdiff:
if reporting_flags:
output.error("Can only give one of --ndiff, --udiff, or --cdiff")
sys.exit(1)
reporting_flags = doctest.REPORT_CDIFF
- if options.report_only_first_failure:
+ if self.options.report_only_first_failure:
reporting_flags |= doctest.REPORT_ONLY_FIRST_FAILURE
if reporting_flags:
@@ -250,11 +249,11 @@
# Add directories to the path
- for path in options.path:
+ for path in self.options.path:
if path not in sys.path:
sys.path.append(path)
- tests_by_layer_name = find_tests(options, found_suites)
+ tests_by_layer_name = find_tests(self.options, found_suites)
ran = 0
failures = []
@@ -266,10 +265,10 @@
if 'unit' in tests_by_layer_name:
tests = tests_by_layer_name.pop('unit')
- if (not options.non_unit) and not options.resume_layer:
- if options.layer:
+ if (not self.options.non_unit) and not self.options.resume_layer:
+ if self.options.layer:
should_run = False
- for pat in options.layer:
+ for pat in self.options.layer:
if pat('unit'):
should_run = True
break
@@ -277,13 +276,13 @@
should_run = True
if should_run:
- if options.list_tests:
+ if self.options.list_tests:
output.list_of_tests(tests, 'unit')
else:
output.info("Running unit tests:")
nlayers += 1
try:
- ran += run_tests(options, tests, 'unit', failures, errors)
+ ran += run_tests(self.options, tests, 'unit', failures, errors)
except EndRun:
self.failed = True
return
@@ -291,21 +290,21 @@
setup_layers = {}
layers_to_run = list(ordered_layers(tests_by_layer_name))
- if options.resume_layer is not None:
+ if self.options.resume_layer is not None:
layers_to_run = [
(layer_name, layer, tests)
for (layer_name, layer, tests) in layers_to_run
- if layer_name == options.resume_layer
+ if layer_name == self.options.resume_layer
]
- elif options.layer:
+ elif self.options.layer:
layers_to_run = [
(layer_name, layer, tests)
for (layer_name, layer, tests) in layers_to_run
- if filter(None, [pat(layer_name) for pat in options.layer])
+ if filter(None, [pat(layer_name) for pat in self.options.layer])
]
- if options.list_tests:
+ if self.options.list_tests:
for layer_name, layer, tests in layers_to_run:
output.list_of_tests(tests, layer_name)
self.failed = False
@@ -316,26 +315,26 @@
for layer_name, layer, tests in layers_to_run:
nlayers += 1
try:
- ran += run_layer(options, layer_name, layer, tests,
+ ran += run_layer(self.options, layer_name, layer, tests,
setup_layers, failures, errors)
except EndRun:
self.failed = True
return
except CanNotTearDown:
setup_layers = None
- if not options.resume_layer:
- ran += resume_tests(options, layer_name, layers_to_run,
+ if not self.options.resume_layer:
+ ran += resume_tests(self.options, layer_name, layers_to_run,
failures, errors)
break
if setup_layers:
- if options.resume_layer == None:
+ if self.options.resume_layer == None:
output.info("Tearing down left over layers:")
- tear_down_unneeded(options, (), setup_layers, True)
+ tear_down_unneeded(self.options, (), setup_layers, True)
total_time = time.time() - start_time
- if options.resume_layer:
+ if self.options.resume_layer:
sys.stdout.close()
# Communicate with the parent. The protocol is obvious:
print >> original_stderr, ran, len(failures), len(errors)
@@ -345,7 +344,7 @@
print >> original_stderr, ' '.join(str(test).strip().split('\n'))
else:
- if options.verbose:
+ if self.options.verbose:
output.tests_with_errors(errors)
output.tests_with_failures(failures)
@@ -356,10 +355,10 @@
doctest.set_unittest_reportflags(self.old_reporting_flags)
- if options.gc_option:
+ if self.options.gc_option:
gc.set_debug(old_flags)
- if options.gc:
+ if self.options.gc:
gc.set_threshold(*old_threshold)
self.failed = bool(import_errors or failures or errors)
More information about the Zope3-Checkins
mailing list