summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/error_class_plugin.html15
-rw-r--r--doc/index.html6
-rw-r--r--doc/init_plugin.html18
-rw-r--r--doc/module_nose.case.html187
-rw-r--r--doc/module_nose.commands.html38
-rw-r--r--doc/module_nose.config.html44
-rw-r--r--doc/module_nose.core.html16
-rw-r--r--doc/module_nose.exc.html6
-rw-r--r--doc/module_nose.importer.html8
-rw-r--r--doc/module_nose.inspector.html6
-rw-r--r--doc/module_nose.loader.html18
-rw-r--r--doc/module_nose.plugins.manager.html26
-rw-r--r--doc/module_nose.plugins.plugintest.html10
-rw-r--r--doc/module_nose.proxy.html10
-rw-r--r--doc/module_nose.result.html14
-rw-r--r--doc/module_nose.selector.html10
-rw-r--r--doc/module_nose.suite.html36
-rw-r--r--doc/module_nose.tools.html12
-rw-r--r--doc/module_nose.twistedtools.html6
-rw-r--r--doc/module_nose.util.html75
-rw-r--r--doc/plugin_attrib.html34
-rw-r--r--doc/plugin_capture.html12
-rw-r--r--doc/plugin_cover.html13
-rw-r--r--doc/plugin_debug.html8
-rw-r--r--doc/plugin_deprecated.html6
-rw-r--r--doc/plugin_doctests.html227
-rw-r--r--doc/plugin_exceptions.html101
-rw-r--r--doc/plugin_failuredetail.html8
-rw-r--r--doc/plugin_interface.html6
-rw-r--r--doc/plugin_isolate.html10
-rw-r--r--doc/plugin_multiprocess.html599
-rw-r--r--doc/plugin_prof.html44
-rw-r--r--doc/plugin_skip.html6
-rw-r--r--doc/plugin_testid.html18
-rw-r--r--doc/plugintest_environment.html21
-rw-r--r--doc/selector_plugin.html33
-rw-r--r--doc/unwanted_package.html12
-rw-r--r--doc/writing_plugins.html30
-rw-r--r--functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures.rst71
-rw-r--r--functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.py17
-rw-r--r--functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pycbin0 -> 1244 bytes
-rw-r--r--functional_tests/doc_tests/test_multiprocess/multiprocess.rst236
-rw-r--r--functional_tests/doc_tests/test_multiprocess/multiprocess_fixtures.py9
-rw-r--r--functional_tests/doc_tests/test_multiprocess/support/test_can_split.py29
-rw-r--r--functional_tests/doc_tests/test_multiprocess/support/test_not_shared.py29
-rw-r--r--functional_tests/doc_tests/test_multiprocess/support/test_shared.py29
-rw-r--r--nose/ext/dtcompat.py3
-rw-r--r--nose/loader.py4
-rw-r--r--nose/plugins/builtin.py3
-rw-r--r--nose/plugins/doctests.py160
-rw-r--r--nose/plugins/multiprocess.py478
-rw-r--r--nose/plugins/testid.py1
-rw-r--r--nose/suite.py82
-rw-r--r--nose/util.py19
-rwxr-xr-xscripts/mkdocs.py12
-rw-r--r--setup.cfg1
-rw-r--r--unit_tests/test_multiprocess_runner.py120
-rw-r--r--unit_tests/test_plugins.py9
-rw-r--r--unit_tests/test_twisted.py1
59 files changed, 2547 insertions, 515 deletions
diff --git a/doc/error_class_plugin.html b/doc/error_class_plugin.html
index 9a8e42e..e809f3b 100644
--- a/doc/error_class_plugin.html
+++ b/doc/error_class_plugin.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -69,14 +69,14 @@ each step.</p>
<blockquote>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">plugin</span> <span class="o">=</span> <span class="n">TodoError</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">unittest</span><span class="o">.</span><span class="n">_TextTestResult</span><span class="p">(</span><span class="n">stream</span><span class="o">=</span><span class="n">buf</span><span class="p">,</span>
-<span class="gp">... </span> <span class="n">descriptions</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
+<span class="gp">... </span> <span class="n">descriptions</span><span class="o">=</span><span class="mf">0</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mf">2</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">plugin</span><span class="o">.</span><span class="n">prepareTestResult</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
</pre></div>
</blockquote>
<p>Now run the test. TODO is printed.</p>
<blockquote>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">case</span><span class="p">(</span><span class="n">result</span><span class="p">)</span> <span class="c"># doctest: +ELLIPSIS</span>
-<span class="go">runTest (....TestTodo) ... TODO</span>
+<span class="go">runTest (....TestTodo) ... TODO: I need to test something</span>
</pre></div>
</blockquote>
<p>Errors and failures are empty, but todo has our test:</p>
@@ -92,9 +92,8 @@ each step.</p>
<span class="go">======================================================================</span>
<span class="go">TODO: runTest (....TestTodo)</span>
<span class="go">----------------------------------------------------------------------</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">Todo</span>: <span class="n-Identifier">I need to test something</span>
+<span class="gp">...</span>
+<span class="go">Todo: I need to test something</span>
<span class="go">&lt;BLANKLINE&gt;</span>
</pre></div>
</blockquote>
diff --git a/doc/index.html b/doc/index.html
index ec7e231..442383f 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -6,15 +6,15 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
</div>
<div id="main">
<h1>nose: API documentation</h1>
<div class="idx">
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
</div>
diff --git a/doc/init_plugin.html b/doc/init_plugin.html
index 462b2f4..1cba5da 100644
--- a/doc/init_plugin.html
+++ b/doc/init_plugin.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -63,7 +63,7 @@ the tests fail.</p>
output to remove timings, which will vary from run to run, and
redirects the output to stdout.</p>
<blockquote class="last">
-<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run</span>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run_buffered</span> <span class="k">as</span> <span class="n">run</span>
</pre></div>
</blockquote>
</div>
@@ -77,16 +77,14 @@ redirects the output to stdout.</p>
<span class="go">======================================================================</span>
<span class="go">ERROR: Widgets can frobnicate (or not)</span>
<span class="go">----------------------------------------------------------------------</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">AttributeError</span>: <span class="n-Identifier">&#39;NoneType&#39; object has no attribute &#39;get&#39;</span>
+<span class="gp">...</span>
+<span class="go">AttributeError: &#39;NoneType&#39; object has no attribute &#39;get&#39;</span>
<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">======================================================================</span>
<span class="go">ERROR: Widgets might like cheese</span>
<span class="go">----------------------------------------------------------------------</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">AttributeError</span>: <span class="n-Identifier">&#39;NoneType&#39; object has no attribute &#39;get&#39;</span>
+<span class="gp">...</span>
+<span class="go">AttributeError: &#39;NoneType&#39; object has no attribute &#39;get&#39;</span>
<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 2 tests in ...s</span>
diff --git a/doc/module_nose.case.html b/doc/module_nose.case.html
index fc1d212..0bced98 100644
--- a/doc/module_nose.case.html
+++ b/doc/module_nose.case.html
@@ -6,10 +6,10 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
- <h2>Classes</h2><ul><li><a href="#Test">Test</a></li><li><a href="#Failure">Failure</a></li><li><a href="#TestBase">TestBase</a></li><li><a href="#MethodTestCase">MethodTestCase</a></li><li><a href="#FunctionTestCase">FunctionTestCase</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <h2>Classes</h2><ul><li><a href="#Test">Test</a></li><li><a href="#TestBase">TestBase</a></li><li><a href="#MethodTestCase">MethodTestCase</a></li><li><a href="#FunctionTestCase">FunctionTestCase</a></li></ul>
</div>
<div id="main">
@@ -23,7 +23,7 @@ to create test cases from test functions and methods in test classes.</p>
<p>When a plugin sees a test, it will always see an instance of this
class. To access the actual test case that will be run, access the
test property of the nose.case.Test instance.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kwarg)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, test, config=None, resultProxy=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_context<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_exc_info<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *arg, **kwarg)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, test, config=None, resultProxy=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_context<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_exc_info<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
minimised; usually the top level of the traceback frame is not
needed.</p>
</div></div><div class="method section"><span class="method name">address<span class="args">(self)</span></span><div class="method doc"><p>Return a round-trip name for this test, a name that can be
@@ -93,8 +93,8 @@ arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.</p>
-</div></div><div class="method section"><span class="method name">id<span class="args">(self)</span></span><div class="method doc"><p>Get a short(er) description of the test</p>
-</div></div><div class="method section"><span class="method name">run<span class="args">(self, result)</span></span><div class="method doc"><p>Modified run for the test wrapper.</p>
+</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Get a short(er) description of the test</p>
+</div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Modified run for the test wrapper.</p>
<p>From here we don't call result.startTest or stopTest or
addSuccess. The wrapper calls addError/addFailure only if its
own setup or teardown fails, or running the wrapped test fails
@@ -107,80 +107,9 @@ called. They are called unconditionally.</p>
value from prepareTestCase. The value must be callable and
must accept one argument, the result instance.</p>
</div></div><div class="method section inherited"><span class="method name">setUp<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for setting up the test fixture before exercising it.</p>
-</div></div><div class="method section"><span class="method name">shortDescription<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">tearDown<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for deconstructing the test fixture after testing it.</p>
+</div></div><div class="method section inherited"><span class="method name">shortDescription<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">tearDown<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for deconstructing the test fixture after testing it.</p>
</div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">context</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Get the context object of this test (if any).</p>
</div></div></div></div>
-<a name="Failure"></a><div class="cls section"><span class="cls name">Failure</span> (unittest.TestCase)<div class="cls doc"><h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, exc_class, exc_val, tb=None)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_exc_info<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
-minimised; usually the top level of the traceback frame is not
-needed.</p>
-</div></div><div class="method section inherited"><span class="method name">assertAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
-difference rounded to the given number of decimal places
-(default 7) and comparing to zero.</p>
-<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
-difference rounded to the given number of decimal places
-(default 7) and comparing to zero.</p>
-<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
-operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertEquals<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
-operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertFalse<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test if the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
-difference rounded to the given number of decimal places
-(default 7) and comparing to zero.</p>
-<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
-difference rounded to the given number of decimal places
-(default 7) and comparing to zero.</p>
-<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
-operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotEquals<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
-operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
-by callableObj when invoked with arguments args and keyword
-arguments kwargs. If a different type of exception is
-thrown, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.</p>
-</div></div><div class="method section inherited"><span class="method name">assertTrue<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">assert_<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Run the test without collecting errors in a TestResult</p>
-</div></div><div class="method section inherited"><span class="method name">defaultTestResult<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">fail<span class="args">(self, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail immediately, with the given message.</p>
-</div></div><div class="method section inherited"><span class="method name">failIf<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test if the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">failIfAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
-difference rounded to the given number of decimal places
-(default 7) and comparing to zero.</p>
-<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">failIfEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
-operator.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnless<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
-difference rounded to the given number of decimal places
-(default 7) and comparing to zero.</p>
-<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
-operator.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
-by callableObj when invoked with arguments args and keyword
-arguments kwargs. If a different type of exception is
-thrown, it will not be caught, and the test case will be
-deemed to have suffered an error, exactly as for an
-unexpected exception.</p>
-</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">runTest<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">setUp<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for setting up the test fixture before exercising it.</p>
-</div></div><div class="method section inherited"><span class="method name">shortDescription<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Returns a one-line description of the test, or None if no
-description has been provided.</p>
-<p>The default implementation of this method returns the first line of
-the specified test method's docstring.</p>
-</div></div><div class="method section inherited"><span class="method name">tearDown<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for deconstructing the test fixture after testing it.</p>
-</div></div></div></div>
<a name="TestBase"></a><div class="cls section"><span class="cls name">TestBase</span> (unittest.TestCase)<div class="cls doc"><p>Common functionality for FunctionTestCase and MethodTestCase.</p>
<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, methodName='runTest')</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Create an instance of the class that will use the named test
method when executed. Raises a ValueError if the instance does
@@ -249,13 +178,13 @@ arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.</p>
-</div></div><div class="method section"><span class="method name">id<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">runTest<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">setUp<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for setting up the test fixture before exercising it.</p>
-</div></div><div class="method section"><span class="method name">shortDescription<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">tearDown<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for deconstructing the test fixture after testing it.</p>
+</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">runTest<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">setUp<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for setting up the test fixture before exercising it.</p>
+</div></div><div class="method section inherited"><span class="method name">shortDescription<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">tearDown<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Hook method for deconstructing the test fixture after testing it.</p>
</div></div></div></div>
<a name="MethodTestCase"></a><div class="cls section"><span class="cls name">MethodTestCase</span> (<a href="module_nose.case.html#TestBase">TestBase</a>)<div class="cls doc"><p>Test case wrapper for test methods.</p>
<p>Don't use this class directly; it is used internally in nose to
create test cases for test methods.</p>
-<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, method, test=None, arg=(), descriptor=None)</span></span><div class="method doc"><p>Initialize the MethodTestCase.</p>
+<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, method, test=None, arg=(), descriptor=None)</span></span><div class="method doc"><p>Initialize the MethodTestCase.</p>
<p>Required argument:</p>
<ul class="simple">
<li>method -- the method to call, may be bound or unbound. In either
@@ -279,79 +208,79 @@ most cases, this is the method itself and no arguments. For
tests generated by generator methods, the original
(generator) method and args passed to the generated method
or function are returned.</p>
-</div></div><div class="method section inherited"><span class="method name">_exc_info<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
+</div></div><div class="method section"><span class="method name">_exc_info<span class="args">(self)</span></span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
minimised; usually the top level of the traceback frame is not
needed.</p>
</div></div><div class="method section"><span class="method name">address<span class="args">(self)</span></span><div class="method doc"><p>Return a round-trip name for this test, a name that can be
fed back as input to loadTestByName and (assuming the same
plugin configuration) result in the loading of this test.</p>
-</div></div><div class="method section inherited"><span class="method name">assertAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
+</div></div><div class="method section"><span class="method name">assertAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
+</div></div><div class="method section"><span class="method name">assertAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertEquals<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertEquals<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertFalse<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test if the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
+</div></div><div class="method section"><span class="method name">assertFalse<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test if the expression is true.</p>
+</div></div><div class="method section"><span class="method name">assertNotAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
+</div></div><div class="method section"><span class="method name">assertNotAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertNotEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotEquals<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertNotEquals<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
+</div></div><div class="method section"><span class="method name">assertRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
by callableObj when invoked with arguments args and keyword
arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.</p>
-</div></div><div class="method section inherited"><span class="method name">assertTrue<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">assert_<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Run the test without collecting errors in a TestResult</p>
-</div></div><div class="method section inherited"><span class="method name">defaultTestResult<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">fail<span class="args">(self, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail immediately, with the given message.</p>
-</div></div><div class="method section inherited"><span class="method name">failIf<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test if the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">failIfAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
+</div></div><div class="method section"><span class="method name">assertTrue<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test unless the expression is true.</p>
+</div></div><div class="method section"><span class="method name">assert_<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test unless the expression is true.</p>
+</div></div><div class="method section"><span class="method name">countTestCases<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">debug<span class="args">(self)</span></span><div class="method doc"><p>Run the test without collecting errors in a TestResult</p>
+</div></div><div class="method section"><span class="method name">defaultTestResult<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">fail<span class="args">(self, msg=None)</span></span><div class="method doc"><p>Fail immediately, with the given message.</p>
+</div></div><div class="method section"><span class="method name">failIf<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test if the expression is true.</p>
+</div></div><div class="method section"><span class="method name">failIfAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">failIfEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
+</div></div><div class="method section"><span class="method name">failIfEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnless<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
+</div></div><div class="method section"><span class="method name">failUnless<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test unless the expression is true.</p>
+</div></div><div class="method section"><span class="method name">failUnlessAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
+</div></div><div class="method section"><span class="method name">failUnlessEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
+</div></div><div class="method section"><span class="method name">failUnlessRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
by callableObj when invoked with arguments args and keyword
arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.</p>
-</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">runTest<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">shortDescription<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">tearDown<span class="args">(self)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">context</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Get context (class) of this test</p>
+</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">run<span class="args">(self, result=None)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">runTest<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">shortDescription<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">tearDown<span class="args">(self)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">context</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Get context (class) of this test</p>
</div></div></div></div>
<a name="FunctionTestCase"></a><div class="cls section"><span class="cls name">FunctionTestCase</span> (<a href="module_nose.case.html#TestBase">TestBase</a>)<div class="cls doc"><p>TestCase wrapper for test functions.</p>
<p>Don't use this class directly; it is used internally in nose to
create test cases for test functions.</p>
-<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, test, setUp=None, tearDown=None, arg=(), descriptor=None)</span></span><div class="method doc"><p>Initialize the MethodTestCase.</p>
+<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, test, setUp=None, tearDown=None, arg=(), descriptor=None)</span></span><div class="method doc"><p>Initialize the MethodTestCase.</p>
<p>Required argument:</p>
<ul class="simple">
<li>test -- the test function to call.</li>
@@ -371,74 +300,74 @@ most cases, this is the function itself and no arguments. For
tests generated by generator functions, the original
(generator) function and args passed to the generated function
are returned.</p>
-</div></div><div class="method section inherited"><span class="method name">_exc_info<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
+</div></div><div class="method section"><span class="method name">_exc_info<span class="args">(self)</span></span><div class="method doc"><p>Return a version of sys.exc_info() with the traceback frame
minimised; usually the top level of the traceback frame is not
needed.</p>
</div></div><div class="method section"><span class="method name">address<span class="args">(self)</span></span><div class="method doc"><p>Return a round-trip name for this test, a name that can be
fed back as input to loadTestByName and (assuming the same
plugin configuration) result in the loading of this test.</p>
-</div></div><div class="method section inherited"><span class="method name">assertAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
+</div></div><div class="method section"><span class="method name">assertAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
+</div></div><div class="method section"><span class="method name">assertAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertEquals<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertEquals<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertFalse<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test if the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
+</div></div><div class="method section"><span class="method name">assertFalse<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test if the expression is true.</p>
+</div></div><div class="method section"><span class="method name">assertNotAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
+</div></div><div class="method section"><span class="method name">assertNotAlmostEquals<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertNotEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertNotEquals<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
+</div></div><div class="method section"><span class="method name">assertNotEquals<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">assertRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
+</div></div><div class="method section"><span class="method name">assertRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
by callableObj when invoked with arguments args and keyword
arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.</p>
-</div></div><div class="method section inherited"><span class="method name">assertTrue<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">assert_<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Run the test without collecting errors in a TestResult</p>
-</div></div><div class="method section inherited"><span class="method name">defaultTestResult<span class="args">(self)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">fail<span class="args">(self, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail immediately, with the given message.</p>
-</div></div><div class="method section inherited"><span class="method name">failIf<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test if the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">failIfAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by their
+</div></div><div class="method section"><span class="method name">assertTrue<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test unless the expression is true.</p>
+</div></div><div class="method section"><span class="method name">assert_<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test unless the expression is true.</p>
+</div></div><div class="method section"><span class="method name">countTestCases<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">debug<span class="args">(self)</span></span><div class="method doc"><p>Run the test without collecting errors in a TestResult</p>
+</div></div><div class="method section"><span class="method name">defaultTestResult<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">fail<span class="args">(self, msg=None)</span></span><div class="method doc"><p>Fail immediately, with the given message.</p>
+</div></div><div class="method section"><span class="method name">failIf<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test if the expression is true.</p>
+</div></div><div class="method section"><span class="method name">failIfAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">failIfEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
+</div></div><div class="method section"><span class="method name">failIfEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are equal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnless<span class="args">(self, expr, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail the test unless the expression is true.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
+</div></div><div class="method section"><span class="method name">failUnless<span class="args">(self, expr, msg=None)</span></span><div class="method doc"><p>Fail the test unless the expression is true.</p>
+</div></div><div class="method section"><span class="method name">failUnlessAlmostEqual<span class="args">(self, first, second, places=7, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by their
difference rounded to the given number of decimal places
(default 7) and comparing to zero.</p>
<p>Note that decimal places (from zero) are usually not the same
as significant digits (measured from the most signficant digit).</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessEqual<span class="args">(self, first, second, msg=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
+</div></div><div class="method section"><span class="method name">failUnlessEqual<span class="args">(self, first, second, msg=None)</span></span><div class="method doc"><p>Fail if the two objects are unequal as determined by the '=='
operator.</p>
-</div></div><div class="method section inherited"><span class="method name">failUnlessRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
+</div></div><div class="method section"><span class="method name">failUnlessRaises<span class="args">(self, excClass, callableObj, *args, **kwargs)</span></span><div class="method doc"><p>Fail unless an exception of class excClass is thrown
by callableObj when invoked with arguments args and keyword
arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.</p>
-</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result=None)</span></span><span class="method inherited">(inherited from TestCase)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">runTest<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"><p>Run any setup function attached to the test function</p>
+</div></div><div class="method section inherited"><span class="method name">id<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">run<span class="args">(self, result=None)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">runTest<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"><p>Run any setup function attached to the test function</p>
</div></div><div class="method section inherited"><span class="method name">shortDescription<span class="args">(self)</span></span><span class="method inherited">(inherited from TestBase)</span><div class="method doc"></div></div><div class="method section"><span class="method name">tearDown<span class="args">(self)</span></span><div class="method doc"><p>Run any teardown function attached to the test function</p>
</div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">context</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Get context (module) of this test</p>
</div></div></div></div>
diff --git a/doc/module_nose.commands.html b/doc/module_nose.commands.html
index 5c27a0c..0b66121 100644
--- a/doc/module_nose.commands.html
+++ b/doc/module_nose.commands.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#nosetests">nosetests</a></li></ul><h2>Functions</h2><ul><li><a href="#get_user_options">get_user_options</a></li></ul><h2>Attributes</h2><ul><li><a href="#option_blacklist">option_blacklist</a></li></ul>
</div>
@@ -55,48 +55,48 @@ dependencies or that build C extensions, using the setuptools command
can be more convenient than building by hand and running the nosetests
script.</p>
<h2>Classes</h2>
-<p>Highlighted methods are defined in this class.</p><a name="nosetests"></a><div class="cls section"><span class="cls name">nosetests</span> (setuptools.Command)<div class="cls doc"><h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, dist, **kw)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_ensure_stringlike<span class="args">(self, option, what, default=None)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_ensure_tested_string<span class="args">(self, option, tester, what, error_fmt, default=None)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">announce<span class="args">(self, msg, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>If the current verbosity level is of greater than or equal to
+<p>Highlighted methods are defined in this class.</p><a name="nosetests"></a><div class="cls section"><span class="cls name">nosetests</span> (setuptools.Command)<div class="cls doc"><h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, dist, **kw)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_ensure_stringlike<span class="args">(self, option, what, default=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_ensure_tested_string<span class="args">(self, option, tester, what, error_fmt, default=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">announce<span class="args">(self, msg, level=1)</span></span><div class="method doc"><p>If the current verbosity level is of greater than or equal to
'level' print 'msg' to stdout.</p>
-</div></div><div class="method section inherited"><span class="method name">copy_file<span class="args">(self, infile, outfile, preserve_mode=1, preserve_times=1, link=None, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Copy a file respecting verbose, dry-run and force flags. (The
+</div></div><div class="method section"><span class="method name">cfgToArg<span class="args">(self, optname, value)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">copy_file<span class="args">(self, infile, outfile, preserve_mode=1, preserve_times=1, link=None, level=1)</span></span><div class="method doc"><p>Copy a file respecting verbose, dry-run and force flags. (The
former two default to whatever is in the Distribution object, and
the latter defaults to false for commands that don't define it.)</p>
-</div></div><div class="method section inherited"><span class="method name">copy_tree<span class="args">(self, infile, outfile, preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Copy an entire directory tree respecting verbose, dry-run,
+</div></div><div class="method section"><span class="method name">copy_tree<span class="args">(self, infile, outfile, preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1)</span></span><div class="method doc"><p>Copy an entire directory tree respecting verbose, dry-run,
and force flags.</p>
-</div></div><div class="method section inherited"><span class="method name">debug_print<span class="args">(self, msg)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Print 'msg' to stdout if the global DEBUG (taken from the
+</div></div><div class="method section"><span class="method name">debug_print<span class="args">(self, msg)</span></span><div class="method doc"><p>Print 'msg' to stdout if the global DEBUG (taken from the
DISTUTILS_DEBUG environment variable) flag is true.</p>
-</div></div><div class="method section inherited"><span class="method name">dump_options<span class="args">(self, header=None, indent='')</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">ensure_dirname<span class="args">(self, option)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">ensure_filename<span class="args">(self, option)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Ensure that 'option' is the name of an existing file.</p>
-</div></div><div class="method section inherited"><span class="method name">ensure_finalized<span class="args">(self)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">ensure_string<span class="args">(self, option, default=None)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Ensure that 'option' is a string; if not defined, set it to
+</div></div><div class="method section"><span class="method name">dump_options<span class="args">(self, header=None, indent='')</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">ensure_dirname<span class="args">(self, option)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">ensure_filename<span class="args">(self, option)</span></span><div class="method doc"><p>Ensure that 'option' is the name of an existing file.</p>
+</div></div><div class="method section"><span class="method name">ensure_finalized<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">ensure_string<span class="args">(self, option, default=None)</span></span><div class="method doc"><p>Ensure that 'option' is a string; if not defined, set it to
'default'.</p>
-</div></div><div class="method section inherited"><span class="method name">ensure_string_list<span class="args">(self, option)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Ensure that 'option' is a list of strings. If 'option' is
+</div></div><div class="method section"><span class="method name">ensure_string_list<span class="args">(self, option)</span></span><div class="method doc"><p>Ensure that 'option' is a list of strings. If 'option' is
currently a string, we split it either on /,s*/ or /s+/, so
&quot;foo bar baz&quot;, &quot;foo,bar,baz&quot;, and &quot;foo, bar baz&quot; all become
[&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;].</p>
-</div></div><div class="method section inherited"><span class="method name">execute<span class="args">(self, func, args, msg=None, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section"><span class="method name">finalize_options<span class="args">(self)</span></span><div class="method doc"><p>nothing to do here</p>
-</div></div><div class="method section inherited"><span class="method name">get_command_name<span class="args">(self)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">get_finalized_command<span class="args">(self, command, create=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Wrapper around Distribution's 'get_command_obj()' method: find
+</div></div><div class="method section"><span class="method name">execute<span class="args">(self, func, args, msg=None, level=1)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">finalize_options<span class="args">(self)</span></span><div class="method doc"><p>nothing to do here</p>
+</div></div><div class="method section"><span class="method name">get_command_name<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">get_finalized_command<span class="args">(self, command, create=1)</span></span><div class="method doc"><p>Wrapper around Distribution's 'get_command_obj()' method: find
(create if necessary and 'create' is true) the command object for
'command', call its 'ensure_finalized()' method, and return the
finalized command object.</p>
-</div></div><div class="method section inherited"><span class="method name">get_sub_commands<span class="args">(self)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Determine the sub-commands that are relevant in the current
+</div></div><div class="method section"><span class="method name">get_sub_commands<span class="args">(self)</span></span><div class="method doc"><p>Determine the sub-commands that are relevant in the current
distribution (ie., that need to be run). This is based on the
'sub_commands' class attribute: each tuple in that list may include
a method that we call to determine if the subcommand needs to be
run for the current distribution. Return a list of command names.</p>
</div></div><div class="method section"><span class="method name">initialize_options<span class="args">(self)</span></span><div class="method doc"><p>create the member variables, but change hyphens to
underscores</p>
-</div></div><div class="method section inherited"><span class="method name">make_archive<span class="args">(self, base_name, format, root_dir=None, base_dir=None)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">make_file<span class="args">(self, infiles, outfile, func, args, exec_msg=None, skip_msg=None, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Special case of 'execute()' for operations that process one or
+</div></div><div class="method section"><span class="method name">make_archive<span class="args">(self, base_name, format, root_dir=None, base_dir=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">make_file<span class="args">(self, infiles, outfile, func, args, exec_msg=None, skip_msg=None, level=1)</span></span><div class="method doc"><p>Special case of 'execute()' for operations that process one or
more input files and generate one output file. Works just like
'execute()', except the operation is skipped and a different
message printed if 'outfile' already exists and is newer than all
files listed in 'infiles'. If the command defined 'self.force',
and it is true, then the command is unconditionally run -- does no
timestamp checks.</p>
-</div></div><div class="method section inherited"><span class="method name">mkpath<span class="args">(self, name, mode=511)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">move_file<span class="args">(self, src, dst, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Move a file respectin dry-run flag.</p>
+</div></div><div class="method section"><span class="method name">mkpath<span class="args">(self, name, mode=511)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">move_file<span class="args">(self, src, dst, level=1)</span></span><div class="method doc"><p>Move a file respectin dry-run flag.</p>
</div></div><div class="method section inherited"><span class="method name">reinitialize_command<span class="args">(self, command, reinit_subcommands=0, **kw)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><div class="method section"><span class="method name">run<span class="args">(self)</span></span><div class="method doc"><p>ensure tests are capable of being run, then
run nose.main with a reconstructed argument list</p>
-</div></div><div class="method section inherited"><span class="method name">run_command<span class="args">(self, command)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Run some other command: uses the 'run_command()' method of
+</div></div><div class="method section"><span class="method name">run_command<span class="args">(self, command)</span></span><div class="method doc"><p>Run some other command: uses the 'run_command()' method of
Distribution, which creates and finalizes the command object if
necessary and then invokes its 'run()' method.</p>
-</div></div><div class="method section inherited"><span class="method name">set_undefined_options<span class="args">(self, src_cmd, *option_pairs)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Set the values of any &quot;undefined&quot; options from corresponding
+</div></div><div class="method section"><span class="method name">set_undefined_options<span class="args">(self, src_cmd, *option_pairs)</span></span><div class="method doc"><p>Set the values of any &quot;undefined&quot; options from corresponding
option values in some other command object. &quot;Undefined&quot; here means
&quot;is None&quot;, which is the convention used to indicate that an option
has not been changed between 'initialize_options()' and
@@ -108,8 +108,8 @@ for it if necessary); the remaining arguments are
'(src_option,dst_option)' tuples which mean &quot;take the value of
'src_option' in the 'src_cmd' command object, and copy it to
'dst_option' in the current command object&quot;.</p>
-</div></div><div class="method section inherited"><span class="method name">spawn<span class="args">(self, cmd, search_path=1, level=1)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"><p>Spawn an external command respecting dry-run flag.</p>
-</div></div><div class="method section inherited"><span class="method name">warn<span class="args">(self, msg)</span></span><span class="method inherited">(inherited from Command)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">_nosetests__config</span><pre class="attr value">Default value: Config(addPaths=True, args=(), configSection=&#39;nosetests&#39;, debug=None, debugLog=None, env={}, exclude=None, files=[], getTestCaseNamesCompat=False, ignoreFiles=(&lt;_sre.SRE_Pattern object&gt;, &lt;_sre.SRE_Pattern object&gt;, &lt;_sre.SRE_Pattern object&gt;), include=None, includeExe=False, logStream=&lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39;&gt;, loggingConfig=None, options=&lt;nose.config.NoOptions object&gt;, parser=&lt;optparse.OptionParser instance&gt;, plugins=&lt;nose.plugins.manager.DefaultPluginManager object&gt;, runOnInit=True, srcDirs=(&#39;lib&#39;, &#39;src&#39;), stopOnError=False, stream=&lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39;&gt;, testMatch=&lt;_sre.SRE_Pattern object&gt;, testMatchPat=&#39;(?:^|[\\b_\\./-])[Tt]est&#39;, testNames=[], verbosity=1, where=(), workingDir=&#39;/home/jhp/code/nose/trunk&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">_nosetests__parser</span><pre class="attr value">Default value: &lt;optparse.OptionParser instance&gt;</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">command_consumes_arguments</span><pre class="attr value">Default value: False</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">description</span><pre class="attr value">Default value: Run unit tests using nosetests</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">sub_commands</span><pre class="attr value">Default value: []</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">user_options</span><pre class="attr value">Default value: [(&#39;version&#39;, &#39;V&#39;, &#39;Output nose version and exit&#39;), (&#39;plugins&#39;, &#39;p&#39;, &#39;Output list of available plugins and exit. Combine with higher verbosity for greater detail&#39;), (&#39;verbosity=&#39;, None, &#39;Set verbosity; --verbosity=2 is the same as -v&#39;), (&#39;quiet=&#39;, &#39;q&#39;, &#39;&#39;), (&#39;config=&#39;, &#39;c&#39;, &#39;Load configuration from config file(s). May be specified multiple times; in that case, all config files will be loaded and combined&#39;), (&#39;where=&#39;, &#39;w&#39;, &#39;Look for tests in this directory. May be specified multiple times. The first directory passed will be used as the working directory, in place of the current working directory, which is the default. Others will be added to the list of tests to execute. [NOSE_WHERE]&#39;), (&#39;match=&#39;, &#39;m&#39;, &#39;Use this regular expression to find tests [NOSE_TESTMATCH]&#39;), (&#39;tests=&#39;, None, &#39;Run these tests (comma-separated list). This argument is useful mainly from configuration files; on the command line, just pass the tests to run as additional arguments with no switch.&#39;), (&#39;debug=&#39;, &#39;l&#39;, &#39;Activate debug logging for one or more systems. Available debug loggers: nose, nose.importer, nose.inspector, nose.plugins, nose.result and nose.selector. Separate multiple names with a comma.&#39;), (&#39;debug-log=&#39;, None, &#39;Log debug messages to this file (default: sys.stderr)&#39;), (&#39;logging-config=&#39;, None, &#39;Load logging config from this file -- bypasses all other logging config settings.&#39;), (&#39;exclude=&#39;, &#39;e&#39;, &quot;Don&#39;t run tests that match regular expression [NOSE_EXCLUDE]&quot;), (&#39;include=&#39;, &#39;i&#39;, &#39;Also run tests that match regular expression [NOSE_INCLUDE]&#39;), (&#39;stop&#39;, &#39;x&#39;, &#39;Stop running tests after the first error or failure&#39;), (&#39;no-path-adjustment&#39;, &#39;P&#39;, &quot;Don&#39;t make any changes to sys.path when loading tests [NOSE_NOPATH]&quot;), (&#39;exe&#39;, None, &#39;Look for tests in python modules that are executable. Normal behavior is to exclude executable modules, since they may not be import-safe [NOSE_INCLUDE_EXE]&#39;), (&#39;noexe&#39;, None, &#39;DO NOT look for tests in python modules that are executable. (The default on the windows platform is to do so.)&#39;), (&#39;attr=&#39;, &#39;a&#39;, &#39;Run only tests that have attributes specified by ATTR [NOSE_ATTR]&#39;), (&#39;eval-attr=&#39;, &#39;A&#39;, &#39;Run only tests for whose attributes the Python expression EXPR evaluates to True [NOSE_EVAL_ATTR]&#39;), (&#39;nocapture&#39;, &#39;s&#39;, &quot;Don&#39;t capture stdout (any stdout output will be printed immediately) [NOSE_NOCAPTURE]&quot;), (&#39;with-coverage&#39;, None, &quot;Enable plugin Coverage: \nIf you have Ned Batchelder&#39;s coverage module installed, you may\nactivate a coverage report. The coverage report will cover any\npython source module imported after the start of the test run, excluding\nmodules that match testMatch. If you want to include those modules too,\nuse the --cover-tests switch, or set the NOSE_COVER_TESTS environment\nvariable to a true value. To restrict the coverage report to modules from\na particular package or packages, use the --cover-packages switch or the\nNOSE_COVER_PACKAGES environment variable.\n [NOSE_WITH_COVERAGE]&quot;), (&#39;cover-package=&#39;, None, &#39;Restrict coverage output to selected packages [NOSE_COVER_PACKAGE]&#39;), (&#39;cover-erase&#39;, None, &#39;Erase previously collected coverage statistics before run&#39;), (&#39;cover-tests&#39;, None, &#39;Include test modules in coverage report [NOSE_COVER_TESTS]&#39;), (&#39;cover-inclusive&#39;, None, &#39;Include all python files under working directory in coverage report. Useful for discovering holes in test coverage if not all files are imported by the test suite. [NOSE_COVER_INCLUSIVE]&#39;), (&#39;pdb&#39;, None, &#39;Drop into debugger on errors&#39;), (&#39;pdb-failures&#39;, None, &#39;Drop into debugger on failures&#39;), (&#39;no-deprecated&#39;, None, &#39;Disable special handling of DeprecatedTest exceptions.&#39;), (&#39;with-doctest&#39;, None, &#39;Enable plugin Doctest: \nActivate doctest plugin to find and run doctests in non-test modules.\n [NOSE_WITH_DOCTEST]&#39;), (&#39;doctest-tests&#39;, None, &#39;Also look for doctests in test modules. Note that classes, methods and functions should have either doctests or non-doctest tests, not both. [NOSE_DOCTEST_TESTS]&#39;), (&#39;doctest-extension=&#39;, None, &#39;Also look for doctests in files with this extension [NOSE_DOCTEST_EXTENSION]&#39;), (&#39;with-isolation&#39;, None, &#39;Enable plugin IsolationPlugin: \nActivate the isolation plugin to isolate changes to external\nmodules to a single test module or package. The isolation plugin\nresets the contents of sys.modules after each test module or\npackage runs to its state before the test. PLEASE NOTE that this\nplugin should not be used with the coverage plugin in any other case\nwhere module reloading may produce undesirable side-effects.\n [NOSE_WITH_ISOLATION]&#39;), (&#39;detailed-errors&#39;, &#39;d&#39;, &#39;Add detail to error output by attempting to evaluate failed asserts [NOSE_DETAILED_ERRORS]&#39;), (&#39;with-profile&#39;, None, &#39;Enable plugin Profile: \nUse this plugin to run tests using the hotshot profiler. \n [NOSE_WITH_PROFILE]&#39;), (&#39;profile-sort=&#39;, None, &#39;Set sort order for profiler output&#39;), (&#39;profile-stats-file=&#39;, None, &#39;Profiler stats file; default is a new temp file on each run&#39;), (&#39;profile-restrict=&#39;, None, &#39;Restrict profiler output. See help for pstats.Stats for details&#39;), (&#39;no-skip&#39;, None, &#39;Disable special handling of SkipTest exceptions.&#39;), (&#39;with-id&#39;, None, &quot;Enable plugin TestId: \nActivate to add a test id (like #1) to each test name output. After\nyou&#39;ve run once to generate test ids, you can re-run individual\ntests by activating the plugin and passing the ids (with or\nwithout the # prefix) instead of test names.\n [NOSE_WITH_ID]&quot;), (&#39;id-file=&#39;, None, &#39;Store test ids found in test runs in this file. Default is the file .noseids in the working directory.&#39;)]</pre><div class="attr doc"></div></div></div></div><h2>Functions</h2>
+</div></div><div class="method section"><span class="method name">spawn<span class="args">(self, cmd, search_path=1, level=1)</span></span><div class="method doc"><p>Spawn an external command respecting dry-run flag.</p>
+</div></div><div class="method section"><span class="method name">warn<span class="args">(self, msg)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">_nosetests__config</span><pre class="attr value">Default value: Config(addPaths=True, args=(), configSection=&#39;nosetests&#39;, debug=None, debugLog=None, env={}, exclude=None, files=[], getTestCaseNamesCompat=False, ignoreFiles=(&lt;_sre.SRE_Pattern object&gt;, &lt;_sre.SRE_Pattern object&gt;, &lt;_sre.SRE_Pattern object&gt;), include=None, includeExe=False, logStream=&lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39;&gt;, loggingConfig=None, options=&lt;nose.config.NoOptions object&gt;, parser=&lt;optparse.OptionParser instance&gt;, plugins=&lt;nose.plugins.manager.DefaultPluginManager object&gt;, runOnInit=True, srcDirs=(&#39;lib&#39;, &#39;src&#39;), stopOnError=False, stream=&lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39;&gt;, testMatch=&lt;_sre.SRE_Pattern object&gt;, testMatchPat=&#39;(?:^|[\\b_\\./-])[Tt]est&#39;, testNames=[], verbosity=1, where=(), workingDir=&#39;/Users/jhp/projects/nose/branches/ticket-93&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">_nosetests__parser</span><pre class="attr value">Default value: &lt;optparse.OptionParser instance&gt;</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">command_consumes_arguments</span><pre class="attr value">Default value: False</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">description</span><pre class="attr value">Default value: Run unit tests using nosetests</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">sub_commands</span><pre class="attr value">Default value: []</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">user_options</span><pre class="attr value">Default value: [(&#39;version&#39;, &#39;V&#39;, &#39;Output nose version and exit&#39;), (&#39;plugins&#39;, &#39;p&#39;, &#39;Output list of available plugins and exit. Combine with higher verbosity for greater detail&#39;), (&#39;verbosity=&#39;, None, &#39;Set verbosity; --verbosity=2 is the same as -v&#39;), (&#39;quiet=&#39;, &#39;q&#39;, &#39;&#39;), (&#39;config=&#39;, &#39;c&#39;, &#39;Load configuration from config file(s). May be specified multiple times; in that case, all config files will be loaded and combined&#39;), (&#39;where=&#39;, &#39;w&#39;, &#39;Look for tests in this directory. May be specified multiple times. The first directory passed will be used as the working directory, in place of the current working directory, which is the default. Others will be added to the list of tests to execute. [NOSE_WHERE]&#39;), (&#39;match=&#39;, &#39;m&#39;, &#39;Use this regular expression to find tests [NOSE_TESTMATCH]&#39;), (&#39;tests=&#39;, None, &#39;Run these tests (comma-separated list). This argument is useful mainly from configuration files; on the command line, just pass the tests to run as additional arguments with no switch.&#39;), (&#39;debug=&#39;, &#39;l&#39;, &#39;Activate debug logging for one or more systems. Available debug loggers: nose, nose.importer, nose.inspector, nose.plugins, nose.result and nose.selector. Separate multiple names with a comma.&#39;), (&#39;debug-log=&#39;, None, &#39;Log debug messages to this file (default: sys.stderr)&#39;), (&#39;logging-config=&#39;, None, &#39;Load logging config from this file -- bypasses all other logging config settings.&#39;), (&#39;exclude=&#39;, &#39;e&#39;, &quot;Don&#39;t run tests that match regular expression [NOSE_EXCLUDE]&quot;), (&#39;include=&#39;, &#39;i&#39;, &#39;Also run tests that match regular expression [NOSE_INCLUDE]&#39;), (&#39;stop&#39;, &#39;x&#39;, &#39;Stop running tests after the first error or failure&#39;), (&#39;no-path-adjustment&#39;, &#39;P&#39;, &quot;Don&#39;t make any changes to sys.path when loading tests [NOSE_NOPATH]&quot;), (&#39;exe&#39;, None, &#39;Look for tests in python modules that are executable. Normal behavior is to exclude executable modules, since they may not be import-safe [NOSE_INCLUDE_EXE]&#39;), (&#39;noexe&#39;, None, &#39;DO NOT look for tests in python modules that are executable. (The default on the windows platform is to do so.)&#39;), (&#39;with-trestle&#39;, None, &#39;Enable plugin Trestle: \nDoctest for REST apps in ReST files. Parses reStructuredText\ndocuments looking for request and response sections, and\nconstructs test examples that make the requests and expect to\nreceive the response(s) defined for the requests. A fixtures file\nreferenced by each reStructuredText document must be used to define\nclass and test level fixtures, as well as the http client (or mock client)\nto be used to make the requests.\n [NOSE_WITH_TRESTLE]&#39;), (&#39;trestle-extension=&#39;, None, &#39;Look for trestle tests in files with this extension&#39;), (&#39;trestle-css=&#39;, None, &#39;Include this .css file in generated html documentation files. Relative paths are relative to the trestle package or your working dir&#39;), (&#39;trestle-output=&#39;, None, &#39;Output generated html documentation files in this directory. Relative paths are relative to your working dir.&#39;), (&#39;with-gae&#39;, None, &#39;Enable plugin NoseGAE: \nActivate this plugin to run tests in Google App Engine dev\nenvironment. When the plugin is active, Google App Engine dev stubs, such\nas the stub datastore, will be available, and application code will run in\na sandbox that restricts module loading in the same way as it is\nrestricted when running under GAE.\n [NOSE_WITH_GAE]&#39;), (&#39;gae-lib-root=&#39;, None, &#39;Set the path to the root directory of the Google Application Engine installation&#39;), (&#39;gae-application=&#39;, None, &#39;Set the path to the GAE application under test. Default is the nose `where` directory (generally the pwd)&#39;), (&#39;attr=&#39;, &#39;a&#39;, &#39;Run only tests that have attributes specified by ATTR [NOSE_ATTR]&#39;), (&#39;eval-attr=&#39;, &#39;A&#39;, &#39;Run only tests for whose attributes the Python expression EXPR evaluates to True [NOSE_EVAL_ATTR]&#39;), (&#39;nocapture&#39;, &#39;s&#39;, &quot;Don&#39;t capture stdout (any stdout output will be printed immediately) [NOSE_NOCAPTURE]&quot;), (&#39;nologcapture&#39;, None, &quot;Don&#39;t capture logging output [NOSE_NOLOGCAPTURE]&quot;), (&#39;logging-format=&#39;, None, &#39;logging statements formatting [NOSE_LOGFORMAT]&#39;), (&#39;logging-clear-handlers&#39;, None, &#39;Clear all other logging handlers&#39;), (&#39;with-coverage&#39;, None, &quot;Enable plugin Coverage: \nIf you have Ned Batchelder&#39;s coverage module installed, you may\nactivate a coverage report. The coverage report will cover any\npython source module imported after the start of the test run, excluding\nmodules that match testMatch. If you want to include those modules too,\nuse the --cover-tests switch, or set the NOSE_COVER_TESTS environment\nvariable to a true value. To restrict the coverage report to modules from\na particular package or packages, use the --cover-packages switch or the\nNOSE_COVER_PACKAGES environment variable.\n [NOSE_WITH_COVERAGE]&quot;), (&#39;cover-package=&#39;, None, &#39;Restrict coverage output to selected packages [NOSE_COVER_PACKAGE]&#39;), (&#39;cover-erase&#39;, None, &#39;Erase previously collected coverage statistics before run&#39;), (&#39;cover-tests&#39;, None, &#39;Include test modules in coverage report [NOSE_COVER_TESTS]&#39;), (&#39;cover-inclusive&#39;, None, &#39;Include all python files under working directory in coverage report. Useful for discovering holes in test coverage if not all files are imported by the test suite. [NOSE_COVER_INCLUSIVE]&#39;), (&#39;pdb&#39;, None, &#39;Drop into debugger on errors&#39;), (&#39;pdb-failures&#39;, None, &#39;Drop into debugger on failures&#39;), (&#39;no-deprecated&#39;, None, &#39;Disable special handling of DeprecatedTest exceptions.&#39;), (&#39;with-doctest&#39;, None, &#39;Enable plugin Doctest: \nActivate doctest plugin to find and run doctests in non-test modules.\n [NOSE_WITH_DOCTEST]&#39;), (&#39;doctest-tests&#39;, None, &#39;Also look for doctests in test modules. Note that classes, methods and functions should have either doctests or non-doctest tests, not both. [NOSE_DOCTEST_TESTS]&#39;), (&#39;doctest-extension=&#39;, None, &#39;Also look for doctests in files with this extension [NOSE_DOCTEST_EXTENSION]&#39;), (&#39;doctest-fixtures=&#39;, None, &#39;Find fixtures for a doctest file in module with this name appended to the base name of the doctest file&#39;), (&#39;with-isolation&#39;, None, &#39;Enable plugin IsolationPlugin: \nActivate the isolation plugin to isolate changes to external\nmodules to a single test module or package. The isolation plugin\nresets the contents of sys.modules after each test module or\npackage runs to its state before the test. PLEASE NOTE that this\nplugin should not be used with the coverage plugin in any other case\nwhere module reloading may produce undesirable side-effects.\n [NOSE_WITH_ISOLATION]&#39;), (&#39;detailed-errors&#39;, &#39;d&#39;, &#39;Add detail to error output by attempting to evaluate failed asserts [NOSE_DETAILED_ERRORS]&#39;), (&#39;with-profile&#39;, None, &#39;Enable plugin Profile: \nUse this plugin to run tests using the hotshot profiler. \n [NOSE_WITH_PROFILE]&#39;), (&#39;profile-sort=&#39;, None, &#39;Set sort order for profiler output&#39;), (&#39;profile-stats-file=&#39;, None, &#39;Profiler stats file; default is a new temp file on each run&#39;), (&#39;profile-restrict=&#39;, None, &#39;Restrict profiler output. See help for pstats.Stats for details&#39;), (&#39;no-skip&#39;, None, &#39;Disable special handling of SkipTest exceptions.&#39;), (&#39;with-id&#39;, None, &quot;Enable plugin TestId: \nActivate to add a test id (like #1) to each test name output. After\nyou&#39;ve run once to generate test ids, you can re-run individual\ntests by activating the plugin and passing the ids (with or\nwithout the # prefix) instead of test names.\n [NOSE_WITH_ID]&quot;), (&#39;id-file=&#39;, None, &#39;Store test ids found in test runs in this file. Default is the file .noseids in the working directory.&#39;), (&#39;processes=&#39;, None, &#39;Spread test run among this many processes. Set a number equal to the number of processors or cores in your machine for best results. [NOSE_PROCESSES]&#39;), (&#39;process-timeout=&#39;, None, &#39;Set timeout for return of results from each test runner process. [NOSE_PROCESS_TIMEOUT]&#39;)]</pre><div class="attr doc"></div></div></div></div><h2>Functions</h2>
<a name="get_user_options"></a><div class="func section"><span class="func name">get_user_options<span class="args">(parser)</span></span><div class="func doc"><p>convert a optparse option list into a distutils option tuple list</p>
</div></div><h2>Attributes</h2>
<a name="option_blacklist"></a><div class="attr section"><span class="attr name">option_blacklist</span><pre class="attr value">Default value: [&#39;help&#39;, &#39;verbose&#39;]</pre><div class="attr doc"></div></div>
diff --git a/doc/module_nose.config.html b/doc/module_nose.config.html
index 2676d8e..ea8f905 100644
--- a/doc/module_nose.config.html
+++ b/doc/module_nose.config.html
@@ -6,24 +6,17 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
- <h2>Classes</h2><ul><li><a href="#NoOptions">NoOptions</a></li><li><a href="#NoPlugins">NoPlugins</a></li><li><a href="#Config">Config</a></li></ul><h2>Functions</h2><ul><li><a href="#user_config_files">user_config_files</a></li><li><a href="#flag">flag</a></li><li><a href="#all_config_files">all_config_files</a></li></ul><h2>Attributes</h2><ul><li><a href="#option_blacklist">option_blacklist</a></li><li><a href="#log">log</a></li><li><a href="#config_files">config_files</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <h2>Classes</h2><ul><li><a href="#Config">Config</a></li><li><a href="#NoSuchOptionError">NoSuchOptionError</a></li><li><a href="#ConfiguredDefaultsOptionParser">ConfiguredDefaultsOptionParser</a></li><li><a href="#ConfigError">ConfigError</a></li><li><a href="#NoOptions">NoOptions</a></li></ul><h2>Functions</h2><ul><li><a href="#user_config_files">user_config_files</a></li><li><a href="#flag">flag</a></li><li><a href="#all_config_files">all_config_files</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li><li><a href="#exe_allowed_platforms">exe_allowed_platforms</a></li><li><a href="#option_blacklist">option_blacklist</a></li><li><a href="#config_files">config_files</a></li></ul>
</div>
<div id="main">
<h1>nose: nose.config</h1>
<h2>Classes</h2>
-<p>Highlighted methods are defined in this class.</p><a name="NoOptions"></a><div class="cls section"><span class="cls name">NoOptions</span> (object)<div class="cls doc"><p>Options container that returns None for all options.</p>
-<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(...)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"><p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>
-</div></div><div class="method section"><span class="method name">__nonzero__<span class="args">(self)</span></span><div class="method doc"></div></div></div></div>
-<a name="NoPlugins"></a><div class="cls section"><span class="cls name">NoPlugins</span> (object)<div class="cls doc"><p>Plugin 'manager' that includes no plugins and returns None
-for all calls</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(...)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"><p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>
-</div></div></div></div>
-<a name="Config"></a><div class="cls section"><span class="cls name">Config</span> (object)<div class="cls doc"><p>nose configuration.</p>
+<p>Highlighted methods are defined in this class.</p><a name="Config"></a><div class="cls section"><span class="cls name">Config</span> (object)<div class="cls doc"><p>nose configuration.</p>
<p>Instances of Config are used throughout nose to configure
behavior, including plugin lists. Here are the default values for
all config keys:</p>
@@ -38,7 +31,7 @@ self.debugLog = env.get('NOSE_DEBUG_LOG')
self.exclude = None
self.getTestCaseNamesCompat = False
self.includeExe = env.get('NOSE_INCLUDE_EXE',
- sys.platform == 'win32')
+ sys.platform in exe_allowed_platforms)
self.ignoreFiles = (re.compile(r'^\.'),
re.compile(r'^_'),
re.compile(r'^setup\.py$')
@@ -54,11 +47,11 @@ self.runOnInit = True
self.stopOnError = env.get('NOSE_STOP', False)
self.stream = sys.stderr
self.testNames = ()
-self.verbosity = int(env.get('NOSE_VERBOSE', 0))
+self.verbosity = int(env.get('NOSE_VERBOSE', 1))
self.where = ()
self.workingDir = None
</pre>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, **kw)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">cfgToArg<span class="args">(self, optname, value, tr=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, argv=None, doc=None)</span></span><div class="method doc"><p>Configure the nose running environment. Execute configure before
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, **kw)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_parseArgs<span class="args">(self, argv, cfg_files)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, argv=None, doc=None)</span></span><div class="method doc"><p>Configure the nose running environment. Execute configure before
collecting tests with nose.TestCollector to enable output capture and
other features.</p>
</div></div><div class="method section"><span class="method name">configureLogging<span class="args">(self)</span></span><div class="method doc"><p>Configure logging for nose, or optionally other packages. Any logger
@@ -69,9 +62,21 @@ it already has a handler.</p>
</div></div><div class="method section"><span class="method name">default<span class="args">(self)</span></span><div class="method doc"><p>Reset all config values to defaults.</p>
</div></div><div class="method section"><span class="method name">getParser<span class="args">(self, doc=None)</span></span><div class="method doc"><p>Get the command line option parser.</p>
</div></div><div class="method section"><span class="method name">help<span class="args">(self, doc=None)</span></span><div class="method doc"><p>Return the generated help message</p>
-</div></div><div class="method section"><span class="method name">loadConfig<span class="args">(self, file, argv)</span></span><div class="method doc"><p>Load config from file (may be filename or file-like object) and
-push the config into argv.</p>
-</div></div><div class="method section"><span class="method name">pluginOpts<span class="args">(self, parser)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">reset<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">todict<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">update<span class="args">(self, d)</span></span><div class="method doc"></div></div></div></div><h2>Functions</h2>
+</div></div><div class="method section"><span class="method name">pluginOpts<span class="args">(self, parser)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">reset<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">todict<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">update<span class="args">(self, d)</span></span><div class="method doc"></div></div></div></div>
+<a name="NoSuchOptionError"></a><div class="cls section"><span class="cls name">NoSuchOptionError</span> (exceptions.Exception)<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__getitem__<span class="args">(...)</span></span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
+</div></div><div class="method section"><span class="method name">__getslice__<span class="args">(...)</span></span><div class="method doc"><p>x.__getslice__(i, j) &lt;==&gt; x[i:j]</p>
+<p>Use of negative indices is not supported.</p>
+</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, name)</span></span><span class="method inherited">(inherited from Exception)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__setstate__<span class="args">(...)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">args</span><pre class="attr value">Default value: &lt;attribute &#39;args&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">message</span><pre class="attr value">Default value: &lt;member &#39;message&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div></div></div>
+<a name="ConfiguredDefaultsOptionParser"></a><div class="cls section"><span class="cls name">ConfiguredDefaultsOptionParser</span> (object)<div class="cls doc"><p>Handler for options from commandline and config files.</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, parser, config_section, error=None, file_error=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_applyConfigurationToValues<span class="args">(self, parser, config, values)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_configTuples<span class="args">(self, cfg, filename)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_processConfigValue<span class="args">(self, name, value, values, parser)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_readConfiguration<span class="args">(self, config_files)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_readFromFileObject<span class="args">(self, fh)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_readFromFilenames<span class="args">(self, filenames)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">parseArgsAndConfigFiles<span class="args">(self, args, config_files)</span></span><div class="method doc"></div></div></div></div>
+<a name="ConfigError"></a><div class="cls section"><span class="cls name">ConfigError</span> (exceptions.Exception)<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__getitem__<span class="args">(...)</span></span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
+</div></div><div class="method section"><span class="method name">__getslice__<span class="args">(...)</span></span><div class="method doc"><p>x.__getslice__(i, j) &lt;==&gt; x[i:j]</p>
+<p>Use of negative indices is not supported.</p>
+</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(...)</span></span><span class="method inherited">(inherited from Exception)</span><div class="method doc"><p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>
+</div></div><div class="method section"><span class="method name">__setstate__<span class="args">(...)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">args</span><pre class="attr value">Default value: &lt;attribute &#39;args&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">message</span><pre class="attr value">Default value: &lt;member &#39;message&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div></div></div>
+<a name="NoOptions"></a><div class="cls section"><span class="cls name">NoOptions</span> (object)<div class="cls doc"><p>Options container that returns None for all options.</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(...)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"><p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>
+</div></div><div class="method section"><span class="method name">__nonzero__<span class="args">(self)</span></span><div class="method doc"></div></div></div></div><h2>Functions</h2>
<a name="user_config_files"></a><div class="func section"><span class="func name">user_config_files<span class="args">()</span></span><div class="func doc"><p>Return path to any existing user config files</p>
</div></div>
<a name="flag"></a><div class="func section"><span class="func name">flag<span class="args">(val)</span></span><div class="func doc"><p>Does the value look like an on/off flag?</p>
@@ -79,8 +84,9 @@ push the config into argv.</p>
<a name="all_config_files"></a><div class="func section"><span class="func name">all_config_files<span class="args">()</span></span><div class="func doc"><p>Return path to any existing user config files, plus any setup.cfg
in the current working directory.</p>
</div></div><h2>Attributes</h2>
-<a name="option_blacklist"></a><div class="attr section"><span class="attr name">option_blacklist</span><pre class="attr value">Default value: [&#39;help&#39;, &#39;verbose&#39;]</pre><div class="attr doc"></div></div>
<a name="log"></a><div class="attr section"><span class="attr name">log</span><pre class="attr value">Default value: &lt;logging.Logger instance&gt;</pre><div class="attr doc"></div></div>
+<a name="exe_allowed_platforms"></a><div class="attr section"><span class="attr name">exe_allowed_platforms</span><pre class="attr value">Default value: (&#39;win32&#39;, &#39;cli&#39;)</pre><div class="attr doc"></div></div>
+<a name="option_blacklist"></a><div class="attr section"><span class="attr name">option_blacklist</span><pre class="attr value">Default value: [&#39;help&#39;, &#39;verbose&#39;]</pre><div class="attr doc"></div></div>
<a name="config_files"></a><div class="attr section"><span class="attr name">config_files</span><pre class="attr value">Default value: [&#39;~/.noserc&#39;, &#39;~/nose.cfg&#39;]</pre><div class="attr doc"></div></div>
</div>
diff --git a/doc/module_nose.core.html b/doc/module_nose.core.html
index 7042e9c..ce3ab76 100644
--- a/doc/module_nose.core.html
+++ b/doc/module_nose.core.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#TestProgram">TestProgram</a></li><li><a href="#main">main</a></li><li><a href="#run_exit">run_exit</a></li><li><a href="#TextTestRunner">TextTestRunner</a></li><li><a href="#TestCollector">TestCollector</a></li><li><a href="#defaultTestCollector">defaultTestCollector</a></li></ul><h2>Functions</h2><ul><li><a href="#collector">collector</a></li><li><a href="#runmodule">runmodule</a></li><li><a href="#run">run</a></li></ul>
</div>
@@ -110,7 +110,7 @@ longer passed to startTest and partly because it's likely that the
plugin is trying to find out if the test is an instance of a class
that no longer exists.</p>
</div>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, module=None, defaultTest='.', argv=None, testRunner=None, testLoader=None, env=None, config=None, suite=None, exit=True, plugins=None)</span></span><div class="method doc"><p>Collect and run tests, returning success or failure.</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, module=None, defaultTest='.', argv=None, testRunner=None, testLoader=None, env=None, config=None, suite=None, exit=True, plugins=None)</span></span><span class="method inherited">(inherited from TestProgram)</span><div class="method doc"><p>Collect and run tests, returning success or failure.</p>
<p>The arguments to __init__ are the same as to <cite>main()</cite> and <cite>run()</cite>:</p>
<ul class="simple">
<li>module: All tests are in this module (default: None)</li>
@@ -132,14 +132,14 @@ of tests, or a fully-configured <a class="reference" href="module_nose.suite.htm
<li>plugins: List of plugins to use; ignored if config is provided
(default: load plugins with DefaultPluginManager)</li>
</ul>
-</div></div><div class="method section"><span class="method name">createTests<span class="args">(self)</span></span><div class="method doc"><p>Create the tests to run. If a self.suite
+</div></div><div class="method section inherited"><span class="method name">createTests<span class="args">(self)</span></span><span class="method inherited">(inherited from TestProgram)</span><div class="method doc"><p>Create the tests to run. If a self.suite
is set, then that suite will be used. Otherwise, tests will be
loaded from the given test names (self.testNames) using the
test loader.</p>
</div></div><div class="method section"><span class="method name">makeConfig<span class="args">(self, env, plugins=None)</span></span><div class="method doc"><p>Load a Config, pre-filled with user config files if any are
found.</p>
-</div></div><div class="method section"><span class="method name">parseArgs<span class="args">(self, argv)</span></span><div class="method doc"><p>Parse argv and env and configure running environment.</p>
-</div></div><div class="method section"><span class="method name">runTests<span class="args">(self)</span></span><div class="method doc"><p>Run Tests. Returns true on success, false on failure, and sets
+</div></div><div class="method section inherited"><span class="method name">parseArgs<span class="args">(self, argv)</span></span><span class="method inherited">(inherited from TestProgram)</span><div class="method doc"><p>Parse argv and env and configure running environment.</p>
+</div></div><div class="method section inherited"><span class="method name">runTests<span class="args">(self)</span></span><span class="method inherited">(inherited from TestProgram)</span><div class="method doc"><p>Run Tests. Returns true on success, false on failure, and sets
self.success to the same value.</p>
</div></div><div class="method section"><span class="method name">showPlugins<span class="args">(self)</span></span><div class="method doc"><p>Print list of available plugins.</p>
</div></div><div class="method section inherited"><span class="method name">usageExit<span class="args">(self, msg=None)</span></span><span class="method inherited">(inherited from TestProgram)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">USAGE</span><pre class="attr value">Default value: Usage: %(progName)s [options] [test] [...]
@@ -161,7 +161,7 @@ Examples:
<a name="TextTestRunner"></a><div class="cls section"><span class="cls name">TextTestRunner</span> (unittest.TextTestRunner)<div class="cls doc"><p>Test runner that uses nose's TextTestResult to enable errorClasses,
as well as providing hooks for plugins to override or replace the test
output stream, results, and the test case itself.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, stream=<open file '<stderr>', mode 'w' at 0x2af070d1d210>, descriptions=1, verbosity=1, config=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_makeResult<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">run<span class="args">(self, test)</span></span><div class="method doc"><p>Overrides to provide plugin hooks and defer all output to
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, stream=<open file '<stderr>', mode 'w' at 0x160b0>, descriptions=1, verbosity=1, config=None)</span></span><span class="method inherited">(inherited from TextTestRunner)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_makeResult<span class="args">(self)</span></span><span class="method inherited">(inherited from TextTestRunner)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, test)</span></span><span class="method inherited">(inherited from TextTestRunner)</span><div class="method doc"><p>Overrides to provide plugin hooks and defer all output to
the test result class.</p>
</div></div></div></div>
<a name="TestCollector"></a><div class="cls section"><span class="cls name">TestCollector</span> ()<div class="cls doc"><p>Main nose test collector.</p>
diff --git a/doc/module_nose.exc.html b/doc/module_nose.exc.html
index 4e3f4da..14a164c 100644
--- a/doc/module_nose.exc.html
+++ b/doc/module_nose.exc.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
diff --git a/doc/module_nose.importer.html b/doc/module_nose.importer.html
index 985d3aa..b2aa79b 100644
--- a/doc/module_nose.importer.html
+++ b/doc/module_nose.importer.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#Importer">Importer</a></li></ul><h2>Functions</h2><ul><li><a href="#add_path">add_path</a></li><li><a href="#remove_path">remove_path</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li></ul>
</div>
@@ -24,7 +24,7 @@ the builtin importer.</p>
<p>Highlighted methods are defined in this class.</p><a name="Importer"></a><div class="cls section"><span class="cls name">Importer</span> (object)<div class="cls doc"><p>An importer class that does only path-specific imports. That
is, the given module is not searched for on sys.path, but only at
the path or in the directory specified.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, config=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">importFromDir<span class="args">(self, dir, fqname)</span></span><div class="method doc"><p>Import a module <em>only</em> from path, ignoring sys.path and
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, config=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">importFromDir<span class="args">(self, dir, fqname)</span></span><div class="method doc"><p>Import a module <em>only</em> from path, ignoring sys.path and
reloading if the version in sys.modules is not the one we want.</p>
</div></div><div class="method section"><span class="method name">importFromPath<span class="args">(self, path, fqname)</span></span><div class="method doc"><p>Import a dotted-name package whose tail is at path. In other words,
given foo.bar and path/to/foo/bar.py, import foo from path/to/foo then
diff --git a/doc/module_nose.inspector.html b/doc/module_nose.inspector.html
index 7a7ea39..26577ac 100644
--- a/doc/module_nose.inspector.html
+++ b/doc/module_nose.inspector.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#Expander">Expander</a></li></ul><h2>Functions</h2><ul><li><a href="#inspect_traceback">inspect_traceback</a></li><li><a href="#find_inspectable_lines">find_inspectable_lines</a></li><li><a href="#tbsource">tbsource</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li></ul>
</div>
diff --git a/doc/module_nose.loader.html b/doc/module_nose.loader.html
index 0969aac..0dbf3a4 100644
--- a/doc/module_nose.loader.html
+++ b/doc/module_nose.loader.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#TestLoader">TestLoader</a></li><li><a href="#defaultTestLoader">defaultTestLoader</a></li></ul>
</div>
@@ -44,7 +44,7 @@ provided, it will be instantiated with one argument, the
current config. If not provided, a <a class="reference" href="module_nose.selector.html#Selector">nose.selector.Selector</a>
is used.</li>
</ul>
-</div></div><div class="method section"><span class="method name">getTestCaseNames<span class="args">(self, testCaseClass)</span></span><div class="method doc"><p>Override to select with selector, unless
+</div></div><div class="method section inherited"><span class="method name">getTestCaseNames<span class="args">(self, testCaseClass)</span></span><span class="method inherited">(inherited from TestLoader)</span><div class="method doc"><p>Override to select with selector, unless
config.getTestCaseNamesCompat is True</p>
</div></div><div class="method section"><span class="method name">loadTestsFromDir<span class="args">(self, path)</span></span><div class="method doc"><p>Load tests from the directory at path. This is a generator
-- each suite of tests from a module or other file is yielded
@@ -67,17 +67,17 @@ since a generator method may yield:</p>
<li>a bound or unbound method, or</li>
<li>a method name</li>
</ul>
-</div></div><div class="method section"><span class="method name">loadTestsFromModule<span class="args">(self, module, discovered=False)</span></span><div class="method doc"><p>Load all tests from module and return a suite containing
+</div></div><div class="method section inherited"><span class="method name">loadTestsFromModule<span class="args">(self, module, discovered=False)</span></span><span class="method inherited">(inherited from TestLoader)</span><div class="method doc"><p>Load all tests from module and return a suite containing
them. If the module has been discovered and is not test-like,
the suite will be empty by default, though plugins may add
their own tests.</p>
-</div></div><div class="method section"><span class="method name">loadTestsFromName<span class="args">(self, name, module=None, discovered=False)</span></span><div class="method doc"><p>Load tests from the entity with the given name.</p>
+</div></div><div class="method section inherited"><span class="method name">loadTestsFromName<span class="args">(self, name, module=None, discovered=False)</span></span><span class="method inherited">(inherited from TestLoader)</span><div class="method doc"><p>Load tests from the entity with the given name.</p>
<p>The name may indicate a file, directory, module, or any object
within a module. See <cite>nose.util.split_test_name</cite> for details on
test name parsing.</p>
-</div></div><div class="method section"><span class="method name">loadTestsFromNames<span class="args">(self, names, module=None)</span></span><div class="method doc"><p>Load tests from all names, returning a suite containing all
+</div></div><div class="method section inherited"><span class="method name">loadTestsFromNames<span class="args">(self, names, module=None)</span></span><span class="method inherited">(inherited from TestLoader)</span><div class="method doc"><p>Load tests from all names, returning a suite containing all
tests.</p>
-</div></div><div class="method section"><span class="method name">loadTestsFromTestCase<span class="args">(self, testCaseClass)</span></span><div class="method doc"><p>Load tests from a unittest.TestCase subclass.</p>
+</div></div><div class="method section inherited"><span class="method name">loadTestsFromTestCase<span class="args">(self, testCaseClass)</span></span><span class="method inherited">(inherited from TestLoader)</span><div class="method doc"><p>Load tests from a unittest.TestCase subclass.</p>
</div></div><div class="method section"><span class="method name">loadTestsFromTestClass<span class="args">(self, cls)</span></span><div class="method doc"><p>Load tests from a test class that is <em>not</em> a unittest.TestCase
subclass.</p>
<p>In this case, we can't depend on the class's <cite>__init__</cite> taking method
@@ -88,7 +88,7 @@ or test suite.</p>
</div></div><div class="method section"><span class="method name">resolve<span class="args">(self, name, module)</span></span><div class="method doc"><p>Resolve name within module</p>
</div></div><div class="method section inherited"><span class="method name">sortTestMethodsUsing<span class="args">(...)</span></span><span class="method inherited">(inherited from TestLoader)</span><div class="method doc"><p>cmp(x, y) -&gt; integer</p>
<p>Return negative if x&lt;y, zero if x==y, positive if x&gt;y.</p>
-</div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">config</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">importer</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">selector</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">suiteClass</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">testMethodPrefix</span><pre class="attr value">Default value: test</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">workingDir</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div></div></div>
+</div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">config</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">importer</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">selector</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">suiteClass</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">testMethodPrefix</span><pre class="attr value">Default value: test</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">workingDir</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div></div></div>
<a name="defaultTestLoader"></a><div class="cls section"><span class="cls name">defaultTestLoader</span> (unittest.TestLoader)<div class="cls doc">(Alias for <a href="module_nose.loader.html#TestLoader">TestLoader</a>)</div></div>
</div>
diff --git a/doc/module_nose.plugins.manager.html b/doc/module_nose.plugins.manager.html
index 261814c..8c31e90 100644
--- a/doc/module_nose.plugins.manager.html
+++ b/doc/module_nose.plugins.manager.html
@@ -6,10 +6,10 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
- <h2>Classes</h2><ul><li><a href="#DefaultPluginManager">DefaultPluginManager</a></li><li><a href="#PluginManager">PluginManager</a></li><li><a href="#EntryPointPluginManager">EntryPointPluginManager</a></li><li><a href="#BuiltinPluginManager">BuiltinPluginManager</a></li><li><a href="#RestrictedPluginManager">RestrictedPluginManager</a></li><li><a href="#PluginProxy">PluginProxy</a></li><li><a href="#ZeroNinePlugin">ZeroNinePlugin</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <h2>Classes</h2><ul><li><a href="#DefaultPluginManager">DefaultPluginManager</a></li><li><a href="#PluginManager">PluginManager</a></li><li><a href="#EntryPointPluginManager">EntryPointPluginManager</a></li><li><a href="#BuiltinPluginManager">BuiltinPluginManager</a></li><li><a href="#RestrictedPluginManager">RestrictedPluginManager</a></li><li><a href="#PluginProxy">PluginProxy</a></li><li><a href="#ZeroNinePlugin">ZeroNinePlugin</a></li><li><a href="#NoPlugins">NoPlugins</a></li></ul>
</div>
<div id="main">
@@ -50,11 +50,11 @@ you wish to make available. Make sure to call
other than <tt class="docutils literal"><span class="pre">PluginManager</span></tt>.</p>
</div>
<h2>Classes</h2>
-<p>Highlighted methods are defined in this class.</p><a name="DefaultPluginManager"></a><div class="cls section"><span class="cls name">DefaultPluginManager</span> (<a href="module_nose.plugins.manager.html#BuiltinPluginManager">BuiltinPluginManager</a>, <a href="module_nose.plugins.manager.html#EntryPointPluginManager">EntryPointPluginManager</a>)<div class="cls doc"><h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, plugins=(), proxyClass=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_get_plugins<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">configure<span class="args">(self, options, config)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"><p>Configure the set of plugins with the given options
+<p>Highlighted methods are defined in this class.</p><a name="DefaultPluginManager"></a><div class="cls section"><span class="cls name">DefaultPluginManager</span> (<a href="module_nose.plugins.manager.html#BuiltinPluginManager">BuiltinPluginManager</a>, <a href="module_nose.plugins.manager.html#EntryPointPluginManager">EntryPointPluginManager</a>)<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, plugins=(), proxyClass=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_plugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, options, config)</span></span><div class="method doc"><p>Configure the set of plugins with the given options
and config instance. After configuration, disabled plugins
are removed from the plugins list.</p>
</div></div><div class="method section inherited"><span class="method name">loadPlugins<span class="args">(self)</span></span><span class="method inherited">(inherited from BuiltinPluginManager)</span><div class="method doc"><p>Load plugins in nose.plugins.builtin</p>
-</div></div><div class="method section inherited"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">entry_points</span><pre class="attr value">Default value: ((&#39;nose.plugins.0.10&#39;, None), (&#39;nose.plugins&#39;, &lt;class nose.plugins.manager.ZeroNinePlugin&gt;))</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
+</div></div><div class="method section"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">entry_points</span><pre class="attr value">Default value: ((&#39;nose.plugins.0.10&#39;, None), (&#39;nose.plugins&#39;, &lt;class nose.plugins.manager.ZeroNinePlugin&gt;))</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
this plugin manager</p>
</div></div></div></div>
<a name="PluginManager"></a><div class="cls section"><span class="cls name">PluginManager</span> (object)<div class="cls doc"><p>Base class for plugin managers. Does not implement loadPlugins, so it
@@ -63,7 +63,7 @@ may only be used with a static list of plugins.</p>
attributes through a <tt class="docutils literal"><span class="pre">PluginProxy</span></tt> to a list of plugins.</p>
<p>Note that the list of plugins <em>may not</em> be changed after the first plugin
call.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, plugins=(), proxyClass=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_plugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, options, config)</span></span><div class="method doc"><p>Configure the set of plugins with the given options
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, plugins=(), proxyClass=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_plugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, options, config)</span></span><div class="method doc"><p>Configure the set of plugins with the given options
and config instance. After configuration, disabled plugins
are removed from the plugins list.</p>
</div></div><div class="method section"><span class="method name">loadPlugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
@@ -74,7 +74,7 @@ this plugin manager</p>
<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, plugins=(), proxyClass=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_get_plugins<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">configure<span class="args">(self, options, config)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"><p>Configure the set of plugins with the given options
and config instance. After configuration, disabled plugins
are removed from the plugins list.</p>
-</div></div><div class="method section"><span class="method name">loadPlugins<span class="args">(self)</span></span><div class="method doc"><p>Load plugins by iterating the <cite>nose.plugins</cite> entry point.</p>
+</div></div><div class="method section inherited"><span class="method name">loadPlugins<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"><p>Load plugins by iterating the <cite>nose.plugins</cite> entry point.</p>
</div></div><div class="method section inherited"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">entry_points</span><pre class="attr value">Default value: ((&#39;nose.plugins.0.10&#39;, None), (&#39;nose.plugins&#39;, &lt;class nose.plugins.manager.ZeroNinePlugin&gt;))</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
this plugin manager</p>
</div></div></div></div>
@@ -83,7 +83,7 @@ this plugin manager</p>
<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, plugins=(), proxyClass=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_get_plugins<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">configure<span class="args">(self, options, config)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"><p>Configure the set of plugins with the given options
and config instance. After configuration, disabled plugins
are removed from the plugins list.</p>
-</div></div><div class="method section"><span class="method name">loadPlugins<span class="args">(self)</span></span><div class="method doc"><p>Load plugins in nose.plugins.builtin</p>
+</div></div><div class="method section inherited"><span class="method name">loadPlugins<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"><p>Load plugins in nose.plugins.builtin</p>
</div></div><div class="method section inherited"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
this plugin manager</p>
</div></div></div></div>
@@ -91,10 +91,10 @@ this plugin manager</p>
excluded by a list of exclude methods. Any plugin that implements
an excluded method will be removed from the manager's plugin list
after plugins are loaded.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, plugins=(), exclude=())</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_get_plugins<span class="args">(self)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">configure<span class="args">(self, options, config)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"><p>Configure the set of plugins with the given options
+<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, plugins=(), exclude=(), load=True)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_plugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_set_plugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, options, config)</span></span><div class="method doc"><p>Configure the set of plugins with the given options
and config instance. After configuration, disabled plugins
are removed from the plugins list.</p>
-</div></div><div class="method section"><span class="method name">loadPlugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><span class="method inherited">(inherited from PluginManager)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">entry_points</span><pre class="attr value">Default value: ((&#39;nose.plugins.0.10&#39;, None), (&#39;nose.plugins&#39;, &lt;class nose.plugins.manager.ZeroNinePlugin&gt;))</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
+</div></div><div class="method section"><span class="method name">excludedOption<span class="args">(self, name)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">loadPlugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">entry_points</span><pre class="attr value">Default value: ((&#39;nose.plugins.0.10&#39;, None), (&#39;nose.plugins&#39;, &lt;class nose.plugins.manager.ZeroNinePlugin&gt;))</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">plugins</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the list of plugins managed by
this plugin manager</p>
</div></div></div></div>
<a name="PluginProxy"></a><div class="cls section"><span class="cls name">PluginProxy</span> (object)<div class="cls doc"><p>Proxy for plugin calls. Essentially a closure bound to the
@@ -102,7 +102,7 @@ given call and plugin list.</p>
<p>The plugin proxy also must be bound to a particular plugin
interface specification, so that it knows what calls are available
and any special handling that is required for each call.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, call, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_loadTestsFromNames<span class="args">(self, names, module=None)</span></span><div class="method doc"><p>Chainable but not quite normal. Plugins return a tuple of
+<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, call, plugins)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_loadTestsFromNames<span class="args">(self, names, module=None)</span></span><div class="method doc"><p>Chainable but not quite normal. Plugins return a tuple of
(tests, names) after processing the names. The tests are added
to a suite that is accumulated throughout the full call, while
names are input for the next plugin in the chain.</p>
@@ -115,6 +115,8 @@ sent to the next plugin as input. The final output result is returned.</p>
</div></div></div></div>
<a name="ZeroNinePlugin"></a><div class="cls section"><span class="cls name">ZeroNinePlugin</span> ()<div class="cls doc"><p>Proxy for 0.9 plugins, adapts 0.10 calls to 0.9 standard.</p>
<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, plugin)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addError<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addFailure<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addSuccess<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">loadTestsFromFile<span class="args">(self, filename)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">options<span class="args">(self, parser, env=os.environ)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">startTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">stopTest<span class="args">(self, test)</span></span><div class="method doc"></div></div></div></div>
+<a name="NoPlugins"></a><div class="cls section"><span class="cls name">NoPlugins</span> (object)<div class="cls doc"><p>Null Plugin manager that has no plugins.</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_doNothing<span class="args">(self, *args, **kwds)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_emptyIterator<span class="args">(self, *args, **kwds)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugin<span class="args">(self, plug)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addPlugins<span class="args">(self, plugins)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, options, config)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">loadPlugins<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">sort<span class="args">(self, cmpf=None)</span></span><div class="method doc"></div></div></div></div>
</div>
<script src="http://www.google-analytics.com/urchin.js"
diff --git a/doc/module_nose.plugins.plugintest.html b/doc/module_nose.plugins.plugintest.html
index 61de0ce..03b7a1c 100644
--- a/doc/module_nose.plugins.plugintest.html
+++ b/doc/module_nose.plugins.plugintest.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#PluginTester">PluginTester</a></li><li><a href="#AccessDecorator">AccessDecorator</a></li></ul><h2>Functions</h2><ul><li><a href="#run">run</a></li></ul>
</div>
@@ -70,8 +70,8 @@ None.</p>
</pre>
</div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"><p>runs nosetests with the specified test suite, all plugins
activated.</p>
-</div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">activate</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">args</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">argv</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">env</span><pre class="attr value">Default value: {}</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">plugins</span><pre class="attr value">Default value: []</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">suitepath</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div></div></div>
-<a name="AccessDecorator"></a><div class="cls section"><span class="cls name">AccessDecorator</span> (object)<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__contains__<span class="args">(self, val)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, stream)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">_buf</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">stream</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div></div></div><h2>Functions</h2>
+</div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">activate</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">args</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">argv</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">env</span><pre class="attr value">Default value: {}</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">ignoreFiles</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">plugins</span><pre class="attr value">Default value: []</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">suitepath</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div></div></div>
+<a name="AccessDecorator"></a><div class="cls section"><span class="cls name">AccessDecorator</span> (object)<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__contains__<span class="args">(self, val)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, stream)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">_buf</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">stream</span><pre class="attr value">Default value: None</pre><div class="attr doc"></div></div></div></div><h2>Functions</h2>
<a name="run"></a><div class="func section"><span class="func name">run<span class="args">(*arg, **kw)</span></span><div class="func doc"><p>Specialized version of nose.run for use inside of doctests that
test test runs.</p>
<p>This version of run() prints the result output to stdout. Before
diff --git a/doc/module_nose.proxy.html b/doc/module_nose.proxy.html
index 9ded090..f28d911 100644
--- a/doc/module_nose.proxy.html
+++ b/doc/module_nose.proxy.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#ResultProxyFactory">ResultProxyFactory</a></li><li><a href="#ResultProxy">ResultProxy</a></li></ul><h2>Functions</h2><ul><li><a href="#proxied_attribute">proxied_attribute</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li></ul>
</div>
@@ -34,14 +34,14 @@ and the result passed to the test.</p>
result used for the remaining tests. If a plugin returns a
value from prepareTestResult, that object will be used as the
result for all tests.</p>
-</div></div><div class="method section"><span class="method name">__init__<span class="args">(self, config=None)</span></span><div class="method doc"></div></div></div></div>
+</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, config=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div></div></div>
<a name="ResultProxy"></a><div class="cls section"><span class="cls name">ResultProxy</span> (object)<div class="cls doc"><p>Proxy to TestResults (or other results handler).</p>
<p>One ResultProxy is created for each nose.case.Test. The result
proxy calls plugins with the nose.case.Test instance (instead of
the wrapped test case) as each result call is made. Finally, the
real result method is called, also with the nose.case.Test
instance as the test parameter.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, result, test, config=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addError<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addFailure<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addSuccess<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">afterTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">assertMyTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">beforeTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">startTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">stop<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">stopTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">errors</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Tests that raised an exception</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, result, test, config=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">addError<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addFailure<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addSuccess<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">afterTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">assertMyTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">beforeTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">startTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">stop<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">stopTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">errors</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Tests that raised an exception</p>
</div></div><div class="attr section"><span class="attr name">failures</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Tests that failed</p>
</div></div><div class="attr section"><span class="attr name">shouldStop</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Should the test run stop?</p>
</div></div><div class="attr section"><span class="attr name">testsRun</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Number of tests run</p>
diff --git a/doc/module_nose.result.html b/doc/module_nose.result.html
index db91f6c..12e3f83 100644
--- a/doc/module_nose.result.html
+++ b/doc/module_nose.result.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#TextTestResult">TextTestResult</a></li></ul><h2>Functions</h2><ul><li><a href="#ln">ln</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li></ul>
</div>
@@ -23,14 +23,14 @@ reporting.</p>
<p>Highlighted methods are defined in this class.</p><a name="TextTestResult"></a><div class="cls section"><span class="cls name">TextTestResult</span> (unittest._TextTestResult)<div class="cls doc"><p>Text test result that extends unittest's default test result
support for a configurable set of errorClasses (eg, Skip,
Deprecated, TODO) that extend the errors/failures/success triad.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, stream, descriptions, verbosity, config=None, errorClasses=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_addError<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_count_relevant_tb_levels<span class="args">(self, tb)</span></span><span class="method inherited">(inherited from TestResult)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_exc_info_to_string<span class="args">(self, err, test=None)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_is_relevant_tb_level<span class="args">(self, tb)</span></span><span class="method inherited">(inherited from TestResult)</span><div class="method doc"></div></div><div class="method section"><span class="method name">addError<span class="args">(self, test, err)</span></span><div class="method doc"><p>Overrides normal addError to add support for
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, stream, descriptions, verbosity, config=None, errorClasses=None)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_addError<span class="args">(self, test, err)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_count_relevant_tb_levels<span class="args">(self, tb)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_exc_info_to_string<span class="args">(self, err, test=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_is_relevant_tb_level<span class="args">(self, tb)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addError<span class="args">(self, test, err)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"><p>Overrides normal addError to add support for
errorClasses. If the exception is a registered class, the
error will be added to the list for that class, not errors.</p>
-</div></div><div class="method section inherited"><span class="method name">addFailure<span class="args">(self, test, err)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addSuccess<span class="args">(self, test)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">getDescription<span class="args">(self, test)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">printErrorList<span class="args">(self, flavour, errors)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section"><span class="method name">printErrors<span class="args">(self)</span></span><div class="method doc"><p>Overrides to print all errorClasses errors as well.</p>
+</div></div><div class="method section inherited"><span class="method name">addFailure<span class="args">(self, test, err)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addSuccess<span class="args">(self, test)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">getDescription<span class="args">(self, test)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">printErrorList<span class="args">(self, flavour, errors)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">printErrors<span class="args">(self)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"><p>Overrides to print all errorClasses errors as well.</p>
</div></div><div class="method section"><span class="method name">printSummary<span class="args">(self, start, stop)</span></span><div class="method doc"><p>Called by the test runner to print the final summary of test
run results.</p>
-</div></div><div class="method section inherited"><span class="method name">startTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">stop<span class="args">(self)</span></span><span class="method inherited">(inherited from TestResult)</span><div class="method doc"><p>Indicates that the tests should be aborted</p>
-</div></div><div class="method section inherited"><span class="method name">stopTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from TestResult)</span><div class="method doc"><p>Called when the given test has been run</p>
+</div></div><div class="method section inherited"><span class="method name">startTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from _TextTestResult)</span><div class="method doc"></div></div><div class="method section"><span class="method name">stop<span class="args">(self)</span></span><div class="method doc"><p>Indicates that the tests should be aborted</p>
+</div></div><div class="method section"><span class="method name">stopTest<span class="args">(self, test)</span></span><div class="method doc"><p>Called when the given test has been run</p>
</div></div><div class="method section"><span class="method name">wasSuccessful<span class="args">(self)</span></span><div class="method doc"><p>Overrides to check that there are no errors in errorClasses
lists that are marked as errors that should cause a run to
fail.</p>
diff --git a/doc/module_nose.selector.html b/doc/module_nose.selector.html
index 0cc87fd..d582349 100644
--- a/doc/module_nose.selector.html
+++ b/doc/module_nose.selector.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#Selector">Selector</a></li><li><a href="#defaultSelector">defaultSelector</a></li><li><a href="#TestAddress">TestAddress</a></li></ul>
</div>
@@ -22,7 +22,7 @@ thinks may be a test.</p>
<p>Highlighted methods are defined in this class.</p><a name="Selector"></a><div class="cls section"><span class="cls name">Selector</span> (object)<div class="cls doc"><p>Core test selector. Examines test candidates and determines whether,
given the specified configuration, the test candidate should be selected
as a test.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, config)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, config)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">matches<span class="args">(self, name)</span></span><div class="method doc"><p>Does the name match my requirements?</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, config)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">configure<span class="args">(self, config)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">matches<span class="args">(self, name)</span></span><div class="method doc"><p>Does the name match my requirements?</p>
<p>To match, a name must match config.testMatch OR config.include
and it must not match config.exclude</p>
</div></div><div class="method section"><span class="method name">wantClass<span class="args">(self, cls)</span></span><div class="method doc"><p>Is the class a wanted test class?</p>
@@ -55,7 +55,7 @@ system and it doesn't contain any directory separators and it
doesn't end in .py.</p>
<p>Callables may be a class name, function name, method name, or
class.method specification.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, name, workingDir=None)</span></span><div class="method doc"></div></div></div></div>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, name, workingDir=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div></div></div>
</div>
<script src="http://www.google-analytics.com/urchin.js"
diff --git a/doc/module_nose.suite.html b/doc/module_nose.suite.html
index 1efac5b..2c68330 100644
--- a/doc/module_nose.suite.html
+++ b/doc/module_nose.suite.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#FinalizingSuiteWrapper">FinalizingSuiteWrapper</a></li><li><a href="#ContextSuite">ContextSuite</a></li><li><a href="#ContextSuiteFactory">ContextSuiteFactory</a></li><li><a href="#TestModule">TestModule</a></li><li><a href="#ContextList">ContextList</a></li><li><a href="#LazySuite">LazySuite</a></li><li><a href="#MixedContextError">MixedContextError</a></li><li><a href="#TestDir">TestDir</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li><li><a href="#generators">generators</a></li></ul>
</div>
@@ -24,36 +24,36 @@ its tests.</p>
executed. Used to call final functions in cases (like running in
the standard test runner) where test running is not under nose's
control.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, suite, finalize)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"><p>Run the tests without collecting errors in a TestResult</p>
-</div></div><div class="method section"><span class="method name">run<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div></div></div>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, suite, finalize)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"><p>Run the tests without collecting errors in a TestResult</p>
+</div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, *arg, **kw)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div></div></div>
<a name="ContextSuite"></a><div class="cls section"><span class="cls name">ContextSuite</span> (<a href="module_nose.suite.html#LazySuite">LazySuite</a>)<div class="cls doc"><p>A suite with context.</p>
<p>A ContextSuite executes fixtures (setup and teardown functions or
methods) for the context containing its tests.</p>
<p>The context may be explicitly passed. If it is not, a context (or
nested set of contexts) will be constructed by examining the tests
in the suite.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, tests=(), context=None, factory=None, config=None, resultProxy=None)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__nonzero__<span class="args">(self)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_get_tests<span class="args">(self)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_wrapped_tests<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_set_tests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"><p>Run the tests without collecting errors in a TestResult</p>
+<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, tests=(), context=None, factory=None, config=None, resultProxy=None, can_split=True)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__nonzero__<span class="args">(self)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_get_tests<span class="args">(self)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_wrapped_tests<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">_set_tests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from LazySuite)</span><div class="method doc"></div></div><div class="method section"><span class="method name">addTests<span class="args">(self, tests)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">countTestCases<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">debug<span class="args">(self)</span></span><div class="method doc"><p>Run the tests without collecting errors in a TestResult</p>
</div></div><div class="method section"><span class="method name">exc_info<span class="args">(self)</span></span><div class="method doc"><p>Hook for replacing error tuple output</p>
-</div></div><div class="method section"><span class="method name">run<span class="args">(self, result)</span></span><div class="method doc"><p>Run tests in suite inside of suite fixtures.</p>
-</div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">setupContext<span class="args">(self, context)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">shortDescription<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">tearDown<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">teardownContext<span class="args">(self, context)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">_tests</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the tests in this suite. Tests are returned inside of a context wrapper.</p>
-</div></div><div class="attr section"><span class="attr name">was_setup</span><pre class="attr value">Default value: False</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">was_torndown</span><pre class="attr value">Default value: False</pre><div class="attr doc"></div></div></div></div>
+</div></div><div class="method section"><span class="method name">hasFixtures<span class="args">(self, ctx_callback=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">implementsAnyFixture<span class="args">(self, context, ctx_callback)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">run<span class="args">(self, result)</span></span><div class="method doc"><p>Run tests in suite inside of suite fixtures.</p>
+</div></div><div class="method section"><span class="method name">setUp<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">setupContext<span class="args">(self, context)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">shortDescription<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">tearDown<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">teardownContext<span class="args">(self, context)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">_tests</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the tests in this suite. Tests are returned inside of a context wrapper.</p>
+</div></div><div class="attr section"><span class="attr name">classSetup</span><pre class="attr value">Default value: (&#39;setup_class&#39;, &#39;setup_all&#39;, &#39;setupClass&#39;, &#39;setupAll&#39;, &#39;setUpClass&#39;, &#39;setUpAll&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">classTeardown</span><pre class="attr value">Default value: (&#39;teardown_class&#39;, &#39;teardown_all&#39;, &#39;teardownClass&#39;, &#39;teardownAll&#39;, &#39;tearDownClass&#39;, &#39;tearDownAll&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">moduleSetup</span><pre class="attr value">Default value: (&#39;setup_module&#39;, &#39;setupModule&#39;, &#39;setUpModule&#39;, &#39;setup&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">moduleTeardown</span><pre class="attr value">Default value: (&#39;teardown_module&#39;, &#39;teardownModule&#39;, &#39;tearDownModule&#39;, &#39;teardown&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">packageSetup</span><pre class="attr value">Default value: (&#39;setup_package&#39;, &#39;setupPackage&#39;, &#39;setUpPackage&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">packageTeardown</span><pre class="attr value">Default value: (&#39;teardown_package&#39;, &#39;teardownPackage&#39;, &#39;tearDownPackage&#39;)</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">was_setup</span><pre class="attr value">Default value: False</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">was_torndown</span><pre class="attr value">Default value: False</pre><div class="attr doc"></div></div></div></div>
<a name="ContextSuiteFactory"></a><div class="cls section"><span class="cls name">ContextSuiteFactory</span> (object)<div class="cls doc"><p>Factory for ContextSuites. Called with a collection of tests,
the factory decides on a hierarchy of contexts by introspecting
the collection or the tests them selves to find the objects
containing the test objects. It always returns one suite, but that
suite may consist of a hierarchy of nested suites.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, tests)</span></span><div class="method doc"><p>Return <tt class="docutils literal"><span class="pre">ContextSuite</span></tt> for tests. <tt class="docutils literal"><span class="pre">tests</span></tt> may either
+<h3>Methods</h3><div class="method section"><span class="method name">__call__<span class="args">(self, tests, **kw)</span></span><div class="method doc"><p>Return <tt class="docutils literal"><span class="pre">ContextSuite</span></tt> for tests. <tt class="docutils literal"><span class="pre">tests</span></tt> may either
be a callable (in which case the resulting ContextSuite will
have no parent context and be evaluated lazily) or an
iterable. In that case the tests will wrapped in
nose.case.Test, be examined and the context of each found and a
suite of suites returned, organized into a stack with the
outermost suites belonging to the outermost contexts.</p>
-</div></div><div class="method section"><span class="method name">__init__<span class="args">(self, config=None, suiteClass=None, resultProxy=<object object at 0x2af070d3d070>)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">ancestry<span class="args">(self, context)</span></span><div class="method doc"><p>Return the ancestry of the context (that is, all of the
+</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, config=None, suiteClass=None, resultProxy=<object object at 0x27460>)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">ancestry<span class="args">(self, context)</span></span><div class="method doc"><p>Return the ancestry of the context (that is, all of the
packages and modules containing the context), in order of
descent with the outermost ancestor last.
This method is a generator.</p>
-</div></div><div class="method section"><span class="method name">findContext<span class="args">(self, tests)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">makeSuite<span class="args">(self, tests, context)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">mixedSuites<span class="args">(self, tests)</span></span><div class="method doc"><p>The complex case where there are tests that don't all share
+</div></div><div class="method section"><span class="method name">findContext<span class="args">(self, tests)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">makeSuite<span class="args">(self, tests, context, **kw)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">mixedSuites<span class="args">(self, tests)</span></span><div class="method doc"><p>The complex case where there are tests that don't all share
the same context. Groups tests into suites with common ancestors,
according to the following (essentially tail-recursive) procedure:</p>
<p>Starting with the context of the first test, if it is not
@@ -71,19 +71,19 @@ plus the results of recursion.</p>
<a name="ContextList"></a><div class="cls section"><span class="cls name">ContextList</span> (object)<div class="cls doc"><p>Not quite a suite -- a group of tests in a context. This is used
to hint the ContextSuiteFactory about what context the tests
belong to, in cases where it may be ambiguous or missing.</p>
-<h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(self, tests, context=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div></div></div>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__init__<span class="args">(self, tests, context=None)</span></span><span class="method inherited">(inherited from object)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div></div></div>
<a name="LazySuite"></a><div class="cls section"><span class="cls name">LazySuite</span> (unittest.TestSuite)<div class="cls doc"><p>A suite that may use a generator as its list of tests</p>
-<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__init__<span class="args">(self, tests=())</span></span><div class="method doc"><p>Initialize the suite. tests may be an iterable or a generator</p>
-</div></div><div class="method section"><span class="method name">__iter__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">__nonzero__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_tests<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_set_tests<span class="args">(self, tests)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">addTest<span class="args">(self, test)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"><p>Run the tests without collecting errors in a TestResult</p>
+<h3>Methods</h3><div class="method section inherited"><span class="method name">__call__<span class="args">(self, *args, **kwds)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, tests=())</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"><p>Initialize the suite. tests may be an iterable or a generator</p>
+</div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section"><span class="method name">__nonzero__<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_get_tests<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">_set_tests<span class="args">(self, tests)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTest<span class="args">(self, test)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">addTests<span class="args">(self, tests)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">countTestCases<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">debug<span class="args">(self)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"><p>Run the tests without collecting errors in a TestResult</p>
</div></div><div class="method section inherited"><span class="method name">run<span class="args">(self, result)</span></span><span class="method inherited">(inherited from TestSuite)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">_tests</span><pre class="attr value">Default value: (property)</pre><div class="attr doc"><p>Access the tests in this suite. Access is through a generator, so iteration may not be repeatable.</p>
</div></div></div></div>
<a name="MixedContextError"></a><div class="cls section"><span class="cls name">MixedContextError</span> (exceptions.Exception)<div class="cls doc"><p>Error raised when a context suite sees tests from more than
one context.</p>
-<h3>Methods</h3><div class="method section inherited"><span class="method name">__getitem__<span class="args">(...)</span></span><span class="method inherited">(inherited from BaseException)</span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
-</div></div><div class="method section inherited"><span class="method name">__getslice__<span class="args">(...)</span></span><span class="method inherited">(inherited from BaseException)</span><div class="method doc"><p>x.__getslice__(i, j) &lt;==&gt; x[i:j]</p>
+<h3>Methods</h3><div class="method section"><span class="method name">__getitem__<span class="args">(...)</span></span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
+</div></div><div class="method section"><span class="method name">__getslice__<span class="args">(...)</span></span><div class="method doc"><p>x.__getslice__(i, j) &lt;==&gt; x[i:j]</p>
<p>Use of negative indices is not supported.</p>
</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(...)</span></span><span class="method inherited">(inherited from Exception)</span><div class="method doc"><p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>
-</div></div><div class="method section inherited"><span class="method name">__setstate__<span class="args">(...)</span></span><span class="method inherited">(inherited from BaseException)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">args</span><pre class="attr value">Default value: &lt;attribute &#39;args&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">message</span><pre class="attr value">Default value: &lt;member &#39;message&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div></div></div>
+</div></div><div class="method section"><span class="method name">__setstate__<span class="args">(...)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">args</span><pre class="attr value">Default value: &lt;attribute &#39;args&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">message</span><pre class="attr value">Default value: &lt;member &#39;message&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div></div></div>
<a name="TestDir"></a><div class="cls section"><span class="cls name">TestDir</span> ()<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__init__<span class="args">(*arg, **kw)</span></span><div class="method doc"></div></div></div></div><h2>Attributes</h2>
<a name="log"></a><div class="attr section"><span class="attr name">log</span><pre class="attr value">Default value: &lt;logging.Logger instance&gt;</pre><div class="attr doc"></div></div>
<a name="generators"></a><div class="attr section"><span class="attr name">generators</span><pre class="attr value">Default value: _Feature((2, 2, 0, &#39;alpha&#39;, 1), (2, 3, 0, &#39;final&#39;, 0), 0)</pre><div class="attr doc"></div></div>
diff --git a/doc/module_nose.tools.html b/doc/module_nose.tools.html
index 1bd7d25..441f57f 100644
--- a/doc/module_nose.tools.html
+++ b/doc/module_nose.tools.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Classes</h2><ul><li><a href="#TimeExpired">TimeExpired</a></li></ul><h2>Functions</h2><ul><li><a href="#assert_true">assert_true</a></li><li><a href="#assert_equal">assert_equal</a></li><li><a href="#eq_">eq_</a></li><li><a href="#set_trace">set_trace</a></li><li><a href="#assert_almost_equals">assert_almost_equals</a></li><li><a href="#assert_equals">assert_equals</a></li><li><a href="#raises">raises</a></li><li><a href="#make_decorator">make_decorator</a></li><li><a href="#with_setup">with_setup</a></li><li><a href="#assert_almost_equal">assert_almost_equal</a></li><li><a href="#assert_not_equal">assert_not_equal</a></li><li><a href="#assert_not_almost_equals">assert_not_almost_equals</a></li><li><a href="#assert_not_equals">assert_not_equals</a></li><li><a href="#assert_raises">assert_raises</a></li><li><a href="#ok_">ok_</a></li><li><a href="#timed">timed</a></li><li><a href="#assert_not_almost_equal">assert_not_almost_equal</a></li><li><a href="#assert_false">assert_false</a></li></ul>
</div>
@@ -19,11 +19,11 @@
easier. You don't have to use them; nothing in the rest of nose depends
on any of these methods.</p>
<h2>Classes</h2>
-<p>Highlighted methods are defined in this class.</p><a name="TimeExpired"></a><div class="cls section"><span class="cls name">TimeExpired</span> (exceptions.AssertionError)<div class="cls doc"><h3>Methods</h3><div class="method section inherited"><span class="method name">__getitem__<span class="args">(...)</span></span><span class="method inherited">(inherited from BaseException)</span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
-</div></div><div class="method section inherited"><span class="method name">__getslice__<span class="args">(...)</span></span><span class="method inherited">(inherited from BaseException)</span><div class="method doc"><p>x.__getslice__(i, j) &lt;==&gt; x[i:j]</p>
+<p>Highlighted methods are defined in this class.</p><a name="TimeExpired"></a><div class="cls section"><span class="cls name">TimeExpired</span> (exceptions.AssertionError)<div class="cls doc"><h3>Methods</h3><div class="method section"><span class="method name">__getitem__<span class="args">(...)</span></span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
+</div></div><div class="method section"><span class="method name">__getslice__<span class="args">(...)</span></span><div class="method doc"><p>x.__getslice__(i, j) &lt;==&gt; x[i:j]</p>
<p>Use of negative indices is not supported.</p>
</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(...)</span></span><span class="method inherited">(inherited from AssertionError)</span><div class="method doc"><p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>
-</div></div><div class="method section inherited"><span class="method name">__setstate__<span class="args">(...)</span></span><span class="method inherited">(inherited from BaseException)</span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section inherited"><span class="attr name">args</span><pre class="attr value">Default value: &lt;attribute &#39;args&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div><div class="attr section inherited"><span class="attr name">message</span><pre class="attr value">Default value: &lt;member &#39;message&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div></div></div><h2>Functions</h2>
+</div></div><div class="method section"><span class="method name">__setstate__<span class="args">(...)</span></span><div class="method doc"></div></div><h3>Attributes</h3><div class="attr section"><span class="attr name">args</span><pre class="attr value">Default value: &lt;attribute &#39;args&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div><div class="attr section"><span class="attr name">message</span><pre class="attr value">Default value: &lt;member &#39;message&#39; of &#39;exceptions.BaseException&#39; objects&gt;</pre><div class="attr doc"></div></div></div></div><h2>Functions</h2>
<a name="assert_true"></a><div class="func section"><span class="func name">assert_true<span class="args">(expr, msg)</span></span><div class="func doc"><p>Fail the test unless the expression is true.</p>
</div></div>
<a name="assert_equal"></a><div class="func section"><span class="func name">assert_equal<span class="args">(first, second, msg)</span></span><div class="func doc"><p>Fail if the two objects are unequal as determined by the '=='
diff --git a/doc/module_nose.twistedtools.html b/doc/module_nose.twistedtools.html
index 302699b..ef0411f 100644
--- a/doc/module_nose.twistedtools.html
+++ b/doc/module_nose.twistedtools.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>Functions</h2><ul><li><a href="#deferred">deferred</a></li><li><a href="#stop_reactor">stop_reactor</a></li><li><a href="#threaded_reactor">threaded_reactor</a></li></ul><h2>Attributes</h2><ul><li><a href="#reactor">reactor</a></li></ul>
</div>
diff --git a/doc/module_nose.util.html b/doc/module_nose.util.html
index 5f70af4..b335eb7 100644
--- a/doc/module_nose.util.html
+++ b/doc/module_nose.util.html
@@ -6,10 +6,10 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
- <h2>Classes</h2><ul><li><a href="#odict">odict</a></li></ul><h2>Functions</h2><ul><li><a href="#absfile">absfile</a></li><li><a href="#tolist">tolist</a></li><li><a href="#try_run">try_run</a></li><li><a href="#split_test_name">split_test_name</a></li><li><a href="#func_lineno">func_lineno</a></li><li><a href="#match_last">match_last</a></li><li><a href="#file_like">file_like</a></li><li><a href="#ln">ln</a></li><li><a href="#is_generator">is_generator</a></li><li><a href="#absdir">absdir</a></li><li><a href="#isgenerator">isgenerator</a></li><li><a href="#anyp">anyp</a></li><li><a href="#test_address">test_address</a></li><li><a href="#getfilename">getfilename</a></li><li><a href="#isclass">isclass</a></li><li><a href="#resolve_name">resolve_name</a></li><li><a href="#src">src</a></li><li><a href="#ispackage">ispackage</a></li><li><a href="#getpackage">getpackage</a></li><li><a href="#cmp_lineno">cmp_lineno</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li><li><a href="#class_types">class_types</a></li><li><a href="#CO_GENERATOR">CO_GENERATOR</a></li><li><a href="#ident_re">ident_re</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <h2>Classes</h2><ul><li><a href="#odict">odict</a></li></ul><h2>Functions</h2><ul><li><a href="#absfile">absfile</a></li><li><a href="#tolist">tolist</a></li><li><a href="#ls_tree">ls_tree</a></li><li><a href="#try_run">try_run</a></li><li><a href="#split_test_name">split_test_name</a></li><li><a href="#func_lineno">func_lineno</a></li><li><a href="#match_last">match_last</a></li><li><a href="#file_like">file_like</a></li><li><a href="#ln">ln</a></li><li><a href="#is_generator">is_generator</a></li><li><a href="#absdir">absdir</a></li><li><a href="#isgenerator">isgenerator</a></li><li><a href="#anyp">anyp</a></li><li><a href="#test_address">test_address</a></li><li><a href="#getfilename">getfilename</a></li><li><a href="#isclass">isclass</a></li><li><a href="#resolve_name">resolve_name</a></li><li><a href="#isproperty">isproperty</a></li><li><a href="#src">src</a></li><li><a href="#transplant_class">transplant_class</a></li><li><a href="#ispackage">ispackage</a></li><li><a href="#getpackage">getpackage</a></li><li><a href="#cmp_lineno">cmp_lineno</a></li><li><a href="#transplant_func">transplant_func</a></li></ul><h2>Attributes</h2><ul><li><a href="#log">log</a></li><li><a href="#ident_re">ident_re</a></li><li><a href="#skip_pattern">skip_pattern</a></li><li><a href="#class_types">class_types</a></li><li><a href="#CO_GENERATOR">CO_GENERATOR</a></li></ul>
</div>
<div id="main">
@@ -21,27 +21,27 @@
<p><a class="reference" href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747">http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747</a></p>
<h3>Methods</h3><div class="method section inherited"><span class="method name">__cmp__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__cmp__(y) &lt;==&gt; cmp(x,y)</p>
</div></div><div class="method section inherited"><span class="method name">__contains__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.__contains__(k) -&gt; True if D has a key k, else False</p>
-</div></div><div class="method section"><span class="method name">__delitem__<span class="args">(self, key)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__eq__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__eq__(y) &lt;==&gt; x==y</p>
+</div></div><div class="method section inherited"><span class="method name">__delitem__<span class="args">(self, key)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__eq__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__eq__(y) &lt;==&gt; x==y</p>
</div></div><div class="method section inherited"><span class="method name">__ge__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__ge__(y) &lt;==&gt; x&gt;=y</p>
</div></div><div class="method section inherited"><span class="method name">__getitem__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__getitem__(y) &lt;==&gt; x[y]</p>
</div></div><div class="method section inherited"><span class="method name">__gt__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__gt__(y) &lt;==&gt; x&gt;y</p>
-</div></div><div class="method section"><span class="method name">__init__<span class="args">(self, *arg, **kw)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__iter__() &lt;==&gt; iter(x)</p>
+</div></div><div class="method section inherited"><span class="method name">__init__<span class="args">(self, *arg, **kw)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">__iter__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__iter__() &lt;==&gt; iter(x)</p>
</div></div><div class="method section inherited"><span class="method name">__le__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__le__(y) &lt;==&gt; x&lt;=y</p>
</div></div><div class="method section inherited"><span class="method name">__len__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__len__() &lt;==&gt; len(x)</p>
</div></div><div class="method section inherited"><span class="method name">__lt__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__lt__(y) &lt;==&gt; x&lt;y</p>
</div></div><div class="method section inherited"><span class="method name">__ne__<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>x.__ne__(y) &lt;==&gt; x!=y</p>
-</div></div><div class="method section"><span class="method name">__setitem__<span class="args">(self, key, item)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">clear<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">copy<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">fromkeys<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>dict.fromkeys(S[,v]) -&gt; New dict with keys from S and values equal to v.
+</div></div><div class="method section inherited"><span class="method name">__setitem__<span class="args">(self, key, item)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">clear<span class="args">(self)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">copy<span class="args">(self)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">fromkeys<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>dict.fromkeys(S[,v]) -&gt; New dict with keys from S and values equal to v.
v defaults to None.</p>
</div></div><div class="method section inherited"><span class="method name">get<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.get(k[,d]) -&gt; D[k] if k in D, else d. d defaults to None.</p>
</div></div><div class="method section inherited"><span class="method name">has_key<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.has_key(k) -&gt; True if D has a key k, else False</p>
-</div></div><div class="method section"><span class="method name">items<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">iteritems<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.iteritems() -&gt; an iterator over the (key, value) items of D</p>
+</div></div><div class="method section inherited"><span class="method name">items<span class="args">(self)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">iteritems<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.iteritems() -&gt; an iterator over the (key, value) items of D</p>
</div></div><div class="method section inherited"><span class="method name">iterkeys<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.iterkeys() -&gt; an iterator over the keys of D</p>
</div></div><div class="method section inherited"><span class="method name">itervalues<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.itervalues() -&gt; an iterator over the values of D</p>
-</div></div><div class="method section"><span class="method name">keys<span class="args">(self)</span></span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">pop<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.pop(k[,d]) -&gt; v, remove specified key and return the corresponding value
+</div></div><div class="method section inherited"><span class="method name">keys<span class="args">(self)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">pop<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.pop(k[,d]) -&gt; v, remove specified key and return the corresponding value
If key is not found, d is returned if given, otherwise KeyError is raised</p>
</div></div><div class="method section inherited"><span class="method name">popitem<span class="args">(...)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"><p>D.popitem() -&gt; (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty</p>
-</div></div><div class="method section"><span class="method name">setdefault<span class="args">(self, key, failobj=None)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">update<span class="args">(self, dict)</span></span><div class="method doc"></div></div><div class="method section"><span class="method name">values<span class="args">(self)</span></span><div class="method doc"></div></div></div></div><h2>Functions</h2>
+</div></div><div class="method section inherited"><span class="method name">setdefault<span class="args">(self, key, failobj=None)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">update<span class="args">(self, dict)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div><div class="method section inherited"><span class="method name">values<span class="args">(self)</span></span><span class="method inherited">(inherited from dict)</span><div class="method doc"></div></div></div></div><h2>Functions</h2>
<a name="absfile"></a><div class="func section"><span class="func name">absfile<span class="args">(path, where=None)</span></span><div class="func doc"><p>Return absolute, normalized path to file (optionally in directory
where), or None if the file can't be found either in where or the current
working directory.</p>
@@ -56,6 +56,7 @@ string into a list. The exception: None is returned as None, not [None].</p>
<span class="go">[&#39;separate&#39;, &#39;values&#39;, &#39;with&#39;, &#39;commas&#39;, &#39;spaces&#39;, &#39;are&#39;, &#39;ok&#39;]</span>
</pre></div>
</div></div>
+<a name="ls_tree"></a><div class="func section"><span class="func name">ls_tree<span class="args">(dir_path='', skip_pattern='(?:\\.svn)|(?:[^.]+\\.py[co])|(?:.*~)|(?:.*\\$py\\.class)', indent='|-- ', branch_indent='| ', last_indent='`-- ', last_branch_indent=' ')</span></span><div class="func doc"></div></div>
<a name="try_run"></a><div class="func section"><span class="func name">try_run<span class="args">(obj, names)</span></span><div class="func doc"><p>Given a list of possible method names, try to run them with the
provided object. Keep going until something works. Used to run
setup/teardown methods for module, package, and function tests.</p>
@@ -114,8 +115,35 @@ wholesale from unittest.TestLoader.loadTestByName.</p>
<span class="go">&lt;function resolve_name at...&gt;</span>
</pre></div>
</div></div>
-<a name="src"></a><div class="func section"><span class="func name">src<span class="args">(filename)</span></span><div class="func doc"><p>Find the python source file for a .pyc or .pyo file. Returns the
-filename provided if it is not a python source file.</p>
+<a name="isproperty"></a><div class="func section"><span class="func name">isproperty<span class="args">(obj)</span></span><div class="func doc"><p>Is this a property?</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">Foo</span><span class="p">:</span>
+<span class="gp">... </span> <span class="k">def</span> <span class="nf">got</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<span class="gp">... </span> <span class="k">return</span> <span class="mf">2</span>
+<span class="gp">... </span> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<span class="gp">... </span> <span class="k">return</span> <span class="mf">1</span>
+<span class="gp">... </span> <span class="n">get</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">get</span><span class="p">)</span>
+</pre></div>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">isproperty</span><span class="p">(</span><span class="n">Foo</span><span class="o">.</span><span class="n">got</span><span class="p">)</span>
+<span class="go">False</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">isproperty</span><span class="p">(</span><span class="n">Foo</span><span class="o">.</span><span class="n">get</span><span class="p">)</span>
+<span class="go">True</span>
+</pre></div>
+</div></div>
+<a name="src"></a><div class="func section"><span class="func name">src<span class="args">(filename)</span></span><div class="func doc"><p>Find the python source file for a .pyc, .pyo or $py.class file on
+jython. Returns the filename provided if it is not a python source
+file.</p>
+</div></div>
+<a name="transplant_class"></a><div class="func section"><span class="func name">transplant_class<span class="args">(cls, module)</span></span><div class="func doc"><p>Make a class appear to reside in <cite>module</cite>, rather than the module in which
+it is actually defined.</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.failure</span> <span class="k">import</span> <span class="n">Failure</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Failure</span><span class="o">.</span><span class="n">__module__</span>
+<span class="go">&#39;nose.failure&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Nf</span> <span class="o">=</span> <span class="n">transplant_class</span><span class="p">(</span><span class="n">Failure</span><span class="p">,</span> <span class="n">__name__</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Nf</span><span class="o">.</span><span class="n">__module__</span>
+<span class="go">&#39;nose.util&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Nf</span><span class="o">.</span><span class="n">__name__</span>
+<span class="go">&#39;Failure&#39;</span>
+</pre></div>
</div></div>
<a name="ispackage"></a><div class="func section"><span class="func name">ispackage<span class="args">(path)</span></span><div class="func doc"><p>Is this path a package directory?</p>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">ispackage</span><span class="p">(</span><span class="s">&#39;nose&#39;</span><span class="p">)</span>
@@ -161,11 +189,32 @@ name. Returns None if the file is not a python source file.</p>
<span class="gp">&gt;&gt;&gt; </span><span class="n">cmp_lineno</span><span class="p">(</span><span class="n">isgenerator</span><span class="p">,</span> <span class="n">isgenerator</span><span class="p">)</span>
<span class="go">0</span>
</pre></div>
+</div></div>
+<a name="transplant_func"></a><div class="func section"><span class="func name">transplant_func<span class="args">(func, module)</span></span><div class="func doc"><p>Make a function imported from module A appear as if it is located
+in module B.</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">pprint</span> <span class="k">import</span> <span class="n">pprint</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="o">.</span><span class="n">__module__</span>
+<span class="go">&#39;pprint&#39;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pp</span> <span class="o">=</span> <span class="n">transplant_func</span><span class="p">(</span><span class="n">pprint</span><span class="p">,</span> <span class="n">__name__</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pp</span><span class="o">.</span><span class="n">__module__</span>
+<span class="go">&#39;nose.util&#39;</span>
+</pre></div>
+<p>The original function is not modified</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="o">.</span><span class="n">__module__</span>
+<span class="go">&#39;pprint&#39;</span>
+</pre></div>
+<p>Calling the transplanted function calls the original.</p>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">pp</span><span class="p">([</span><span class="mf">1</span><span class="p">,</span> <span class="mf">2</span><span class="p">])</span>
+<span class="go">[1, 2]</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">([</span><span class="mf">1</span><span class="p">,</span><span class="mf">2</span><span class="p">])</span>
+<span class="go">[1, 2]</span>
+</pre></div>
</div></div><h2>Attributes</h2>
<a name="log"></a><div class="attr section"><span class="attr name">log</span><pre class="attr value">Default value: &lt;logging.Logger instance&gt;</pre><div class="attr doc"></div></div>
+<a name="ident_re"></a><div class="attr section"><span class="attr name">ident_re</span><pre class="attr value">Default value: &lt;_sre.SRE_Pattern object&gt;</pre><div class="attr doc"></div></div>
+<a name="skip_pattern"></a><div class="attr section"><span class="attr name">skip_pattern</span><pre class="attr value">Default value: (?:\.svn)|(?:[^.]+\.py[co])|(?:.*~)|(?:.*\$py\.class)</pre><div class="attr doc"></div></div>
<a name="class_types"></a><div class="attr section"><span class="attr name">class_types</span><pre class="attr value">Default value: (&lt;type &#39;classobj&#39;&gt;, &lt;type &#39;type&#39;&gt;)</pre><div class="attr doc"></div></div>
<a name="CO_GENERATOR"></a><div class="attr section"><span class="attr name">CO_GENERATOR</span><pre class="attr value">Default value: 32</pre><div class="attr doc"></div></div>
-<a name="ident_re"></a><div class="attr section"><span class="attr name">ident_re</span><pre class="attr value">Default value: &lt;_sre.SRE_Pattern object&gt;</pre><div class="attr doc"></div></div>
</div>
<script src="http://www.google-analytics.com/urchin.js"
diff --git a/doc/plugin_attrib.html b/doc/plugin_attrib.html
index 30d2461..2e51da5 100644
--- a/doc/plugin_attrib.html
+++ b/doc/plugin_attrib.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -50,8 +50,14 @@ below for definition)</p>
</dl>
</li>
<li><dl class="first docutils">
-<dt><cite>nosetests -a !slow</cite>:</dt>
-<dd><p class="first last">Attribute &quot;slow&quot; must NOT be defined or its value must be equal to False</p>
+<dt><cite>nosetests -a '!slow'</cite>:</dt>
+<dd><p class="first">Attribute &quot;slow&quot; must NOT be defined or its value must be equal to False.
+Note the quotes around the value -- this may be necessary if your shell
+interprets <a href="#id1" name="id2"><span class="problematic" id="id2">`</span></a>!' as a special character.</p>
+<div class="last system-message" id="id1">
+<p class="system-message-title">System Message: <a name="id1">WARNING/2</a> (<tt class="docutils">&lt;string&gt;</tt>, line 23); <em><a href="#id2">backlink</a></em></p>
+<p>Inline interpreted text or phrase reference start-string without end-string.</p>
+</div>
</dd>
</dl>
</li>
@@ -105,8 +111,10 @@ below for definition)</p>
<span class="sd"> Attribute &quot;slow&quot; must be defined and its value cannot equal to False</span>
<span class="sd"> (False, [], &quot;&quot;, etc...)</span>
-<span class="sd">* `nosetests -a !slow`:</span>
-<span class="sd"> Attribute &quot;slow&quot; must NOT be defined or its value must be equal to False</span>
+<span class="sd">* `nosetests -a &#39;!slow&#39;`:</span>
+<span class="sd"> Attribute &quot;slow&quot; must NOT be defined or its value must be equal to False. </span>
+<span class="sd"> Note the quotes around the value -- this may be necessary if your shell </span>
+<span class="sd"> interprets `!&#39; as a special character.</span>
<span class="sd">Eval expression syntax (-A, --eval-attr) examples:</span>
@@ -123,7 +131,7 @@ below for definition)</p>
<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">tolist</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">&#39;nose.plugins.attrib&#39;</span><span class="p">)</span>
-<span class="n">compat_24</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span> <span class="o">&gt;=</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
+<span class="n">compat_24</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span> <span class="o">&gt;=</span> <span class="p">(</span><span class="mf">2</span><span class="p">,</span> <span class="mf">4</span><span class="p">)</span>
<span class="k">class</span> <span class="nc">ContextHelper</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Returns default values for dictionary lookups.&quot;&quot;&quot;</span>
@@ -213,17 +221,17 @@ below for definition)</p>
<span class="c"># don&#39;t die on trailing comma</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">attrib</span><span class="p">:</span>
<span class="k">continue</span>
- <span class="n">items</span> <span class="o">=</span> <span class="n">attrib</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot;=&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">items</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
+ <span class="n">items</span> <span class="o">=</span> <span class="n">attrib</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot;=&quot;</span><span class="p">,</span> <span class="mf">1</span><span class="p">)</span>
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">items</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mf">1</span><span class="p">:</span>
<span class="c"># &quot;name=value&quot;</span>
<span class="c"># -&gt; &#39;str(obj.name) == value&#39; must be True</span>
<span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">items</span>
<span class="k">else</span><span class="p">:</span>
- <span class="n">key</span> <span class="o">=</span> <span class="n">items</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
- <span class="k">if</span> <span class="n">key</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&quot;!&quot;</span><span class="p">:</span>
+ <span class="n">key</span> <span class="o">=</span> <span class="n">items</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span>
+ <span class="k">if</span> <span class="n">key</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">&quot;!&quot;</span><span class="p">:</span>
<span class="c"># &quot;!name&quot;</span>
<span class="c"># &#39;bool(obj.name)&#39; must be False</span>
- <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
+ <span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="p">[</span><span class="mf">1</span><span class="p">:]</span>
<span class="n">value</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">else</span><span class="p">:</span>
<span class="c"># &quot;name&quot;</span>
diff --git a/doc/plugin_capture.html b/doc/plugin_capture.html
index 82d80ca..6bbd205 100644
--- a/doc/plugin_capture.html
+++ b/doc/plugin_capture.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -16,7 +16,7 @@
<p>This plugin captures stdout during test execution, appending any
output captured to the error or failure output, should the test fail
-or raise an error. It is enabled by default but may be disable with
+or raise an error. It is enabled by default but may be disabled with
the options -s or --nocapture.</p>
@@ -41,7 +41,7 @@ the options -s or --nocapture.</p>
<div class="highlight"><pre><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">This plugin captures stdout during test execution, appending any</span>
<span class="sd">output captured to the error or failure output, should the test fail</span>
-<span class="sd">or raise an error. It is enabled by default but may be disable with</span>
+<span class="sd">or raise an error. It is enabled by default but may be disabled with</span>
<span class="sd">the options -s or --nocapture.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="k">import</span> <span class="nn">logging</span>
@@ -67,7 +67,7 @@ the options -s or --nocapture.</p>
<span class="n">enabled</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">env_opt</span> <span class="o">=</span> <span class="s">&#39;NOSE_NOCAPTURE&#39;</span>
<span class="n">name</span> <span class="o">=</span> <span class="s">&#39;capture&#39;</span>
- <span class="n">score</span> <span class="o">=</span> <span class="mi">500</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="mf">500</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="p">[]</span>
diff --git a/doc/plugin_cover.html b/doc/plugin_cover.html
index 9eb410e..3b6e713 100644
--- a/doc/plugin_cover.html
+++ b/doc/plugin_cover.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -80,7 +80,7 @@ variable.</p>
<span class="k">import</span> <span class="nn">os</span>
<span class="k">import</span> <span class="nn">sys</span>
<span class="k">from</span> <span class="nn">nose.plugins.base</span> <span class="k">import</span> <span class="n">Plugin</span>
-<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">tolist</span>
+<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">src</span><span class="p">,</span> <span class="n">tolist</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
@@ -97,6 +97,7 @@ variable.</p>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">coverTests</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">coverPackages</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="mf">200</span>
<span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
<span class="n">Plugin</span><span class="o">.</span><span class="n">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span>
@@ -171,8 +172,8 @@ variable.</p>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="s">&#39;__file__&#39;</span><span class="p">):</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;no coverage of </span><span class="si">%s</span><span class="s">: no __file__&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">False</span>
- <span class="n">root</span><span class="p">,</span> <span class="n">ext</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">module</span><span class="o">.</span><span class="n">__file__</span><span class="p">)</span>
- <span class="k">if</span> <span class="ow">not</span> <span class="n">ext</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;.py&#39;</span><span class="p">,</span> <span class="s">&#39;.pyc&#39;</span><span class="p">,</span> <span class="s">&#39;.pyo&#39;</span><span class="p">):</span>
+ <span class="n">module_file</span> <span class="o">=</span> <span class="n">src</span><span class="p">(</span><span class="n">module</span><span class="o">.</span><span class="n">__file__</span><span class="p">)</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">module_file</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">module_file</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">&#39;.py&#39;</span><span class="p">):</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;no coverage of </span><span class="si">%s</span><span class="s">: not a python file&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">False</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">coverPackages</span><span class="p">:</span>
diff --git a/doc/plugin_debug.html b/doc/plugin_debug.html
index a40c7e1..40ff8d7 100644
--- a/doc/plugin_debug.html
+++ b/doc/plugin_debug.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -54,7 +54,7 @@ respectively.</p>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">enabled_for_errors</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">enabled_for_failures</span> <span class="o">=</span> <span class="bp">False</span>
- <span class="n">score</span> <span class="o">=</span> <span class="mi">5</span> <span class="c"># run last, among builtins</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="mf">5</span> <span class="c"># run last, among builtins</span>
<span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
diff --git a/doc/plugin_deprecated.html b/doc/plugin_deprecated.html
index b5622e7..d1d12c5 100644
--- a/doc/plugin_deprecated.html
+++ b/doc/plugin_deprecated.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
diff --git a/doc/plugin_doctests.html b/doc/plugin_doctests.html
index d21df3e..a7d0aae 100644
--- a/doc/plugin_doctests.html
+++ b/doc/plugin_doctests.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -19,22 +19,46 @@ environment variable to enable collection and execution of doctests. <a class="r
tests are usually included in the tested package, not grouped into packages or
modules of their own. For this reason, nose will try to detect and run doctest
tests only in the non-test packages it discovers in the working
-directory. Doctests may also be placed into files other than python modules,
-in which case they can be collected and executed by using the
---doctest-extension switch or NOSE_DOCTEST_EXTENSION environment variable to
-indicate which file extension(s) to load.</p>
-<p>doctest tests are run like any other test, with the exception that output
+directory.</p>
+<p>Doctests may also be placed into files other than python modules, in which
+case they can be collected and executed by using the --doctest-extension
+switch or NOSE_DOCTEST_EXTENSION environment variable to indicate which file
+extension(s) to load.</p>
+<p>When loading doctests from non-module files, you may specify how to find
+modules that contains fixtures for the tests using the --doctest-fixtures
+switch. The value of that switch will be appended to the base name of each
+doctest file loaded to produce a module name. For instance, for a doctest file
+&quot;widgets.rst&quot; with the switch <tt class="docutils literal"><span class="pre">--doctest_fixtures=_fixt</span></tt>, fixtures will be
+loaded from the module <tt class="docutils literal"><span class="pre">widgets_fixt.py</span></tt> if it exists.</p>
+<p>A fixtures module may define any or all of the following functions:</p>
+<ul>
+<li><p class="first">setup([module]) or setup_module([module])</p>
+<p>Called before any tests are run. You may raise SkipTest to skip all tests.</p>
+</li>
+<li><p class="first">teardown([module]) or teardown_module([module])</p>
+<p>Called after all tests are run, if setup/setup_module did not raise an
+unhandled exception.</p>
+</li>
+<li><p class="first">setup_test(test)</p>
+<p>Called before each test in the file. NOTE: the argument passed is a
+doctest.DocTest instance, <em>not</em> a unittest.TestCase.</p>
+</li>
+<li><p class="first">teardown_test(test)</p>
+<p>Called after each test in the file whose setup_test call did not raise an
+unhandled exception. NOTE: the argument passed is a doctest.DocTest
+instance, <em>not</em> a unittest.TestCase</p>
+</li>
+</ul>
+<p>Doctest tests are run like any other test, with the exception that output
capture does not work, because doctest does its own output capture in the
course of running a test.</p>
-<p>This module also includes a specialized version of nose.run() that
-makes it easier to write doctests that test test runs.</p>
<h2>Plugin Methods Implemented</h2>
<p>This plugin implements the following plugin interface methods:</p>
- <ul><li><a href="plugin_interface.html#configure">configure</a></li><li><a href="plugin_interface.html#loadTestsFromFile">loadTestsFromFile</a></li><li><a href="plugin_interface.html#loadTestsFromModule">loadTestsFromModule</a></li><li><a href="plugin_interface.html#makeTest">makeTest</a></li><li><a href="plugin_interface.html#options">options</a></li><li><a href="plugin_interface.html#wantFile">wantFile</a></li></ul>
+ <ul><li><a href="plugin_interface.html#configure">configure</a></li><li><a href="plugin_interface.html#loadTestsFromFile">loadTestsFromFile</a></li><li><a href="plugin_interface.html#loadTestsFromModule">loadTestsFromModule</a></li><li><a href="plugin_interface.html#makeTest">makeTest</a></li><li><a href="plugin_interface.html#options">options</a></li><li><a href="plugin_interface.html#prepareTestLoader">prepareTestLoader</a></li><li><a href="plugin_interface.html#wantFile">wantFile</a></li></ul>
<h2>Commandline Options</h2>
@@ -52,6 +76,9 @@ makes it easier to write doctests that test test runs.</p>
--doctest-extension=DOCTESTEXTENSION
Also look for doctests in files with this extension
[NOSE_DOCTEST_EXTENSION]
+ --doctest-fixtures=DOCTESTFIXTURES
+ Find fixtures for a doctest file in module with this
+ name appended to the base name of the doctest file
</pre>
<h2>Source</h2>
@@ -61,31 +88,63 @@ makes it easier to write doctests that test test runs.</p>
<span class="sd">tests are usually included in the tested package, not grouped into packages or</span>
<span class="sd">modules of their own. For this reason, nose will try to detect and run doctest</span>
<span class="sd">tests only in the non-test packages it discovers in the working</span>
-<span class="sd">directory. Doctests may also be placed into files other than python modules,</span>
-<span class="sd">in which case they can be collected and executed by using the</span>
-<span class="sd">--doctest-extension switch or NOSE_DOCTEST_EXTENSION environment variable to</span>
-<span class="sd">indicate which file extension(s) to load.</span>
+<span class="sd">directory.</span>
-<span class="sd">doctest tests are run like any other test, with the exception that output</span>
+<span class="sd">Doctests may also be placed into files other than python modules, in which</span>
+<span class="sd">case they can be collected and executed by using the --doctest-extension</span>
+<span class="sd">switch or NOSE_DOCTEST_EXTENSION environment variable to indicate which file</span>
+<span class="sd">extension(s) to load.</span>
+
+<span class="sd">When loading doctests from non-module files, you may specify how to find</span>
+<span class="sd">modules that contains fixtures for the tests using the --doctest-fixtures</span>
+<span class="sd">switch. The value of that switch will be appended to the base name of each</span>
+<span class="sd">doctest file loaded to produce a module name. For instance, for a doctest file</span>
+<span class="sd">&quot;widgets.rst&quot; with the switch ``--doctest_fixtures=_fixt``, fixtures will be</span>
+<span class="sd">loaded from the module ``widgets_fixt.py`` if it exists.</span>
+
+<span class="sd">A fixtures module may define any or all of the following functions:</span>
+
+<span class="sd">* setup([module]) or setup_module([module])</span>
+<span class="sd"> </span>
+<span class="sd"> Called before any tests are run. You may raise SkipTest to skip all tests.</span>
+<span class="sd"> </span>
+<span class="sd">* teardown([module]) or teardown_module([module])</span>
+
+<span class="sd"> Called after all tests are run, if setup/setup_module did not raise an</span>
+<span class="sd"> unhandled exception.</span>
+
+<span class="sd">* setup_test(test)</span>
+
+<span class="sd"> Called before each test in the file. NOTE: the argument passed is a</span>
+<span class="sd"> doctest.DocTest instance, *not* a unittest.TestCase.</span>
+<span class="sd"> </span>
+<span class="sd">* teardown_test(test)</span>
+<span class="sd"> </span>
+<span class="sd"> Called after each test in the file whose setup_test call did not raise an</span>
+<span class="sd"> unhandled exception. NOTE: the argument passed is a doctest.DocTest</span>
+<span class="sd"> instance, *not* a unittest.TestCase</span>
+<span class="sd"> </span>
+<span class="sd">Doctest tests are run like any other test, with the exception that output</span>
<span class="sd">capture does not work, because doctest does its own output capture in the</span>
<span class="sd">course of running a test.</span>
-<span class="sd">This module also includes a specialized version of nose.run() that</span>
-<span class="sd">makes it easier to write doctests that test test runs.</span>
-
<span class="sd">.. _doctest: http://docs.python.org/lib/module-doctest.html</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="k">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">generators</span>
<span class="k">import</span> <span class="nn">logging</span>
<span class="k">import</span> <span class="nn">os</span>
+<span class="k">import</span> <span class="nn">unittest</span>
<span class="k">from</span> <span class="nn">inspect</span> <span class="k">import</span> <span class="n">getmodule</span>
<span class="k">from</span> <span class="nn">nose.plugins.base</span> <span class="k">import</span> <span class="n">Plugin</span>
-<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">anyp</span><span class="p">,</span> <span class="n">getpackage</span><span class="p">,</span> <span class="n">test_address</span><span class="p">,</span> <span class="n">resolve_name</span><span class="p">,</span> <span class="n">tolist</span>
+<span class="k">from</span> <span class="nn">nose.suite</span> <span class="k">import</span> <span class="n">ContextSuite</span>
+<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">anyp</span><span class="p">,</span> <span class="n">getpackage</span><span class="p">,</span> <span class="n">test_address</span><span class="p">,</span> <span class="n">resolve_name</span><span class="p">,</span> \
+ <span class="n">src</span><span class="p">,</span> <span class="n">tolist</span><span class="p">,</span> <span class="n">isproperty</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">from</span> <span class="nn">cStringIO</span> <span class="k">import</span> <span class="n">StringIO</span>
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
<span class="k">from</span> <span class="nn">StringIO</span> <span class="k">import</span> <span class="n">StringIO</span>
+<span class="k">import</span> <span class="nn">sys</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
@@ -115,7 +174,7 @@ makes it easier to write doctests that test test runs.</p>
<span class="k">def</span> <span class="nf">set_trace</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__debugger_used</span> <span class="o">=</span> <span class="bp">True</span>
- <span class="n">_orp</span><span class="o">.</span><span class="n">set_trace</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+ <span class="n">_orp</span><span class="o">.</span><span class="n">set_trace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">_getframe</span><span class="p">()</span><span class="o">.</span><span class="n">f_back</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">set_continue</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c"># Calling set_continue unconditionally would break unit test </span>
@@ -125,11 +184,41 @@ makes it easier to write doctests that test test runs.</p>
<span class="n">doctest</span><span class="o">.</span><span class="n">_OutputRedirectingPdb</span> <span class="o">=</span> <span class="n">NoseOutputRedirectingPdb</span>
+<span class="k">class</span> <span class="nc">DoctestSuite</span><span class="p">(</span><span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Doctest suites are parallelizable at the module or file level only,</span>
+<span class="sd"> since they may be attached to objects that are not individually</span>
+<span class="sd"> addressable (like properties). This suite subclass is used when</span>
+<span class="sd"> loading doctests from a module to ensure that behavior.</span>
+
+<span class="sd"> This class is used only if the plugin is not fully prepared;</span>
+<span class="sd"> in normal use, the loader&#39;s suiteClass is used.</span>
+<span class="sd"> </span>
+<span class="sd"> &quot;&quot;&quot;</span>
+ <span class="n">can_split</span> <span class="o">=</span> <span class="bp">False</span>
+
+ <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tests</span><span class="o">=</span><span class="p">(),</span> <span class="n">context</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">can_split</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">context</span> <span class="o">=</span> <span class="n">context</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">can_split</span> <span class="o">=</span> <span class="n">can_split</span>
+ <span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tests</span><span class="o">=</span><span class="n">tests</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">address</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">return</span> <span class="n">test_address</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">context</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="c"># 2.3 compat</span>
+ <span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tests</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tests</span><span class="p">)</span>
+
+
<span class="k">class</span> <span class="nc">Doctest</span><span class="p">(</span><span class="n">Plugin</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Activate doctest plugin to find and run doctests in non-test modules.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">extension</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="n">suiteClass</span> <span class="o">=</span> <span class="n">DoctestSuite</span>
<span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
<span class="n">Plugin</span><span class="o">.</span><span class="n">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span>
@@ -144,6 +233,11 @@ makes it easier to write doctests that test test runs.</p>
<span class="n">dest</span><span class="o">=</span><span class="s">&quot;doctestExtension&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s">&quot;Also look for doctests in files with &quot;</span>
<span class="s">&quot;this extension [NOSE_DOCTEST_EXTENSION]&quot;</span><span class="p">)</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;--doctest-fixtures&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&quot;store&quot;</span><span class="p">,</span>
+ <span class="n">dest</span><span class="o">=</span><span class="s">&quot;doctestFixtures&quot;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s">&quot;Find fixtures for a doctest file in module &quot;</span>
+ <span class="s">&quot;with this name appended to the base name &quot;</span>
+ <span class="s">&quot;of the doctest file&quot;</span><span class="p">)</span>
<span class="c"># Set the default as a list, if given in env; otherwise</span>
<span class="c"># an additional value set on the command line will cause</span>
<span class="c"># an error.</span>
@@ -154,30 +248,38 @@ makes it easier to write doctests that test test runs.</p>
<span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
<span class="n">Plugin</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">doctest_tests</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">doctest_tests</span>
- <span class="k">try</span><span class="p">:</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="n">tolist</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">doctestExtension</span><span class="p">)</span>
- <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
- <span class="c"># 2.3, no other-file option</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="n">tolist</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">doctestExtension</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">fixtures</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">doctestFixtures</span>
<span class="bp">self</span><span class="o">.</span><span class="n">finder</span> <span class="o">=</span> <span class="n">doctest</span><span class="o">.</span><span class="n">DocTestFinder</span><span class="p">()</span>
+ <span class="k">def</span> <span class="nf">prepareTestLoader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">loader</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">suiteClass</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">suiteClass</span>
+
<span class="k">def</span> <span class="nf">loadTestsFromModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">matches</span><span class="p">(</span><span class="n">module</span><span class="o">.</span><span class="n">__name__</span><span class="p">):</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Doctest doesn&#39;t want module </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">module</span><span class="p">)</span>
<span class="k">return</span>
- <span class="n">tests</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">finder</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">tests</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">finder</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
+ <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+ <span class="c"># nose allows module.__test__ = False; doctest does not and throws</span>
+ <span class="c"># AttributeError</span>
+ <span class="k">return</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">tests</span><span class="p">:</span>
<span class="k">return</span>
<span class="n">tests</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
- <span class="n">module_file</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">__file__</span>
- <span class="k">if</span> <span class="n">module_file</span><span class="p">[</span><span class="o">-</span><span class="mi">4</span><span class="p">:]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;.pyc&#39;</span><span class="p">,</span> <span class="s">&#39;.pyo&#39;</span><span class="p">):</span>
- <span class="n">module_file</span> <span class="o">=</span> <span class="n">module_file</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+ <span class="n">module_file</span> <span class="o">=</span> <span class="n">src</span><span class="p">(</span><span class="n">module</span><span class="o">.</span><span class="n">__file__</span><span class="p">)</span>
+ <span class="c"># FIXME this breaks the id plugin somehow (tests probably don&#39;t</span>
+ <span class="c"># get wrapped in result proxy or something)</span>
+ <span class="n">cases</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">tests</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">test</span><span class="o">.</span><span class="n">examples</span><span class="p">:</span>
<span class="k">continue</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">test</span><span class="o">.</span><span class="n">filename</span><span class="p">:</span>
- <span class="n">test</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">module_file</span>
- <span class="k">yield</span> <span class="n">DocTestCase</span><span class="p">(</span><span class="n">test</span><span class="p">)</span>
+ <span class="n">test</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">module_file</span>
+ <span class="n">cases</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">DocTestCase</span><span class="p">(</span><span class="n">test</span><span class="p">))</span>
+ <span class="k">if</span> <span class="n">cases</span><span class="p">:</span>
+ <span class="k">yield</span> <span class="bp">self</span><span class="o">.</span><span class="n">suiteClass</span><span class="p">(</span><span class="n">cases</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="n">module</span><span class="p">,</span> <span class="n">can_split</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">loadTestsFromFile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="ow">and</span> <span class="n">anyp</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">endswith</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">extension</span><span class="p">):</span>
@@ -187,12 +289,37 @@ makes it easier to write doctests that test test runs.</p>
<span class="n">doc</span> <span class="o">=</span> <span class="n">dh</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">dh</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+ <span class="n">fixture_context</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="n">globs</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;__file__&#39;</span><span class="p">:</span> <span class="n">filename</span><span class="p">}</span>
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fixtures</span><span class="p">:</span>
+ <span class="n">base</span><span class="p">,</span> <span class="n">ext</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+ <span class="n">dirname</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
+ <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dirname</span><span class="p">)</span>
+ <span class="n">fixt_mod</span> <span class="o">=</span> <span class="n">base</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">fixtures</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">fixture_context</span> <span class="o">=</span> <span class="nb">__import__</span><span class="p">(</span>
+ <span class="n">fixt_mod</span><span class="p">,</span> <span class="nb">globals</span><span class="p">(),</span> <span class="nb">locals</span><span class="p">(),</span> <span class="p">[</span><span class="s">&quot;nop&quot;</span><span class="p">])</span>
+ <span class="k">except</span> <span class="ne">ImportError</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span>
+ <span class="s">&quot;Could not import </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&quot;</span><span class="p">,</span> <span class="n">fixt_mod</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Fixture module </span><span class="si">%s</span><span class="s"> resolved to </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span>
+ <span class="n">fixt_mod</span><span class="p">,</span> <span class="n">fixture_context</span><span class="p">)</span>
+ <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">fixture_context</span><span class="p">,</span> <span class="s">&#39;globs&#39;</span><span class="p">):</span>
+ <span class="n">globs</span> <span class="o">=</span> <span class="n">fixture_context</span><span class="o">.</span><span class="n">globs</span><span class="p">(</span><span class="n">globs</span><span class="p">)</span>
<span class="n">parser</span> <span class="o">=</span> <span class="n">doctest</span><span class="o">.</span><span class="n">DocTestParser</span><span class="p">()</span>
<span class="n">test</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">get_doctest</span><span class="p">(</span>
- <span class="n">doc</span><span class="p">,</span> <span class="n">globs</span><span class="o">=</span><span class="p">{</span><span class="s">&#39;__file__&#39;</span><span class="p">:</span> <span class="n">filename</span><span class="p">},</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
- <span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">,</span> <span class="n">lineno</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+ <span class="n">doc</span><span class="p">,</span> <span class="n">globs</span><span class="o">=</span><span class="n">globs</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
+ <span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">,</span> <span class="n">lineno</span><span class="o">=</span><span class="mf">0</span><span class="p">)</span>
<span class="k">if</span> <span class="n">test</span><span class="o">.</span><span class="n">examples</span><span class="p">:</span>
- <span class="k">yield</span> <span class="n">DocFileCase</span><span class="p">(</span><span class="n">test</span><span class="p">)</span>
+ <span class="n">case</span> <span class="o">=</span> <span class="n">DocFileCase</span><span class="p">(</span>
+ <span class="n">test</span><span class="p">,</span>
+ <span class="n">setUp</span><span class="o">=</span><span class="nb">getattr</span><span class="p">(</span><span class="n">fixture_context</span><span class="p">,</span> <span class="s">&#39;setup_test&#39;</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
+ <span class="n">tearDown</span><span class="o">=</span><span class="nb">getattr</span><span class="p">(</span><span class="n">fixture_context</span><span class="p">,</span> <span class="s">&#39;teardown_test&#39;</span><span class="p">,</span> <span class="bp">None</span><span class="p">))</span>
+ <span class="k">if</span> <span class="n">fixture_context</span><span class="p">:</span>
+ <span class="k">yield</span> <span class="n">ContextSuite</span><span class="p">(</span><span class="n">tests</span><span class="o">=</span><span class="p">(</span><span class="n">case</span><span class="p">,),</span> <span class="n">context</span><span class="o">=</span><span class="n">fixture_context</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">yield</span> <span class="n">case</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">yield</span> <span class="bp">False</span> <span class="c"># no tests to load</span>
@@ -200,10 +327,11 @@ makes it easier to write doctests that test test runs.</p>
<span class="sd">&quot;&quot;&quot;Look for doctests in the given object, which will be a</span>
<span class="sd"> function, method or class.</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="n">doctests</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">finder</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">module</span><span class="o">=</span><span class="n">getmodule</span><span class="p">(</span><span class="n">parent</span><span class="p">))</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s">&#39;__name__&#39;</span><span class="p">,</span> <span class="s">&#39;Unnammed </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="nb">type</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span>
+ <span class="n">doctests</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">finder</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">module</span><span class="o">=</span><span class="n">getmodule</span><span class="p">(</span><span class="n">parent</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">doctests</span><span class="p">:</span>
<span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">doctests</span><span class="p">:</span>
- <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">examples</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">examples</span><span class="p">)</span> <span class="o">==</span> <span class="mf">0</span><span class="p">:</span>
<span class="k">continue</span>
<span class="k">yield</span> <span class="n">DocTestCase</span><span class="p">(</span><span class="n">test</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="n">obj</span><span class="p">)</span>
@@ -247,17 +375,30 @@ makes it easier to write doctests that test test runs.</p>
<span class="sd"> be passed -- this will be used as the test object for purposes of</span>
<span class="sd"> determining the test address, if it is provided. </span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">,</span> <span class="n">optionflags</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">setUp</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">tearDown</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+ <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">,</span> <span class="n">optionflags</span><span class="o">=</span><span class="mf">0</span><span class="p">,</span> <span class="n">setUp</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">tearDown</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
<span class="n">checker</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">obj</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_nose_obj</span> <span class="o">=</span> <span class="n">obj</span>
<span class="nb">super</span><span class="p">(</span><span class="n">DocTestCase</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span>
- <span class="n">test</span><span class="p">,</span> <span class="n">optionflags</span><span class="o">=</span><span class="n">optionflags</span><span class="p">,</span> <span class="n">setUp</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">tearDown</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
- <span class="n">checker</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
+ <span class="n">test</span><span class="p">,</span> <span class="n">optionflags</span><span class="o">=</span><span class="n">optionflags</span><span class="p">,</span> <span class="n">setUp</span><span class="o">=</span><span class="n">setUp</span><span class="p">,</span> <span class="n">tearDown</span><span class="o">=</span><span class="n">tearDown</span><span class="p">,</span>
+ <span class="n">checker</span><span class="o">=</span><span class="n">checker</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">address</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_nose_obj</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">return</span> <span class="n">test_address</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_nose_obj</span><span class="p">)</span>
- <span class="k">return</span> <span class="n">test_address</span><span class="p">(</span><span class="n">resolve_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_dt_test</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
+ <span class="n">obj</span> <span class="o">=</span> <span class="n">resolve_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_dt_test</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
+
+ <span class="k">if</span> <span class="n">isproperty</span><span class="p">(</span><span class="n">obj</span><span class="p">):</span>
+ <span class="c"># properties have no connection to the class they are in</span>
+ <span class="c"># so we can&#39;t just look &#39;em up, we have to first look up</span>
+ <span class="c"># the class, then stick the prop on the end</span>
+ <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_dt_test</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)</span>
+ <span class="n">class_name</span> <span class="o">=</span> <span class="s">&#39;.&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">[:</span><span class="o">-</span><span class="mf">1</span><span class="p">])</span>
+ <span class="n">cls</span> <span class="o">=</span> <span class="n">resolve_name</span><span class="p">(</span><span class="n">class_name</span><span class="p">)</span>
+ <span class="n">base_addr</span> <span class="o">=</span> <span class="n">test_address</span><span class="p">(</span><span class="n">cls</span><span class="p">)</span>
+ <span class="k">return</span> <span class="p">(</span><span class="n">base_addr</span><span class="p">[</span><span class="mf">0</span><span class="p">],</span> <span class="n">base_addr</span><span class="p">[</span><span class="mf">1</span><span class="p">],</span>
+ <span class="s">&#39;.&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">base_addr</span><span class="p">[</span><span class="mf">2</span><span class="p">],</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mf">1</span><span class="p">]]))</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">return</span> <span class="n">test_address</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
<span class="c"># doctests loaded via find(obj) omit the module name</span>
<span class="c"># so we need to override id, __repr__ and shortDescription</span>
@@ -274,7 +415,7 @@ makes it easier to write doctests that test test runs.</p>
<span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">id</span><span class="p">()</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)</span>
- <span class="k">return</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s">&#39;.&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">name</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span>
+ <span class="k">return</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">[</span><span class="o">-</span><span class="mf">1</span><span class="p">],</span> <span class="s">&#39;.&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">name</span><span class="p">[:</span><span class="o">-</span><span class="mf">1</span><span class="p">]))</span>
<span class="n">__str__</span> <span class="o">=</span> <span class="n">__repr__</span>
<span class="k">def</span> <span class="nf">shortDescription</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -295,7 +436,7 @@ makes it easier to write doctests that test test runs.</p>
<span class="k">import</span> <span class="nn">warnings</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s">&quot;run() has been moved to nose.plugins.plugintest. Please &quot;</span>
<span class="s">&quot;update your imports.&quot;</span><span class="p">,</span> <span class="n">category</span><span class="o">=</span><span class="ne">DeprecationWarning</span><span class="p">,</span>
- <span class="n">stacklevel</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
+ <span class="n">stacklevel</span><span class="o">=</span><span class="mf">2</span><span class="p">)</span>
<span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run</span>
<span class="n">run</span><span class="p">(</span><span class="o">*</span><span class="n">arg</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
</pre></div>
diff --git a/doc/plugin_exceptions.html b/doc/plugin_exceptions.html
index 9c43c86..30c0426 100644
--- a/doc/plugin_exceptions.html
+++ b/doc/plugin_exceptions.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -17,7 +17,7 @@
<p>Plugin methods should not fail silently. When a plugin method raises
an exception before or during the execution of a test, the exception
-will be wrapped in a <a class="reference" href="module_nose.case.html#Failure">nose.case.Failure</a> instance and appear as a
+will be wrapped in a <a class="reference" href="module_nose.failure.html#Failure">nose.failure.Failure</a> instance and appear as a
failing test. Exceptions raised at other times, such as in the
preparation phase with <tt class="docutils literal"><span class="pre">prepareTestLoader</span></tt> or <tt class="docutils literal"><span class="pre">prepareTestResult</span></tt>,
or after a test executes, in <tt class="docutils literal"><span class="pre">afterTest</span></tt> will stop the entire test
@@ -26,7 +26,7 @@ run.</p>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">import</span> <span class="nn">os</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">import</span> <span class="nn">sys</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins</span> <span class="k">import</span> <span class="n">Plugin</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run_buffered</span> <span class="k">as</span> <span class="n">run</span>
</pre></div>
</blockquote>
<p>Our first test plugins take no command-line arguments and raises
@@ -34,9 +34,9 @@ AttributeError in beforeTest and afterTest.</p>
<blockquote>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">EnabledPlugin</span><span class="p">(</span><span class="n">Plugin</span><span class="p">):</span>
<span class="gp">... </span> <span class="sd">&quot;&quot;&quot;Plugin that takes no command-line arguments&quot;&quot;&quot;</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="n">enabled</span> <span class="o">=</span> <span class="bp">True</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">pass</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="p">{}):</span>
@@ -44,13 +44,13 @@ AttributeError in beforeTest and afterTest.</p>
</pre></div>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">FailBeforePlugin</span><span class="p">(</span><span class="n">EnabledPlugin</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;fail-before&quot;</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">beforeTest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">()</span>
</pre></div>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">FailAfterPlugin</span><span class="p">(</span><span class="n">EnabledPlugin</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;fail-after&quot;</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">afterTest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">()</span>
</pre></div>
@@ -67,16 +67,14 @@ tests failing.</p>
<span class="go">======================================================================</span>
<span class="go">ERROR: test_spam.test_spam</span>
<span class="go">----------------------------------------------------------------------</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">AttributeError</span>
+<span class="gp">...</span>
+<span class="go">AttributeError</span>
<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">======================================================================</span>
<span class="go">ERROR: test_spam.test_eggs</span>
<span class="go">----------------------------------------------------------------------</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">AttributeError</span>
+<span class="gp">...</span>
+<span class="go">AttributeError</span>
<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 0 tests in ...s</span>
@@ -88,9 +86,8 @@ tests failing.</p>
<blockquote>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">run</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;nosetests&#39;</span><span class="p">,</span> <span class="n">suitepath</span><span class="p">],</span>
<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">FailAfterPlugin</span><span class="p">()])</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">AttributeError</span>
+<span class="gp">...</span>
+<span class="go">AttributeError</span>
</pre></div>
</blockquote>
<p>Likewise since the next plugin fails in a preparatory method, outside
@@ -98,15 +95,75 @@ of test execution, the entire test run fails when the plugin is used.</p>
<blockquote>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">FailPreparationPlugin</span><span class="p">(</span><span class="n">EnabledPlugin</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;fail-prepare&quot;</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">prepareTestLoader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">loader</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;That loader is not my type&quot;</span><span class="p">)</span>
</pre></div>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">run</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;nosetests&#39;</span><span class="p">,</span> <span class="n">suitepath</span><span class="p">],</span>
<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">FailPreparationPlugin</span><span class="p">()])</span>
-<span class="gt">Traceback (most recent call last):</span>
-<span class="c">...</span>
-<span class="nc">TypeError</span>: <span class="n-Identifier">That loader is not my type</span>
+<span class="gp">...</span>
+<span class="go">TypeError: That loader is not my type</span>
+</pre></div>
+</blockquote>
+<p>Even AttributeErrors and TypeErrors are not silently suppressed as
+they used to be for some generative plugin methods (issueXXX).</p>
+<p>These methods caught TypeError and AttributeError and did not record
+the exception, before issue152 was fixed: .loadTestsFromDir(),
+.loadTestsFromModule(), .loadTestsFromTestCase(),
+loadTestsFromTestClass, and .makeTest(). Now, the exception is
+caught, but logged as a Failure.</p>
+<blockquote>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">FailLoadPlugin</span><span class="p">(</span><span class="n">EnabledPlugin</span><span class="p">):</span>
+<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;fail-load&quot;</span>
+<span class="gp">...</span>
+<span class="gp">... </span> <span class="k">def</span> <span class="nf">loadTestsFromModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">):</span>
+<span class="gp">... </span> <span class="c"># we&#39;re testing exception handling behaviour during</span>
+<span class="gp">... </span> <span class="c"># iteration, so be a generator function, without</span>
+<span class="gp">... </span> <span class="c"># actually yielding any tests</span>
+<span class="gp">... </span> <span class="k">if</span> <span class="bp">False</span><span class="p">:</span>
+<span class="gp">... </span> <span class="k">yield</span> <span class="bp">None</span>
+<span class="gp">... </span> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;bug in plugin&quot;</span><span class="p">)</span>
+</pre></div>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">run</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;nosetests&#39;</span><span class="p">,</span> <span class="n">suitepath</span><span class="p">],</span>
+<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">FailLoadPlugin</span><span class="p">()])</span>
+<span class="go">..E</span>
+<span class="go">======================================================================</span>
+<span class="go">ERROR: Failure: TypeError (bug in plugin)</span>
+<span class="go">----------------------------------------------------------------------</span>
+<span class="gp">...</span>
+<span class="go">TypeError: bug in plugin</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
+<span class="go">----------------------------------------------------------------------</span>
+<span class="go">Ran 3 tests in ...s</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
+<span class="go">FAILED (errors=1)</span>
+</pre></div>
+</blockquote>
+<p>Also, before issue152 was resolved, .loadTestsFromFile() and
+.loadTestsFromName() didn't catch these errors at all, so the
+following test would crash nose:</p>
+<blockquote>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">FailLoadFromNamePlugin</span><span class="p">(</span><span class="n">EnabledPlugin</span><span class="p">):</span>
+<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;fail-load-from-name&quot;</span>
+<span class="gp">...</span>
+<span class="gp">... </span> <span class="k">def</span> <span class="nf">loadTestsFromName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">module</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">importPath</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
+<span class="gp">... </span> <span class="k">if</span> <span class="bp">False</span><span class="p">:</span>
+<span class="gp">... </span> <span class="k">yield</span> <span class="bp">None</span>
+<span class="gp">... </span> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;bug in plugin&quot;</span><span class="p">)</span>
+</pre></div>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">run</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;nosetests&#39;</span><span class="p">,</span> <span class="n">suitepath</span><span class="p">],</span>
+<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">FailLoadFromNamePlugin</span><span class="p">()])</span>
+<span class="go">E</span>
+<span class="go">======================================================================</span>
+<span class="go">ERROR: Failure: TypeError (bug in plugin)</span>
+<span class="go">----------------------------------------------------------------------</span>
+<span class="gp">...</span>
+<span class="go">TypeError: bug in plugin</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
+<span class="go">----------------------------------------------------------------------</span>
+<span class="go">Ran 1 test in ...s</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
+<span class="go">FAILED (errors=1)</span>
</pre></div>
</blockquote>
diff --git a/doc/plugin_failuredetail.html b/doc/plugin_failuredetail.html
index dddc147..cf75dd1 100644
--- a/doc/plugin_failuredetail.html
+++ b/doc/plugin_failuredetail.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -58,7 +58,7 @@ in the context output to provide more debugging information.</p>
<span class="sd"> traceback of the failure exception is examined and displayed with extra</span>
<span class="sd"> context around the line where the exception was raised.</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="n">score</span> <span class="o">=</span> <span class="mi">600</span> <span class="c"># before capture</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="mf">600</span> <span class="c"># before capture</span>
<span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span>
diff --git a/doc/plugin_interface.html b/doc/plugin_interface.html
index 88e4cd8..cb92a31 100644
--- a/doc/plugin_interface.html
+++ b/doc/plugin_interface.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
<h2>New methods</h2><ul><li><a href="#afterContext">afterContext</a></li><li><a href="#afterDirectory">afterDirectory</a></li><li><a href="#afterImport">afterImport</a></li><li><a href="#afterTest">afterTest</a></li><li><a href="#beforeContext">beforeContext</a></li><li><a href="#beforeDirectory">beforeDirectory</a></li><li><a href="#beforeImport">beforeImport</a></li><li><a href="#beforeTest">beforeTest</a></li><li><a href="#describeTest">describeTest</a></li><li><a href="#formatError">formatError</a></li><li><a href="#formatFailure">formatFailure</a></li><li><a href="#handleError">handleError</a></li><li><a href="#handleFailure">handleFailure</a></li><li><a href="#loadTestsFromDir">loadTestsFromDir</a></li><li><a href="#loadTestsFromFile">loadTestsFromFile</a></li><li><a href="#loadTestsFromNames">loadTestsFromNames</a></li><li><a href="#loadTestsFromTestClass">loadTestsFromTestClass</a></li><li><a href="#makeTest">makeTest</a></li><li><a href="#options">options</a></li><li><a href="#prepareTestCase">prepareTestCase</a></li><li><a href="#prepareTestLoader">prepareTestLoader</a></li><li><a href="#prepareTestResult">prepareTestResult</a></li><li><a href="#prepareTestRunner">prepareTestRunner</a></li><li><a href="#startContext">startContext</a></li><li><a href="#stopContext">stopContext</a></li><li><a href="#testName">testName</a></li></ul><h2>Changed methods</h2><ul><li><a href="#addError">addError</a></li><li><a href="#addFailure">addFailure</a></li><li><a href="#addSuccess">addSuccess</a></li></ul><h2>Deprecated methods</h2><ul><li><a href="#addDeprecated">addDeprecated</a></li><li><a href="#addOptions">addOptions</a></li><li><a href="#addSkip">addSkip</a></li><li><a href="#add_options">add_options</a></li><li><a href="#loadTestsFromPath">loadTestsFromPath</a></li><li><a href="#wantModuleTests">wantModuleTests</a></li></ul>
</div>
diff --git a/doc/plugin_isolate.html b/doc/plugin_isolate.html
index 00e16b6..0cc8aaf 100644
--- a/doc/plugin_isolate.html
+++ b/doc/plugin_isolate.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -121,7 +121,7 @@ the coverage plugin.</p>
<span class="sd"> plugin should not be used with the coverage plugin in any other case</span>
<span class="sd"> where module reloading may produce undesirable side-effects.</span>
<span class="sd"> &quot;&quot;&quot;</span>
- <span class="n">score</span> <span class="o">=</span> <span class="mi">10</span> <span class="c"># I want to be last</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="mf">10</span> <span class="c"># I want to be last</span>
<span class="n">name</span> <span class="o">=</span> <span class="s">&#39;isolation&#39;</span>
<span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">):</span>
@@ -152,7 +152,7 @@ the coverage plugin.</p>
<span class="sd"> fixtures will be set up and torn down around each test named.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c"># Fast path for when we don&#39;t care</span>
- <span class="k">if</span> <span class="ow">not</span> <span class="n">names</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">names</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">names</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">names</span><span class="p">)</span> <span class="o">==</span> <span class="mf">1</span><span class="p">:</span>
<span class="k">return</span>
<span class="n">loader</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">loader</span>
<span class="n">plugins</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">conf</span><span class="o">.</span><span class="n">plugins</span>
diff --git a/doc/plugin_multiprocess.html b/doc/plugin_multiprocess.html
new file mode 100644
index 0000000..36f7188
--- /dev/null
+++ b/doc/plugin_multiprocess.html
@@ -0,0 +1,599 @@
+<html>
+ <head>
+ <title>nose: builtin plugin: multiprocess</title>
+ <link rel="stylesheet" href="site.css" type="text/css"></link>
+ </head>
+ <body>
+
+ <div id="menu">
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ </div>
+
+ <div id="main">
+ <h1>nose: builtin plugin: multiprocess</h1>
+
+ <p>The multiprocess plugin enables you to distribute your test run among a set of
+worker processes that run tests in parallel. This can speed up CPU-bound test
+runs (as long as the number of work processeses is around the number of
+processors or cores available), but is mainly useful for IO-bound tests which
+can benefit from massive parallelization, since most of the tests spend most
+of their time waiting for data to arrive from someplace else.</p>
+<div class="section">
+<h1><a id="how-tests-are-distributed" name="how-tests-are-distributed">How tests are distributed</a></h1>
+<p>The ideal case would be to dispatch each test to a worker process
+separately. This ideal is not attainable in all cases, however, because many
+test suites depend on context (class, module or package) fixtures.</p>
+<p>The plugin can't know (unless you tell it -- see below!) whether a given
+context fixture is re-entrant (that is, can be called many times
+concurrently), or may be shared among tests running in different
+processes. Therefore, if a context has fixtures, the default behavior is to
+dispatch the entire suite to a worker as a unit.</p>
+<div class="section">
+<h2><a id="controlling-distribution" name="controlling-distribution">Controlling distribution</a></h2>
+<p>There are two context-level variables that you can use to control this default
+behavior.</p>
+<p>If a context's fixtures are re-entrant, set <cite>_multiprocess_can_split_ = True</cite>
+in the context, and the plugin will dispatch tests in suites bound to that
+context as if the context had no fixtures. This means that the fixtures will
+execute multiple times, typically once per test, and concurrently.</p>
+<p>If a context's fixtures may be shared by tests running in different processes
+-- for instance a package-level fixture that starts an external http server or
+initializes a shared database -- then set <cite>_multiprocess_shared_ = True</cite> in
+the context. Fixtures for contexts so marked will execute in the primary nose
+process, and tests in those contexts will be individually dispatched to run in
+parallel.</p>
+</div>
+</div>
+<div class="section">
+<h1><a id="how-results-are-collected-and-reported" name="how-results-are-collected-and-reported">How results are collected and reported</a></h1>
+<p>As each test or suite executes in a worker process, results (failures, errors,
+and specially handled exceptions like SkipTest) are collected in that
+process. When the test or suite is complete, the results are returned to the
+main nose process. There, any progress output (dots) is printed, and the
+results from the test or suite combined into a consolidated result
+set. Finally when results have been received for all dispatched tests, or all
+workers have died, the result summary is output as normal.</p>
+</div>
+<div class="section">
+<h1><a id="beware" name="beware">Beware!</a></h1>
+<p>Not all test suites will benefit from, or even operate correctly using, this
+plugin. If you don't have multiple processors, CPU-bound tests will run more
+slowly than otherwise, for instance. There are also some differences in plugin
+interactions and behaviors due to the way in which tests are dispatched and
+loaded. In general, test loading under the plugin operates as if it were
+always in directed mode, not discovered mode. For instance, doctests in test
+modules will always be found when using this plugin and the doctest plugin
+together.</p>
+<p>But most likely the biggest issue you will face is concurrency. Unless you
+have kept your tests as religiously pure unit tests, with no side-effects, no
+ordering issues, and no external dependencies, chances are you will experience
+odd, intermittent and unexplainable failures and errors when using this
+plugin. This doesn't necessarily mean the plugin is broken: it may mean that
+your test suite is not safe for concurrency.</p>
+</div>
+
+
+ <h2>Plugin Methods Implemented</h2>
+
+ <p>This plugin implements the following plugin interface methods:</p>
+
+ <ul><li><a href="plugin_interface.html#configure">configure</a></li><li><a href="plugin_interface.html#options">options</a></li><li><a href="plugin_interface.html#prepareTestLoader">prepareTestLoader</a></li><li><a href="plugin_interface.html#prepareTestRunner">prepareTestRunner</a></li></ul>
+
+
+ <h2>Commandline Options</h2>
+
+ <p>This plugin adds the following commandline options:</p>
+
+ <pre>Options:
+ --processes=MULTIPROCESS_WORKERS
+ Spread test run among this many processes. Set a
+ number equal to the number of processors or cores in
+ your machine for best results. [NOSE_PROCESSES]
+ --process-timeout=MULTIPROCESS_TIMEOUT
+ Set timeout for return of results from each test
+ runner process. [NOSE_PROCESS_TIMEOUT]
+</pre>
+
+ <h2>Source</h2>
+
+ <div class="highlight"><pre><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Mutltiprocess: parallel testing</span>
+<span class="sd">-------------------------------</span>
+
+<span class="sd">The multiprocess plugin enables you to distribute your test run among a set of</span>
+<span class="sd">worker processes that run tests in parallel. This can speed up CPU-bound test</span>
+<span class="sd">runs (as long as the number of work processeses is around the number of</span>
+<span class="sd">processors or cores available), but is mainly useful for IO-bound tests which</span>
+<span class="sd">can benefit from massive parallelization, since most of the tests spend most</span>
+<span class="sd">of their time waiting for data to arrive from someplace else.</span>
+
+<span class="sd">How tests are distributed</span>
+<span class="sd">=========================</span>
+
+<span class="sd">The ideal case would be to dispatch each test to a worker process</span>
+<span class="sd">separately. This ideal is not attainable in all cases, however, because many</span>
+<span class="sd">test suites depend on context (class, module or package) fixtures.</span>
+
+<span class="sd">The plugin can&#39;t know (unless you tell it -- see below!) whether a given</span>
+<span class="sd">context fixture is re-entrant (that is, can be called many times</span>
+<span class="sd">concurrently), or may be shared among tests running in different</span>
+<span class="sd">processes. Therefore, if a context has fixtures, the default behavior is to</span>
+<span class="sd">dispatch the entire suite to a worker as a unit.</span>
+
+<span class="sd">Controlling distribution</span>
+<span class="sd">^^^^^^^^^^^^^^^^^^^^^^^^</span>
+
+<span class="sd">There are two context-level variables that you can use to control this default</span>
+<span class="sd">behavior.</span>
+
+<span class="sd">If a context&#39;s fixtures are re-entrant, set `_multiprocess_can_split_ = True`</span>
+<span class="sd">in the context, and the plugin will dispatch tests in suites bound to that</span>
+<span class="sd">context as if the context had no fixtures. This means that the fixtures will</span>
+<span class="sd">execute multiple times, typically once per test, and concurrently.</span>
+
+<span class="sd">If a context&#39;s fixtures may be shared by tests running in different processes</span>
+<span class="sd">-- for instance a package-level fixture that starts an external http server or</span>
+<span class="sd">initializes a shared database -- then set `_multiprocess_shared_ = True` in</span>
+<span class="sd">the context. Fixtures for contexts so marked will execute in the primary nose</span>
+<span class="sd">process, and tests in those contexts will be individually dispatched to run in</span>
+<span class="sd">parallel.</span>
+
+<span class="sd">How results are collected and reported</span>
+<span class="sd">======================================</span>
+
+<span class="sd">As each test or suite executes in a worker process, results (failures, errors,</span>
+<span class="sd">and specially handled exceptions like SkipTest) are collected in that</span>
+<span class="sd">process. When the test or suite is complete, the results are returned to the</span>
+<span class="sd">main nose process. There, any progress output (dots) is printed, and the</span>
+<span class="sd">results from the test or suite combined into a consolidated result</span>
+<span class="sd">set. Finally when results have been received for all dispatched tests, or all</span>
+<span class="sd">workers have died, the result summary is output as normal.</span>
+
+<span class="sd">Beware!</span>
+<span class="sd">=======</span>
+
+<span class="sd">Not all test suites will benefit from, or even operate correctly using, this</span>
+<span class="sd">plugin. If you don&#39;t have multiple processors, CPU-bound tests will run more</span>
+<span class="sd">slowly than otherwise, for instance. There are also some differences in plugin</span>
+<span class="sd">interactions and behaviors due to the way in which tests are dispatched and</span>
+<span class="sd">loaded. In general, test loading under the plugin operates as if it were</span>
+<span class="sd">always in directed mode, not discovered mode. For instance, doctests in test</span>
+<span class="sd">modules will always be found when using this plugin and the doctest plugin</span>
+<span class="sd">together.</span>
+
+<span class="sd">But most likely the biggest issue you will face is concurrency. Unless you</span>
+<span class="sd">have kept your tests as religiously pure unit tests, with no side-effects, no</span>
+<span class="sd">ordering issues, and no external dependencies, chances are you will experience</span>
+<span class="sd">odd, intermittent and unexplainable failures and errors when using this</span>
+<span class="sd">plugin. This doesn&#39;t necessarily mean the plugin is broken: it may mean that</span>
+<span class="sd">your test suite is not safe for concurrency.</span>
+
+
+<span class="sd">&quot;&quot;&quot;</span>
+<span class="k">import</span> <span class="nn">logging</span>
+<span class="k">import</span> <span class="nn">os</span>
+<span class="k">import</span> <span class="nn">sys</span>
+<span class="k">import</span> <span class="nn">time</span>
+<span class="k">import</span> <span class="nn">traceback</span>
+<span class="k">import</span> <span class="nn">unittest</span>
+<span class="k">import</span> <span class="nn">nose.case</span>
+<span class="k">from</span> <span class="nn">nose.core</span> <span class="k">import</span> <span class="n">TextTestRunner</span>
+<span class="k">from</span> <span class="nn">nose</span> <span class="k">import</span> <span class="n">failure</span>
+<span class="k">from</span> <span class="nn">nose</span> <span class="k">import</span> <span class="n">loader</span>
+<span class="k">from</span> <span class="nn">nose.plugins.base</span> <span class="k">import</span> <span class="n">Plugin</span>
+<span class="k">from</span> <span class="nn">nose.result</span> <span class="k">import</span> <span class="n">TextTestResult</span>
+<span class="k">from</span> <span class="nn">nose.suite</span> <span class="k">import</span> <span class="n">ContextSuite</span>
+<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">test_address</span>
+<span class="k">from</span> <span class="nn">Queue</span> <span class="k">import</span> <span class="n">Empty</span>
+
+<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
+<span class="c"># debugging repeat log messages</span>
+<span class="c">#class FakeLog:</span>
+<span class="c"># def __init__(self, out=sys.stderr):</span>
+<span class="c"># self.out = out</span>
+<span class="c"># def debug(self, msg, *arg):</span>
+<span class="c"># print &gt;&gt; self.out, &quot;!&quot;, msg % arg</span>
+<span class="c">#log = FakeLog()</span>
+
+<span class="k">try</span><span class="p">:</span>
+ <span class="k">from</span> <span class="nn">processing</span> <span class="k">import</span> <span class="n">Process</span><span class="p">,</span> <span class="n">Queue</span><span class="p">,</span> <span class="n">Pool</span><span class="p">,</span> <span class="n">Event</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+ <span class="n">Process</span> <span class="o">=</span> <span class="n">Queue</span> <span class="o">=</span> <span class="n">Pool</span> <span class="o">=</span> <span class="n">Event</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;processing module not available&quot;</span><span class="p">)</span>
+<span class="k">try</span><span class="p">:</span>
+ <span class="k">from</span> <span class="nn">cStringIO</span> <span class="k">import</span> <span class="n">StringIO</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+ <span class="k">import</span> <span class="nn">StringIO</span>
+
+
+<span class="k">class</span> <span class="nc">TestLet</span><span class="p">:</span>
+ <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">case</span><span class="p">):</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">_id</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">id</span><span class="p">()</span>
+ <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+ <span class="k">pass</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">_short_description</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">shortDescription</span><span class="p">()</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">_str</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">case</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">id</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_id</span>
+
+ <span class="k">def</span> <span class="nf">shortDescription</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_short_description</span>
+
+ <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_str</span>
+
+
+<span class="k">class</span> <span class="nc">MultiProcess</span><span class="p">(</span><span class="n">Plugin</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Run tests in multiple processes. Requires processing module.</span>
+<span class="sd"> &quot;&quot;&quot;</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="mf">1000</span>
+
+ <span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
+ <span class="k">if</span> <span class="n">Process</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">can_configure</span> <span class="o">=</span> <span class="bp">False</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="bp">False</span>
+ <span class="k">return</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&quot;--processes&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&quot;store&quot;</span><span class="p">,</span>
+ <span class="n">default</span><span class="o">=</span><span class="n">env</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;NOSE_PROCESSES&#39;</span><span class="p">,</span> <span class="mf">0</span><span class="p">),</span>
+ <span class="n">dest</span><span class="o">=</span><span class="s">&quot;multiprocess_workers&quot;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s">&quot;Spread test run among this many processes. &quot;</span>
+ <span class="s">&quot;Set a number equal to the number of processors &quot;</span>
+ <span class="s">&quot;or cores in your machine for best results. &quot;</span>
+ <span class="s">&quot;[NOSE_PROCESSES]&quot;</span><span class="p">)</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&quot;--process-timeout&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&quot;store&quot;</span><span class="p">,</span>
+ <span class="n">default</span><span class="o">=</span><span class="n">env</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;NOSE_PROCESS_TIMEOUT&#39;</span><span class="p">,</span> <span class="mf">10</span><span class="p">),</span>
+ <span class="n">dest</span><span class="o">=</span><span class="s">&quot;multiprocess_timeout&quot;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s">&quot;Set timeout for return of results from each &quot;</span>
+ <span class="s">&quot;test runner process. [NOSE_PROCESS_TIMEOUT]&quot;</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="s">&#39;multiprocess_workers&#39;</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="bp">False</span>
+ <span class="k">return</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">config</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">workers</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">multiprocess_workers</span><span class="p">)</span>
+ <span class="k">except</span> <span class="p">(</span><span class="ne">TypeError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">):</span>
+ <span class="n">workers</span> <span class="o">=</span> <span class="mf">0</span>
+ <span class="k">if</span> <span class="n">workers</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="bp">True</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">multiprocess_workers</span> <span class="o">=</span> <span class="n">workers</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">multiprocess_timeout</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">multiprocess_timeout</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">prepareTestLoader</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">loader</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loaderClass</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">__class__</span>
+
+ <span class="k">def</span> <span class="nf">prepareTestRunner</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
+ <span class="c"># replace with our runner class</span>
+ <span class="k">return</span> <span class="n">MultiProcessTestRunner</span><span class="p">(</span><span class="n">stream</span><span class="o">=</span><span class="n">runner</span><span class="o">.</span><span class="n">stream</span><span class="p">,</span>
+ <span class="n">verbosity</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span>
+ <span class="n">config</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span>
+ <span class="n">loaderClass</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">loaderClass</span><span class="p">)</span>
+
+
+<span class="k">class</span> <span class="nc">MultiProcessTestRunner</span><span class="p">(</span><span class="n">TextTestRunner</span><span class="p">):</span>
+
+ <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loaderClass</span> <span class="o">=</span> <span class="n">kw</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;loaderClass&#39;</span><span class="p">,</span> <span class="n">loader</span><span class="o">.</span><span class="n">defaultTestLoader</span><span class="p">)</span>
+ <span class="nb">super</span><span class="p">(</span><span class="n">MultiProcessTestRunner</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kw</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Execute the test (which may be a test suite). If the test is a suite,</span>
+<span class="sd"> distribute it out among as many processes as have been configured, at</span>
+<span class="sd"> as fine a level as is possible given the context fixtures defined in the</span>
+<span class="sd"> suite or any sub-suites.</span>
+
+<span class="sd"> &quot;&quot;&quot;</span>
+ <span class="n">wrapper</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">plugins</span><span class="o">.</span><span class="n">prepareTest</span><span class="p">(</span><span class="n">test</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">wrapper</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="n">test</span> <span class="o">=</span> <span class="n">wrapper</span>
+
+ <span class="c"># plugins can decorate or capture the output stream</span>
+ <span class="n">wrapped</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">plugins</span><span class="o">.</span><span class="n">setOutputStream</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">wrapped</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">stream</span> <span class="o">=</span> <span class="n">wrapped</span>
+
+ <span class="n">testQueue</span> <span class="o">=</span> <span class="n">Queue</span><span class="p">()</span>
+ <span class="n">resultQueue</span> <span class="o">=</span> <span class="n">Queue</span><span class="p">()</span>
+ <span class="n">tasks</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="n">completed</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="n">workers</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">to_teardown</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">shouldStop</span> <span class="o">=</span> <span class="n">Event</span><span class="p">()</span>
+
+ <span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_makeResult</span><span class="p">()</span>
+ <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+
+ <span class="c"># dispatch and collect results</span>
+ <span class="c"># put indexes only on queue because tests aren&#39;t picklable</span>
+ <span class="k">for</span> <span class="n">case</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">next_batch</span><span class="p">(</span><span class="n">test</span><span class="p">):</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Next batch </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&quot;</span><span class="p">,</span> <span class="n">case</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">case</span><span class="p">))</span>
+ <span class="k">if</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="n">nose</span><span class="o">.</span><span class="n">case</span><span class="o">.</span><span class="n">Test</span><span class="p">)</span> <span class="ow">and</span>
+ <span class="nb">isinstance</span><span class="p">(</span><span class="n">case</span><span class="o">.</span><span class="n">test</span><span class="p">,</span> <span class="n">failure</span><span class="o">.</span><span class="n">Failure</span><span class="p">)):</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Case is a Failure&quot;</span><span class="p">)</span>
+ <span class="n">case</span><span class="p">(</span><span class="n">result</span><span class="p">)</span> <span class="c"># run here to capture the failure</span>
+ <span class="k">continue</span>
+ <span class="c"># handle shared fixtures</span>
+ <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="n">ContextSuite</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">sharedFixtures</span><span class="p">(</span><span class="n">case</span><span class="p">):</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> has shared fixtures&quot;</span><span class="p">,</span> <span class="n">case</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">case</span><span class="o">.</span><span class="n">setUp</span><span class="p">()</span>
+ <span class="k">except</span> <span class="p">(</span><span class="ne">KeyboardInterrupt</span><span class="p">,</span> <span class="ne">SystemExit</span><span class="p">):</span>
+ <span class="k">raise</span>
+ <span class="k">except</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="s"> setup failed&quot;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">())</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">addError</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">())</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">to_teardown</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">case</span><span class="p">)</span>
+ <span class="k">for</span> <span class="n">_t</span> <span class="ow">in</span> <span class="n">case</span><span class="p">:</span>
+ <span class="n">test_addr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">address</span><span class="p">(</span><span class="n">_t</span><span class="p">)</span>
+ <span class="n">testQueue</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">test_addr</span><span class="p">,</span> <span class="n">block</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+ <span class="n">tasks</span><span class="p">[</span><span class="n">test_addr</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Queued shared-fixture test </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">) to </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span>
+ <span class="nb">len</span><span class="p">(</span><span class="n">tasks</span><span class="p">),</span> <span class="n">test_addr</span><span class="p">,</span> <span class="n">testQueue</span><span class="p">)</span>
+
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">test_addr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">address</span><span class="p">(</span><span class="n">case</span><span class="p">)</span>
+ <span class="n">testQueue</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">test_addr</span><span class="p">,</span> <span class="n">block</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+ <span class="n">tasks</span><span class="p">[</span><span class="n">test_addr</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Queued test </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">) to </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span>
+ <span class="nb">len</span><span class="p">(</span><span class="n">tasks</span><span class="p">),</span> <span class="n">test_addr</span><span class="p">,</span> <span class="n">testQueue</span><span class="p">)</span>
+
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Starting </span><span class="si">%s</span><span class="s"> workers&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">multiprocess_workers</span><span class="p">)</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">multiprocess_workers</span><span class="p">):</span>
+ <span class="n">p</span> <span class="o">=</span> <span class="n">Process</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">runner</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="p">(</span><span class="n">i</span><span class="p">,</span>
+ <span class="n">testQueue</span><span class="p">,</span>
+ <span class="n">resultQueue</span><span class="p">,</span>
+ <span class="n">shouldStop</span><span class="p">,</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">loaderClass</span><span class="p">,</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">__class__</span><span class="p">,</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">))</span>
+ <span class="n">p</span><span class="o">.</span><span class="n">setDaemon</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
+ <span class="n">p</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
+ <span class="n">workers</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Started worker process </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">i</span><span class="o">+</span><span class="mf">1</span><span class="p">)</span>
+
+ <span class="n">num_tasks</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">tasks</span><span class="p">)</span>
+ <span class="k">while</span> <span class="n">tasks</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Waiting for results (</span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s"> tasks)&quot;</span><span class="p">,</span>
+ <span class="nb">len</span><span class="p">(</span><span class="n">completed</span><span class="p">),</span> <span class="n">num_tasks</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">addr</span><span class="p">,</span> <span class="n">batch_result</span> <span class="o">=</span> <span class="n">resultQueue</span><span class="o">.</span><span class="n">get</span><span class="p">(</span>
+ <span class="n">timeout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">multiprocess_timeout</span><span class="p">)</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Results received for </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">addr</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">tasks</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">addr</span><span class="p">)</span>
+ <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Got result for unknown task? </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">addr</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">completed</span><span class="p">[</span><span class="n">addr</span><span class="p">]</span> <span class="o">=</span> <span class="n">batch_result</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">consolidate</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">batch_result</span><span class="p">)</span>
+ <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">stopOnError</span>
+ <span class="ow">and</span> <span class="ow">not</span> <span class="n">result</span><span class="o">.</span><span class="n">wasSuccessful</span><span class="p">()):</span>
+ <span class="c"># set the stop condition</span>
+ <span class="n">shouldStop</span><span class="o">.</span><span class="n">set</span><span class="p">()</span>
+ <span class="k">break</span>
+ <span class="k">except</span> <span class="n">Empty</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Timed out with </span><span class="si">%s</span><span class="s"> tasks pending&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">tasks</span><span class="p">))</span>
+ <span class="n">any_alive</span> <span class="o">=</span> <span class="bp">False</span>
+ <span class="k">for</span> <span class="n">w</span> <span class="ow">in</span> <span class="n">workers</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">w</span><span class="o">.</span><span class="n">isAlive</span><span class="p">():</span>
+ <span class="n">any_alive</span> <span class="o">=</span> <span class="bp">True</span>
+ <span class="k">break</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">any_alive</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;All workers dead&quot;</span><span class="p">)</span>
+ <span class="k">break</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Completed </span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s"> tasks (</span><span class="si">%s</span><span class="s"> remain)&quot;</span><span class="p">,</span>
+ <span class="nb">len</span><span class="p">(</span><span class="n">completed</span><span class="p">),</span> <span class="n">num_tasks</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">tasks</span><span class="p">))</span>
+
+ <span class="k">for</span> <span class="n">case</span> <span class="ow">in</span> <span class="n">to_teardown</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Tearing down shared fixtures for </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">case</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">case</span><span class="o">.</span><span class="n">tearDown</span><span class="p">()</span>
+ <span class="k">except</span> <span class="p">(</span><span class="ne">KeyboardInterrupt</span><span class="p">,</span> <span class="ne">SystemExit</span><span class="p">):</span>
+ <span class="k">raise</span>
+ <span class="k">except</span><span class="p">:</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">addError</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">())</span>
+
+ <span class="n">stop</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+
+ <span class="n">result</span><span class="o">.</span><span class="n">printErrors</span><span class="p">()</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">printSummary</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">stop</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">plugins</span><span class="o">.</span><span class="n">finalize</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
+
+ <span class="c"># Tell all workers to stop</span>
+ <span class="k">for</span> <span class="n">w</span> <span class="ow">in</span> <span class="n">workers</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">w</span><span class="o">.</span><span class="n">isAlive</span><span class="p">():</span>
+ <span class="n">testQueue</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="s">&#39;STOP&#39;</span><span class="p">,</span> <span class="n">block</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">result</span>
+
+ <span class="k">def</span> <span class="nf">address</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">case</span><span class="p">):</span>
+ <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="s">&#39;address&#39;</span><span class="p">):</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="nb">file</span><span class="p">,</span> <span class="n">mod</span><span class="p">,</span> <span class="n">call</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">address</span><span class="p">()</span>
+ <span class="k">except</span><span class="p">:</span>
+ <span class="k">import</span> <span class="nn">sys</span>
+ <span class="k">import</span> <span class="nn">pdb</span>
+ <span class="n">ec</span><span class="p">,</span> <span class="n">ev</span><span class="p">,</span> <span class="n">tb</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
+ <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">__stdout__</span>
+ <span class="n">pdb</span><span class="o">.</span><span class="n">post_mortem</span><span class="p">(</span><span class="n">tb</span><span class="p">)</span>
+ <span class="k">raise</span>
+ <span class="k">elif</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="s">&#39;context&#39;</span><span class="p">):</span>
+ <span class="nb">file</span><span class="p">,</span> <span class="n">mod</span><span class="p">,</span> <span class="n">call</span> <span class="o">=</span> <span class="n">test_address</span><span class="p">(</span><span class="n">case</span><span class="o">.</span><span class="n">context</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">&quot;Unable to convert </span><span class="si">%s</span><span class="s"> to address&quot;</span> <span class="o">%</span> <span class="n">case</span><span class="p">)</span>
+ <span class="n">parts</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="k">if</span> <span class="nb">file</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">mod</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">&quot;Unaddressable case </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">case</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mod</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">file</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">call</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">call</span><span class="p">)</span>
+ <span class="k">return</span> <span class="s">&#39;:&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">parts</span><span class="p">))</span>
+
+ <span class="c"># FIXME camel for consistency</span>
+ <span class="k">def</span> <span class="nf">next_batch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
+ <span class="c"># allows tests or suites to mark themselves as not safe</span>
+ <span class="c"># for multiprocess execution</span>
+ <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">test</span><span class="p">,</span> <span class="s">&#39;context&#39;</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">test</span><span class="o">.</span><span class="n">context</span><span class="p">,</span> <span class="s">&#39;_multiprocess_&#39;</span><span class="p">,</span> <span class="bp">True</span><span class="p">):</span>
+ <span class="k">return</span>
+
+ <span class="k">if</span> <span class="p">((</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">test</span><span class="p">,</span> <span class="n">ContextSuite</span><span class="p">)</span>
+ <span class="ow">and</span> <span class="n">test</span><span class="o">.</span><span class="n">hasFixtures</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">check_can_split</span><span class="p">))</span>
+ <span class="ow">or</span> <span class="ow">not</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">test</span><span class="p">,</span> <span class="s">&#39;can_split&#39;</span><span class="p">,</span> <span class="bp">True</span><span class="p">)</span>
+ <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">test</span><span class="p">,</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">)):</span>
+ <span class="c"># regular test case, or a suite with context fixtures</span>
+ <span class="c"># either way we&#39;ve hit something we can ask a worker</span>
+ <span class="c"># to run</span>
+ <span class="k">yield</span> <span class="n">test</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="c"># Suite is without fixtures at this level; but it may have</span>
+ <span class="c"># fixtures at any deeper level, so we need to examine it all</span>
+ <span class="c"># the way down to the case level</span>
+ <span class="k">for</span> <span class="n">case</span> <span class="ow">in</span> <span class="n">test</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">batch</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">next_batch</span><span class="p">(</span><span class="n">case</span><span class="p">):</span>
+ <span class="k">yield</span> <span class="n">batch</span>
+
+ <span class="c"># FIXME camel for consistency</span>
+ <span class="k">def</span> <span class="nf">check_can_split</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">fixt</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Callback that we use to check whether the fixtures found in a</span>
+<span class="sd"> context or ancestor are ones we care about.</span>
+
+<span class="sd"> Contexts can tell us that their fixtures are reentrant by setting</span>
+<span class="sd"> _multiprocess_can_split_. So if we see that, we return False to</span>
+<span class="sd"> disregard those fixtures.</span>
+<span class="sd"> &quot;&quot;&quot;</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">fixt</span><span class="p">:</span>
+ <span class="k">return</span> <span class="bp">False</span>
+ <span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s">&#39;_multiprocess_can_split_&#39;</span><span class="p">,</span> <span class="bp">False</span><span class="p">):</span>
+ <span class="k">return</span> <span class="bp">False</span>
+ <span class="k">return</span> <span class="bp">True</span>
+
+ <span class="k">def</span> <span class="nf">sharedFixtures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">case</span><span class="p">):</span>
+ <span class="n">context</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">case</span><span class="p">,</span> <span class="s">&#39;context&#39;</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">context</span><span class="p">:</span>
+ <span class="k">return</span> <span class="bp">False</span>
+ <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s">&#39;_multiprocess_shared_&#39;</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">consolidate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">,</span> <span class="n">batch_result</span><span class="p">):</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;batch result is </span><span class="si">%s</span><span class="s">&quot;</span> <span class="p">,</span> <span class="n">batch_result</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">output</span><span class="p">,</span> <span class="n">testsRun</span><span class="p">,</span> <span class="n">failures</span><span class="p">,</span> <span class="n">errors</span><span class="p">,</span> <span class="n">errorClasses</span> <span class="o">=</span> <span class="n">batch_result</span>
+ <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;result in unexpected format </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">batch_result</span><span class="p">)</span>
+ <span class="n">failure</span><span class="o">.</span><span class="n">Failure</span><span class="p">(</span><span class="o">*</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">())(</span><span class="n">result</span><span class="p">)</span>
+ <span class="k">return</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">testsRun</span> <span class="o">+=</span> <span class="n">testsRun</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">failures</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">failures</span><span class="p">)</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">errors</span><span class="p">)</span>
+ <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="p">(</span><span class="n">storage</span><span class="p">,</span> <span class="n">label</span><span class="p">,</span> <span class="n">isfail</span><span class="p">)</span> <span class="ow">in</span> <span class="n">errorClasses</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">errorClasses</span><span class="p">:</span>
+ <span class="c"># Ordinarily storage is result attribute</span>
+ <span class="c"># but it&#39;s only processed through the errorClasses</span>
+ <span class="c"># dict, so it&#39;s ok to fake it here</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">errorClasses</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">([],</span> <span class="n">label</span><span class="p">,</span> <span class="n">isfail</span><span class="p">)</span>
+ <span class="n">mystorage</span><span class="p">,</span> <span class="n">_junk</span><span class="p">,</span> <span class="n">_junk</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">errorClasses</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+ <span class="n">mystorage</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">storage</span><span class="p">)</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Ran </span><span class="si">%s</span><span class="s"> tests (</span><span class="si">%s</span><span class="s">)&quot;</span><span class="p">,</span> <span class="n">testsRun</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">testsRun</span><span class="p">)</span>
+
+
+<span class="k">def</span> <span class="nf">runner</span><span class="p">(</span><span class="n">ix</span><span class="p">,</span> <span class="n">testQueue</span><span class="p">,</span> <span class="n">resultQueue</span><span class="p">,</span> <span class="n">shouldStop</span><span class="p">,</span>
+ <span class="n">loaderClass</span><span class="p">,</span> <span class="n">resultClass</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Worker </span><span class="si">%s</span><span class="s"> executing&quot;</span><span class="p">,</span> <span class="n">ix</span><span class="p">)</span>
+ <span class="n">loader</span> <span class="o">=</span> <span class="n">loaderClass</span><span class="p">(</span><span class="n">config</span><span class="o">=</span><span class="n">config</span><span class="p">)</span>
+ <span class="n">loader</span><span class="o">.</span><span class="n">suiteClass</span><span class="o">.</span><span class="n">suiteClass</span> <span class="o">=</span> <span class="n">NoSharedFixtureContextSuite</span>
+
+ <span class="k">def</span> <span class="nf">get</span><span class="p">():</span>
+ <span class="n">case</span> <span class="o">=</span> <span class="n">testQueue</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">multiprocess_timeout</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">case</span>
+
+ <span class="k">def</span> <span class="nf">makeResult</span><span class="p">():</span>
+ <span class="n">stream</span> <span class="o">=</span> <span class="n">unittest</span><span class="o">.</span><span class="n">_WritelnDecorator</span><span class="p">(</span><span class="n">StringIO</span><span class="p">())</span>
+ <span class="k">return</span> <span class="n">resultClass</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">descriptions</span><span class="o">=</span><span class="mf">1</span><span class="p">,</span>
+ <span class="n">verbosity</span><span class="o">=</span><span class="n">config</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span>
+ <span class="n">config</span><span class="o">=</span><span class="n">config</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">batch</span><span class="p">(</span><span class="n">result</span><span class="p">):</span>
+ <span class="n">failures</span> <span class="o">=</span> <span class="p">[(</span><span class="n">TestLet</span><span class="p">(</span><span class="n">c</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span><span class="p">,</span> <span class="n">err</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">failures</span><span class="p">]</span>
+ <span class="n">errors</span> <span class="o">=</span> <span class="p">[(</span><span class="n">TestLet</span><span class="p">(</span><span class="n">c</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span><span class="p">,</span> <span class="n">err</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">errors</span><span class="p">]</span>
+ <span class="n">errorClasses</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="p">(</span><span class="n">storage</span><span class="p">,</span> <span class="n">label</span><span class="p">,</span> <span class="n">isfail</span><span class="p">)</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">errorClasses</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="n">errorClasses</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="p">([(</span><span class="n">TestLet</span><span class="p">(</span><span class="n">c</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">storage</span><span class="p">],</span>
+ <span class="n">label</span><span class="p">,</span> <span class="n">isfail</span><span class="p">)</span>
+ <span class="k">return</span> <span class="p">(</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">getvalue</span><span class="p">(),</span>
+ <span class="n">result</span><span class="o">.</span><span class="n">testsRun</span><span class="p">,</span>
+ <span class="n">failures</span><span class="p">,</span>
+ <span class="n">errors</span><span class="p">,</span>
+ <span class="n">errorClasses</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">test_addr</span> <span class="ow">in</span> <span class="nb">iter</span><span class="p">(</span><span class="n">get</span><span class="p">,</span> <span class="s">&#39;STOP&#39;</span><span class="p">):</span>
+ <span class="k">if</span> <span class="n">shouldStop</span><span class="o">.</span><span class="n">isSet</span><span class="p">():</span>
+ <span class="k">break</span>
+ <span class="n">result</span> <span class="o">=</span> <span class="n">makeResult</span><span class="p">()</span>
+ <span class="n">test</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">loadTestsFromNames</span><span class="p">([</span><span class="n">test_addr</span><span class="p">])</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Worker </span><span class="si">%s</span><span class="s"> Test is </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&quot;</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="n">test_addr</span><span class="p">,</span> <span class="n">test</span><span class="p">)</span>
+
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">test</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
+ <span class="n">resultQueue</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="n">test_addr</span><span class="p">,</span> <span class="n">batch</span><span class="p">(</span><span class="n">result</span><span class="p">)))</span>
+ <span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span class="p">,</span> <span class="ne">SystemExit</span><span class="p">:</span>
+ <span class="k">raise</span>
+ <span class="k">except</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="s">&quot;Error running test or returning results&quot;</span><span class="p">)</span>
+ <span class="n">failure</span><span class="o">.</span><span class="n">Failure</span><span class="p">(</span><span class="o">*</span><span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">())(</span><span class="n">result</span><span class="p">)</span>
+ <span class="n">resultQueue</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="n">test_addr</span><span class="p">,</span> <span class="n">batch</span><span class="p">(</span><span class="n">result</span><span class="p">)))</span>
+ <span class="k">except</span> <span class="n">Empty</span><span class="p">:</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Worker </span><span class="si">%s</span><span class="s"> timed out waiting for tasks&quot;</span><span class="p">,</span> <span class="n">ix</span><span class="p">)</span>
+ <span class="k">finally</span><span class="p">:</span>
+ <span class="n">resultQueue</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Worker </span><span class="si">%s</span><span class="s"> ending&quot;</span><span class="p">,</span> <span class="n">ix</span><span class="p">)</span>
+
+
+<span class="k">class</span> <span class="nc">NoSharedFixtureContextSuite</span><span class="p">(</span><span class="n">ContextSuite</span><span class="p">):</span>
+ <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd"> Context suite that never fires shared fixtures.</span>
+
+<span class="sd"> When a context sets _multiprocess_shared_, fixtures in that context</span>
+<span class="sd"> are executed by the main process. Using this suite class prevents them</span>
+<span class="sd"> from executing in the runner process as well.</span>
+<span class="sd"> </span>
+<span class="sd"> &quot;&quot;&quot;</span>
+
+ <span class="k">def</span> <span class="nf">setupContext</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+ <span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s">&#39;_multiprocess_shared_&#39;</span><span class="p">,</span> <span class="bp">False</span><span class="p">):</span>
+ <span class="k">return</span>
+ <span class="nb">super</span><span class="p">(</span><span class="n">NoSharedFixtureContextSuite</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">setupContext</span><span class="p">(</span><span class="n">context</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">teardownContext</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
+ <span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s">&#39;_multiprocess_shared_&#39;</span><span class="p">,</span> <span class="bp">False</span><span class="p">):</span>
+ <span class="k">return</span>
+ <span class="nb">super</span><span class="p">(</span><span class="n">NoSharedFixtureContextSuite</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">teardownContext</span><span class="p">(</span><span class="n">context</span><span class="p">)</span>
+</pre></div>
+
+
+ </div>
+ <script src="http://www.google-analytics.com/urchin.js"
+ type="text/javascript">
+ </script>
+ <script type="text/javascript">
+ _uacct = "UA-2236166-1";
+ urchinTracker();
+ </script>
+ </body>
+</html>
+
diff --git a/doc/plugin_prof.html b/doc/plugin_prof.html
index a77462d..d5b4690 100644
--- a/doc/plugin_prof.html
+++ b/doc/plugin_prof.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -57,7 +57,11 @@ more details on the various output options.</p>
<span class="sd">more details on the various output options.</span>
<span class="sd">&quot;&quot;&quot;</span>
-<span class="k">import</span> <span class="nn">hotshot</span><span class="o">,</span> <span class="nn">hotshot.stats</span>
+<span class="k">try</span><span class="p">:</span>
+ <span class="k">import</span> <span class="nn">hotshot</span>
+ <span class="k">from</span> <span class="nn">hotshot</span> <span class="k">import</span> <span class="n">stats</span>
+<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
+ <span class="n">hotshot</span><span class="p">,</span> <span class="n">stats</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">None</span>
<span class="k">import</span> <span class="nn">logging</span>
<span class="k">import</span> <span class="nn">os</span>
<span class="k">import</span> <span class="nn">sys</span>
@@ -74,6 +78,8 @@ more details on the various output options.</p>
<span class="n">pfile</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">clean_stats_file</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">available</span><span class="p">():</span>
+ <span class="k">return</span>
<span class="n">Plugin</span><span class="o">.</span><span class="n">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;--profile-sort&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store&#39;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">&#39;profile_sort&#39;</span><span class="p">,</span>
<span class="n">default</span><span class="o">=</span><span class="n">env</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;NOSE_PROFILE_SORT&#39;</span><span class="p">,</span> <span class="s">&#39;cumulative&#39;</span><span class="p">),</span>
@@ -88,16 +94,23 @@ more details on the various output options.</p>
<span class="n">default</span><span class="o">=</span><span class="n">env</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;NOSE_PROFILE_RESTRICT&#39;</span><span class="p">),</span>
<span class="n">help</span><span class="o">=</span><span class="s">&quot;Restrict profiler output. See help for &quot;</span>
<span class="s">&quot;pstats.Stats for details&quot;</span><span class="p">)</span>
-
+
+ <span class="k">def</span> <span class="nf">available</span><span class="p">(</span><span class="n">cls</span><span class="p">):</span>
+ <span class="k">return</span> <span class="n">hotshot</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span>
+ <span class="n">available</span> <span class="o">=</span> <span class="nb">classmethod</span><span class="p">(</span><span class="n">available</span><span class="p">)</span>
+
<span class="k">def</span> <span class="nf">begin</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">available</span><span class="p">():</span>
+ <span class="k">return</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_create_pfile</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">prof</span> <span class="o">=</span> <span class="n">hotshot</span><span class="o">.</span><span class="n">Profile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pfile</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">available</span><span class="p">():</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span> <span class="o">=</span> <span class="bp">False</span>
+ <span class="k">return</span>
<span class="n">Plugin</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="o">=</span> <span class="n">options</span>
<span class="bp">self</span><span class="o">.</span><span class="n">conf</span> <span class="o">=</span> <span class="n">conf</span>
-
<span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">profile_stats_file</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pfile</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">profile_stats_file</span>
<span class="bp">self</span><span class="o">.</span><span class="n">clean_stats_file</span> <span class="o">=</span> <span class="bp">False</span>
@@ -109,6 +122,8 @@ more details on the various output options.</p>
<span class="bp">self</span><span class="o">.</span><span class="n">restrict</span> <span class="o">=</span> <span class="n">tolist</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">profile_restrict</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">prepareTest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">available</span><span class="p">():</span>
+ <span class="k">return</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;preparing test </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">test</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">run_and_profile</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">prof</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">prof</span><span class="p">,</span> <span class="n">test</span><span class="o">=</span><span class="n">test</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_create_pfile</span><span class="p">()</span>
@@ -118,15 +133,15 @@ more details on the various output options.</p>
<span class="k">def</span> <span class="nf">report</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;printing profiler report&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">prof</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
- <span class="n">stats</span> <span class="o">=</span> <span class="n">hotshot</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pfile</span><span class="p">)</span>
- <span class="n">stats</span><span class="o">.</span><span class="n">sort_stats</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">)</span>
+ <span class="n">prof_stats</span> <span class="o">=</span> <span class="n">stats</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pfile</span><span class="p">)</span>
+ <span class="n">prof_stats</span><span class="o">.</span><span class="n">sort_stats</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">)</span>
<span class="c"># 2.5 has completely different stream handling from 2.4 and earlier.</span>
<span class="c"># Before 2.5, stats objects have no stream attribute; in 2.5 and later</span>
<span class="c"># a reference sys.stdout is stored before we can tweak it.</span>
<span class="n">compat_25</span> <span class="o">=</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">stats</span><span class="p">,</span> <span class="s">&#39;stream&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">compat_25</span><span class="p">:</span>
- <span class="n">tmp</span> <span class="o">=</span> <span class="n">stats</span><span class="o">.</span><span class="n">stream</span>
+ <span class="n">tmp</span> <span class="o">=</span> <span class="n">prof_stats</span><span class="o">.</span><span class="n">stream</span>
<span class="n">stats</span><span class="o">.</span><span class="n">stream</span> <span class="o">=</span> <span class="n">stream</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span>
@@ -134,9 +149,9 @@ more details on the various output options.</p>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">restrict</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;setting profiler restriction to </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">restrict</span><span class="p">)</span>
- <span class="n">stats</span><span class="o">.</span><span class="n">print_stats</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">restrict</span><span class="p">)</span>
+ <span class="n">prof_stats</span><span class="o">.</span><span class="n">print_stats</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">restrict</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
- <span class="n">stats</span><span class="o">.</span><span class="n">print_stats</span><span class="p">()</span>
+ <span class="n">prof_stats</span><span class="o">.</span><span class="n">print_stats</span><span class="p">()</span>
<span class="k">finally</span><span class="p">:</span>
<span class="k">if</span> <span class="n">compat_25</span><span class="p">:</span>
<span class="n">stats</span><span class="o">.</span><span class="n">stream</span> <span class="o">=</span> <span class="n">tmp</span>
@@ -144,9 +159,14 @@ more details on the various output options.</p>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">tmp</span>
<span class="k">def</span> <span class="nf">finalize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">available</span><span class="p">():</span>
+ <span class="k">return</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">prof</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
+ <span class="c"># TODO: is this trying to catch just the case where not</span>
+ <span class="c"># hasattr(self.prof, &quot;close&quot;)? If so, the function call should be</span>
+ <span class="c"># moved out of the try: suite.</span>
<span class="k">pass</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">clean_stats_file</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fileno</span><span class="p">:</span>
diff --git a/doc/plugin_skip.html b/doc/plugin_skip.html
index 7059c70..e5ec568 100644
--- a/doc/plugin_skip.html
+++ b/doc/plugin_skip.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
diff --git a/doc/plugin_testid.html b/doc/plugin_testid.html
index 72107e3..0edf32a 100644
--- a/doc/plugin_testid.html
+++ b/doc/plugin_testid.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
<div id="main">
@@ -110,6 +110,7 @@ specifying a test id.</p>
<span class="k">import</span> <span class="nn">logging</span>
<span class="k">import</span> <span class="nn">os</span>
<span class="k">from</span> <span class="nn">nose.plugins</span> <span class="k">import</span> <span class="n">Plugin</span>
+<span class="k">from</span> <span class="nn">nose.util</span> <span class="k">import</span> <span class="n">src</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">from</span> <span class="nn">cPickle</span> <span class="k">import</span> <span class="n">dump</span><span class="p">,</span> <span class="n">load</span>
@@ -142,7 +143,7 @@ specifying a test id.</p>
<span class="bp">self</span><span class="o">.</span><span class="n">idfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="n">options</span><span class="o">.</span><span class="n">testIdFile</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">idfile</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">idfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">conf</span><span class="o">.</span><span class="n">workingDir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">idfile</span><span class="p">)</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mi">1</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="mf">1</span>
<span class="c"># Ids and tests are mirror images: ids are {id: test address} and</span>
<span class="c"># tests are {test address: id}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ids</span> <span class="o">=</span> <span class="p">{}</span>
@@ -187,9 +188,7 @@ specifying a test id.</p>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;Make name </span><span class="si">%s</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">addr</span><span class="p">)</span>
<span class="n">filename</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">call</span> <span class="o">=</span> <span class="n">addr</span>
<span class="k">if</span> <span class="n">filename</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
- <span class="k">if</span> <span class="n">filename</span><span class="p">[</span><span class="o">-</span><span class="mi">4</span><span class="p">:]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">&#39;.pyc&#39;</span><span class="p">,</span> <span class="s">&#39;.pyo&#39;</span><span class="p">):</span>
- <span class="n">filename</span> <span class="o">=</span> <span class="n">filename</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
- <span class="n">head</span> <span class="o">=</span> <span class="n">filename</span>
+ <span class="n">head</span> <span class="o">=</span> <span class="n">src</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">head</span> <span class="o">=</span> <span class="n">module</span>
<span class="k">if</span> <span class="n">call</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
@@ -201,16 +200,17 @@ specifying a test id.</p>
<span class="k">def</span> <span class="nf">startTest</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
<span class="n">adr</span> <span class="o">=</span> <span class="n">test</span><span class="o">.</span><span class="n">address</span><span class="p">()</span>
+ <span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;start test </span><span class="si">%s</span><span class="s"> (</span><span class="si">%s</span><span class="s">)&#39;</span><span class="p">,</span> <span class="n">adr</span><span class="p">,</span> <span class="n">adr</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tests</span><span class="p">)</span>
<span class="k">if</span> <span class="n">adr</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tests</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">shouldSave</span> <span class="ow">or</span> <span class="n">adr</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_seen</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&#39; &#39;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&#39;#</span><span class="si">%s</span><span class="s"> &#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">tests</span><span class="p">[</span><span class="n">adr</span><span class="p">])</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">_seen</span><span class="p">[</span><span class="n">adr</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">_seen</span><span class="p">[</span><span class="n">adr</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1</span>
<span class="k">return</span>
<span class="bp">self</span><span class="o">.</span><span class="n">tests</span><span class="p">[</span><span class="n">adr</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">id</span>
<span class="bp">self</span><span class="o">.</span><span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&#39;#</span><span class="si">%s</span><span class="s"> &#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">+=</span> <span class="mi">1</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">+=</span> <span class="mf">1</span>
<span class="k">def</span> <span class="nf">tr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
<span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&quot;tr &#39;</span><span class="si">%s</span><span class="s">&#39;&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
diff --git a/doc/plugintest_environment.html b/doc/plugintest_environment.html
index 685315b..bfc4237 100644
--- a/doc/plugintest_environment.html
+++ b/doc/plugintest_environment.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -35,14 +35,14 @@ environment it's given by nose.</p>
<blockquote>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">PrintEnvPlugin</span><span class="p">(</span><span class="n">Plugin</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;print-env&quot;</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="c"># no command line arg needed to activate plugin</span>
<span class="gp">... </span> <span class="n">enabled</span> <span class="o">=</span> <span class="bp">True</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">can_configure</span><span class="p">:</span>
<span class="gp">... </span> <span class="k">return</span>
<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">conf</span> <span class="o">=</span> <span class="n">conf</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="p">{}):</span>
<span class="gp">... </span> <span class="k">print</span> <span class="s">&quot;env:&quot;</span><span class="p">,</span> <span class="n">env</span>
</pre></div>
@@ -54,7 +54,7 @@ can test the cases where that is used as the default.</p>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">old_config</span> <span class="o">=</span> <span class="n">nose</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">Config</span>
</pre></div>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">PrintArgvConfig</span><span class="p">(</span><span class="n">old_config</span><span class="p">):</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">argv</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">print</span> <span class="s">&quot;argv:&quot;</span><span class="p">,</span> <span class="n">argv</span>
<span class="gp">... </span> <span class="n">old_config</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">argv</span><span class="p">,</span> <span class="n">doc</span><span class="p">)</span>
@@ -71,7 +71,7 @@ subclassing.</p>
<span class="gp">... </span> <span class="n">FailureDetail</span><span class="p">(),</span>
<span class="gp">... </span> <span class="n">Capture</span><span class="p">(),</span>
<span class="gp">... </span> <span class="p">]</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">makeSuite</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">return</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">(</span><span class="n">tests</span><span class="o">=</span><span class="p">[])</span>
</pre></div>
@@ -118,12 +118,13 @@ If <tt class="docutils literal"><span class="pre">env</span></tt> is not overrid
</blockquote>
<p><tt class="docutils literal"><span class="pre">nose.plugins.plugintest.run()</span></tt> should work analogously.</p>
<blockquote>
-<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run</span>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run_buffered</span> <span class="k">as</span> <span class="n">run</span>
</pre></div>
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">run</span><span class="p">(</span><span class="n">suite</span><span class="o">=</span><span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">(</span><span class="n">tests</span><span class="o">=</span><span class="p">[]),</span>
<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">PrintEnvPlugin</span><span class="p">()])</span> <span class="c"># doctest: +REPORT_NDIFF</span>
<span class="go">argv: [&#39;nosetests&#39;, &#39;-v&#39;]</span>
<span class="go">env: {}</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 0 tests in ...s</span>
<span class="go">&lt;BLANKLINE&gt;</span>
@@ -134,6 +135,7 @@ If <tt class="docutils literal"><span class="pre">env</span></tt> is not overrid
<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">PrintEnvPlugin</span><span class="p">()])</span> <span class="c"># doctest: +REPORT_NDIFF</span>
<span class="go">argv: [&#39;nosetests&#39;, &#39;-v&#39;]</span>
<span class="go">env: {}</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 0 tests in ...s</span>
<span class="go">&lt;BLANKLINE&gt;</span>
@@ -144,6 +146,7 @@ If <tt class="docutils literal"><span class="pre">env</span></tt> is not overrid
<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">PrintEnvPlugin</span><span class="p">()])</span> <span class="c"># doctest: +REPORT_NDIFF</span>
<span class="go">argv: [&#39;nosetests&#39;, &#39;-v&#39;]</span>
<span class="go">env: {&#39;foo&#39;: &#39;bar&#39;}</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 0 tests in ...s</span>
<span class="go">&lt;BLANKLINE&gt;</span>
@@ -157,6 +160,7 @@ If <tt class="docutils literal"><span class="pre">env</span></tt> is not overrid
<span class="gp">... </span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">PrintEnvPlugin</span><span class="p">()])</span> <span class="c"># doctest: +REPORT_NDIFF</span>
<span class="go">argv: [&#39;spam&#39;]</span>
<span class="go">env: {}</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 0 tests in ...s</span>
<span class="go">&lt;BLANKLINE&gt;</span>
@@ -173,6 +177,7 @@ If <tt class="docutils literal"><span class="pre">env</span></tt> is not overrid
<span class="gp">... </span> <span class="n">suite</span><span class="o">=</span><span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">(</span><span class="n">tests</span><span class="o">=</span><span class="p">[]))</span> <span class="c"># doctest: +REPORT_NDIFF</span>
<span class="go">argv: [&#39;nosetests&#39;, &#39;-v&#39;]</span>
<span class="go">env: {&#39;foo&#39;: &#39;bar&#39;}</span>
+<span class="go">&lt;BLANKLINE&gt;</span>
<span class="go">----------------------------------------------------------------------</span>
<span class="go">Ran 0 tests in ...s</span>
<span class="go">&lt;BLANKLINE&gt;</span>
diff --git a/doc/selector_plugin.html b/doc/selector_plugin.html
index 85e5050..ef3cef2 100644
--- a/doc/selector_plugin.html
+++ b/doc/selector_plugin.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -24,16 +24,23 @@ object is selected as a test.</p>
older projects with a different test naming scheme. Fortunately, you
can easily override this behavior by providing a custom selector using
a plugin.</p>
+<blockquote>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">import</span> <span class="nn">os</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">support</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">__file__</span><span class="p">),</span> <span class="s">&#39;support&#39;</span><span class="p">)</span>
+</pre></div>
+</blockquote>
<p>In this example, the project to be tested consists of a module and
-package and associated tests, layed out like this:</p>
+package and associated tests, laid out like this:</p>
<pre class="literal-block">
+&gt;&gt;&gt; from nose.util import ls_tree
+&gt;&gt;&gt; print ls_tree(support)
|-- mymodule.py
|-- mypackage
| |-- __init__.py
-| |-- math
-| | |-- __init__.py
-| | `-- basic.py
-| `-- strings.py
+| |-- strings.py
+| `-- math
+| |-- __init__.py
+| `-- basic.py
`-- tests
|-- testlib.py
|-- math
@@ -43,12 +50,6 @@ package and associated tests, layed out like this:</p>
`-- strings
`-- cat.py
</pre>
-<p>The project is located in the <tt class="docutils literal"><span class="pre">support</span></tt> directory next to this test file.</p>
-<blockquote>
-<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">import</span> <span class="nn">os</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">support</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">__file__</span><span class="p">),</span> <span class="s">&#39;support&#39;</span><span class="p">)</span>
-</pre></div>
-</blockquote>
<p>Because the test modules do not include <tt class="docutils literal"><span class="pre">test</span></tt> in their names,
nose's default selector is unable to discover this project's tests.</p>
<div class="note">
@@ -57,7 +58,7 @@ nose's default selector is unable to discover this project's tests.</p>
output to remove timings, which will vary from run to run, and
redirects the output to stdout.</p>
<blockquote class="last">
-<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run</span>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run_buffered</span> <span class="k">as</span> <span class="n">run</span>
</pre></div>
</blockquote>
</div>
@@ -95,7 +96,7 @@ how they are named.</li>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">wantFile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
<span class="gp">... </span> <span class="c"># we want python modules under tests/, except testlib</span>
<span class="gp">... </span> <span class="n">parts</span> <span class="o">=</span> <span class="n">filename</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span>
-<span class="gp">... </span> <span class="n">base</span><span class="p">,</span> <span class="n">ext</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
+<span class="gp">... </span> <span class="n">base</span><span class="p">,</span> <span class="n">ext</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mf">1</span><span class="p">])</span>
<span class="gp">... </span> <span class="k">return</span> <span class="s">&#39;tests&#39;</span> <span class="ow">in</span> <span class="n">parts</span> <span class="ow">and</span> <span class="n">ext</span> <span class="o">==</span> <span class="s">&#39;.py&#39;</span> <span class="ow">and</span> <span class="n">base</span> <span class="o">!=</span> <span class="s">&#39;testlib&#39;</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">wantModule</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">):</span>
<span class="gp">... </span> <span class="c"># wantDirectory and wantFile above will ensure that</span>
diff --git a/doc/unwanted_package.html b/doc/unwanted_package.html
index 4483c5c..9b3a55b 100644
--- a/doc/unwanted_package.html
+++ b/doc/unwanted_package.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -36,7 +36,7 @@ and an unwanted package called <tt class="docutils literal"><span class="pre">un
output to remove timings, which will vary from run to run, and
redirects the output to stdout.</p>
<blockquote class="last">
-<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run</span>
+<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.plugintest</span> <span class="k">import</span> <span class="n">run_buffered</span> <span class="k">as</span> <span class="n">run</span>
</pre></div>
</blockquote>
</div>
@@ -63,10 +63,10 @@ prevent nose from descending into the unwanted package.</p>
<span class="gp">... </span> <span class="c"># no command line arg needed to activate plugin</span>
<span class="gp">... </span> <span class="n">enabled</span> <span class="o">=</span> <span class="bp">True</span>
<span class="gp">... </span> <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;unwanted-package&quot;</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">pass</span> <span class="c"># always on</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">wantDirectory</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dirname</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">want</span> <span class="o">=</span> <span class="bp">None</span>
<span class="gp">... </span> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">dirname</span><span class="p">)</span> <span class="o">==</span> <span class="s">&quot;unwanted_package&quot;</span><span class="p">:</span>
diff --git a/doc/writing_plugins.html b/doc/writing_plugins.html
index e625d6c..95e1512 100644
--- a/doc/writing_plugins.html
+++ b/doc/writing_plugins.html
@@ -6,9 +6,9 @@
<body>
<div id="menu">
- <p>This document covers nose version <b>0.10.1</b></p>
- <p>Last update: <b>Fri Jan 4 10:06:23 2008</b></p>
- <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
+ <p>This document covers nose version <b>0.11.0</b></p>
+ <p>Last update: <b>Mon Sep 1 12:17:45 2008</b></p>
+ <h2>Plugins</h2><ul><li><a href="plugin_attrib.html">Builtin Plugin: attrib</a></li><li><a href="plugin_capture.html">Builtin Plugin: capture</a></li><li><a href="plugin_cover.html">Builtin Plugin: cover</a></li><li><a href="plugin_debug.html">Builtin Plugin: debug</a></li><li><a href="plugin_deprecated.html">Builtin Plugin: deprecated</a></li><li><a href="plugin_doctests.html">Builtin Plugin: doctests</a></li><li><a href="plugin_failuredetail.html">Builtin Plugin: failuredetail</a></li><li><a href="plugin_isolate.html">Builtin Plugin: isolate</a></li><li><a href="plugin_logcapture.html">Builtin Plugin: logcapture</a></li><li><a href="plugin_multiprocess.html">Builtin Plugin: multiprocess</a></li><li><a href="plugin_prof.html">Builtin Plugin: prof</a></li><li><a href="plugin_skip.html">Builtin Plugin: skip</a></li><li><a href="plugin_testid.html">Builtin Plugin: testid</a></li><li><a href="error_class_plugin.html">ErrorClass Plugins</a></li><li><a href="plugin_interface.html">Plugin Interface</a></li><li><a href="writing_plugins.html">Writing Plugins</a></li></ul><h2>Modules</h2><ul><li><a href="module_nose.case.html">Module: nose.case</a></li><li><a href="module_nose.commands.html">Module: nose.commands</a></li><li><a href="module_nose.config.html">Module: nose.config</a></li><li><a href="module_nose.core.html">Module: nose.core</a></li><li><a href="module_nose.exc.html">Module: nose.exc</a></li><li><a href="module_nose.failure.html">Module: nose.failure</a></li><li><a href="module_nose.importer.html">Module: nose.importer</a></li><li><a href="module_nose.inspector.html">Module: nose.inspector</a></li><li><a href="module_nose.loader.html">Module: nose.loader</a></li><li><a href="module_nose.plugins.manager.html">Module: nose.plugins.manager</a></li><li><a href="module_nose.plugins.plugintest.html">Module: nose.plugins.plugintest</a></li><li><a href="module_nose.proxy.html">Module: nose.proxy</a></li><li><a href="module_nose.result.html">Module: nose.result</a></li><li><a href="module_nose.selector.html">Module: nose.selector</a></li><li><a href="module_nose.suite.html">Module: nose.suite</a></li><li><a href="module_nose.tools.html">Module: nose.tools</a></li><li><a href="module_nose.twistedtools.html">Module: nose.twistedtools</a></li><li><a href="module_nose.util.html">Module: nose.util</a></li></ul><h2>Plugin Examples</h2><ul><li><a href="doctest_fixtures.html">Doctest Fixtures</a></li><li><a href="unwanted_package.html">Excluding Unwanted Packages</a></li><li><a href="errorclass_failure.html">Failure of Errorclasses</a></li><li><a href="imported_tests.html">Importing Tests</a></li><li><a href="empty_plugin.html">Minimal plugin</a></li><li><a href="multiprocess.html">Parallel Testing with nose</a></li><li><a href="restricted_plugin_options.html">Restricted Plugin Managers</a></li><li><a href="init_plugin.html">Running Initialization Code Before the Test Run</a></li><li><a href="selector_plugin.html">Using a Custom Selector</a></li><li><a href="plugin_exceptions.html">When Plugins Fail</a></li><li><a href="plugintest_environment.html">nose.plugins.plugintest, os.environ and sys.argv</a></li></ul>
</div>
@@ -20,8 +20,8 @@ reporting. There are two basic rules for plugins:</p>
<ul class="simple">
<li>Plugin classes should subclass <a class="reference" href="http://python-nose.googlecode.com/svn/trunk/nose/plugins/base.py">nose.plugins.Plugin</a>.</li>
<li>Plugins may implement any of the methods described in the class
-<a class="reference" href="plugin_interface.html">PluginInterface</a> in nose.plugins.base. Please note that this class is for
-documentary purposes only; plugins may not subclass PluginInterface.</li>
+<a class="reference" href="i_plugin_interface.html">IPluginInterface</a> in nose.plugins.base. Please note that this class is for
+documentary purposes only; plugins may not subclass IPluginInterface.</li>
</ul>
<div class="section">
<h1><a id="registering" name="registering">Registering</a></h1>
@@ -138,7 +138,7 @@ designed to test plugins in their native runtime environment.</p>
<span class="gp">... </span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">:</span>
<span class="gp">... </span> <span class="c"># i.e. check for patterns</span>
<span class="gp">... </span> <span class="k">pass</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="c"># or check for a line containing ...</span>
<span class="gp">... </span> <span class="k">assert</span> <span class="s">&quot;ValueError&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">makeSuite</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -146,7 +146,7 @@ designed to test plugins in their native runtime environment.</p>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">runTest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">&quot;I hate foo&quot;</span><span class="p">)</span>
<span class="gp">... </span> <span class="k">return</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">([</span><span class="n">TC</span><span class="p">()])</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">res</span> <span class="o">=</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestResult</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">case</span> <span class="o">=</span> <span class="n">TestPluginFoo</span><span class="p">(</span><span class="s">&#39;test_foo&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">case</span><span class="p">(</span><span class="n">res</span><span class="p">)</span>
@@ -171,26 +171,26 @@ arguments and reads environment variables.</p>
<span class="gp">... </span> <span class="n">Plugin</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
<span class="gp">... </span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span><span class="p">:</span>
<span class="gp">... </span> <span class="k">return</span>
-<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span> <span class="o">=</span> <span class="mf">1</span>
<span class="gp">... </span> <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">more_fancy</span><span class="p">:</span>
-<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span> <span class="o">=</span> <span class="mi">2</span>
+<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span> <span class="o">=</span> <span class="mf">2</span>
<span class="gp">... </span> <span class="k">if</span> <span class="s">&#39;EVEN_FANCIER&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">:</span>
-<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span> <span class="o">=</span> <span class="mi">3</span>
-<span class="go">...</span>
+<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span> <span class="o">=</span> <span class="mf">3</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
<span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">=</span> <span class="n">env</span>
<span class="gp">... </span> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;--more-fancy&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">)</span>
<span class="gp">... </span> <span class="n">Plugin</span><span class="o">.</span><span class="n">options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="n">env</span><span class="p">)</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">report</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;FANCY &quot;</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">fanciness</span><span class="p">)</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">TestFancyOutputter</span><span class="p">(</span><span class="n">PluginTester</span><span class="p">,</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestCase</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">activate</span> <span class="o">=</span> <span class="s">&#39;--with-fancy&#39;</span> <span class="c"># enables the plugin</span>
<span class="gp">... </span> <span class="n">plugins</span> <span class="o">=</span> <span class="p">[</span><span class="n">FancyOutputter</span><span class="p">()]</span>
<span class="gp">... </span> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;--more-fancy&#39;</span><span class="p">]</span>
<span class="gp">... </span> <span class="n">env</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;EVEN_FANCIER&#39;</span><span class="p">:</span> <span class="s">&#39;1&#39;</span><span class="p">}</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">test_fancy_output</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">assert</span> <span class="s">&quot;FANCY FANCY FANCY&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">,</span> <span class="p">(</span>
<span class="gp">... </span> <span class="s">&quot;got: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">)</span>
@@ -199,7 +199,7 @@ arguments and reads environment variables.</p>
<span class="gp">... </span> <span class="k">def</span> <span class="nf">runTest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">&quot;I hate fancy stuff&quot;</span><span class="p">)</span>
<span class="gp">... </span> <span class="k">return</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestSuite</span><span class="p">([</span><span class="n">TC</span><span class="p">()])</span>
-<span class="go">...</span>
+<span class="gp">...</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">res</span> <span class="o">=</span> <span class="n">unittest</span><span class="o">.</span><span class="n">TestResult</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">case</span> <span class="o">=</span> <span class="n">TestFancyOutputter</span><span class="p">(</span><span class="s">&#39;test_fancy_output&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">case</span><span class="p">(</span><span class="n">res</span><span class="p">)</span>
diff --git a/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures.rst b/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures.rst
new file mode 100644
index 0000000..8671e12
--- /dev/null
+++ b/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures.rst
@@ -0,0 +1,71 @@
+Doctest Fixtures
+----------------
+
+Fixtures for a doctest file may define any or all of the following methods:
+
+setup/setup_module/setupModule/setUpModule (module)
+===================================================
+
+Example::
+
+ def setup_module(module):
+ module.called[:] = []
+
+teardown/teardown_module/teardownModule/tearDownModule (module)
+===============================================================
+
+Example::
+
+ def teardown_module(module):
+ module.called[:] = []
+ module.done = True
+
+setup_test(test)
+================
+
+Called before each test. Argument is the *doctest.DocTest* object, *not* a
+unittest.TestCase.
+
+Example::
+
+ def setup_test(test):
+ called.append(test)
+ test.globs['count'] = len(called)
+ setup_test.__test__ = False
+
+ >>> 1
+ 1
+
+This is another example.
+
+ >>> count
+ 1
+
+And this is yet another example.
+
+ >>> count
+ 1
+
+teardown_test(test)
+===================
+
+Called after each test, unless setup raised an uncaught exception. Argument is
+the *doctest.DocTest* object, *not* a unittest.TestCase.
+
+Example::
+
+ def teardown_test(test):
+ pass
+ teardown_test.__test__ = False
+
+Bottom line: setup_test, teardown_test have access to the *doctest test*,
+while setup, setup_module, etc have access to the *fixture* module.
+
+globs(globs)
+============
+
+ >>> something
+ 'Something?'
+
+
+
diff --git a/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.py b/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.py
new file mode 100644
index 0000000..72fbfd7
--- /dev/null
+++ b/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.py
@@ -0,0 +1,17 @@
+called = []
+
+def globs(globs):
+ globs['something'] = 'Something?'
+ return globs
+
+def setup_module(module):
+ module.called[:] = []
+
+def setup_test(test):
+ called.append(test)
+ test.globs['count'] = len(called)
+setup_test.__test__ = False
+
+def teardown_test(test):
+ pass
+teardown_test.__test__ = False
diff --git a/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pyc b/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pyc
new file mode 100644
index 0000000..6af08e8
--- /dev/null
+++ b/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pyc
Binary files differ
diff --git a/functional_tests/doc_tests/test_multiprocess/multiprocess.rst b/functional_tests/doc_tests/test_multiprocess/multiprocess.rst
new file mode 100644
index 0000000..9bb3d6e
--- /dev/null
+++ b/functional_tests/doc_tests/test_multiprocess/multiprocess.rst
@@ -0,0 +1,236 @@
+Parallel Testing with nose
+--------------------------
+
+.. Note ::
+
+ The multiprocess plugin requires the processing_ module, available from
+ PyPI and at http://pyprocessing.berlios.de/.
+
+..
+
+Using the `nose.plugin.multiprocess` plugin, you can parallelize a
+test run across a configurable number of worker processes. This can
+speed up CPU-bound test runs (as long as the number of work
+processeses is around the number of processors or cores available),
+but is mainly useful for IO-bound tests which can benefit from greater
+parallelization, since most of the tests spend most of their time
+waiting for data to arrive from someplace else.
+
+.. _processing : http://pyprocessing.berlios.de/
+
+How tests are distributed
+=========================
+
+The ideal case would be to dispatch each test to a worker process separately,
+and to have enough worker processes that the entire test run takes only as
+long as the slowest test. This ideal is not attainable in all cases, however,
+because many test suites depend on context (class, module or package)
+fixtures.
+
+The multiprocess plugin can't know -- unless you tell it -- whether a given
+context fixture is re-entrant (that is, can be called many times
+concurrently), or may be shared among tests running in different processes, or
+must be run once and only once for a given set of tests in the same process as
+the tests. Therefore, if a context has fixtures, the default behavior is to
+dispatch the entire context suite to a worker as a unit, so that the fixtures
+are run once, in the same process as the tests. That of course how they are
+run when the multiprocess plugin is not active and all tests are run in a
+single process.
+
+Controlling distribution
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are two context-level variables that you can use to control this default
+behavior.
+
+If a context's fixtures are re-entrant, set `_multiprocess_can_split_ = True`
+in the context, and the plugin will dispatch tests in suites bound to that
+context as if the context had no fixtures. This means that the fixtures will
+execute multiple times, typically once per test, and concurrently.
+
+For example, a module that contains re-entrant fixtures might look like::
+
+ _multiprocess_can_split_ = True
+
+ def setup():
+ ...
+
+A class might look like::
+
+ class TestClass:
+ _multiprocess_can_split_ = True
+
+ @classmethod
+ def setup_class(cls):
+ ...
+
+Alternatively, If a context's fixtures may only be run once, or may not run
+concurrently, but *may* be shared by tests running in different processes
+-- for instance a package-level fixture that starts an external http server or
+initializes a shared database -- then set `_multiprocess_shared_ = True` in
+the context. Fixtures for contexts so marked will execute in the primary nose
+process, and tests in those contexts will be individually dispatched to run in
+parallel.
+
+A module with shareable fixtures might look like::
+
+ _multiprocess_shared_ = True
+
+ def setup():
+ ...
+
+A class might look like::
+
+ class TestClass:
+ _multiprocess_shared_ = True
+
+ @classmethod
+ def setup_class(cls):
+ ...
+
+These options are mutually exclusive: you can't mark a context as both
+splittable and shareable.
+
+Example
+~~~~~~~
+
+Consider three versions of the same test suite. One
+is marked `_multiprocess_shared_`, another `_multiprocess_can_split_`,
+and the third is unmarked. They all define the same fixtures:
+
+ called = []
+
+ def setup():
+ print "setup called"
+ called.append('setup')
+
+ def teardown():
+ print "teardown called"
+ called.append('teardown')
+
+And each has two tests that just test that `setup()` has been called
+once and only once.
+
+When run without the multiprocess plugin, fixtures for the shared,
+can-split and not-shared test suites execute at the same times, and
+all tests pass.
+
+.. Note ::
+
+ The run() function in `nose.plugins.plugintest`_ reformats test result
+ output to remove timings, which will vary from run to run, and
+ redirects the output to stdout.
+
+ >>> from nose.plugins.plugintest import run_buffered as run
+
+..
+
+ >>> import os
+ >>> import sys
+ >>> support = os.path.join(os.path.dirname(__file__), 'support')
+ >>> argv = [__file__, '-v', os.path.join(support, 'test_shared.py')]
+ >>> run(argv=argv) #doctest: +REPORT_NDIFF
+ setup called
+ test_shared.TestMe.test_one ... ok
+ test_shared.test_a ... ok
+ test_shared.test_b ... ok
+ teardown called
+ <BLANKLINE>
+ ----------------------------------------------------------------------
+ Ran 3 tests in ...s
+ <BLANKLINE>
+ OK
+
+ >>> argv = [__file__, '-v', os.path.join(support, 'test_not_shared.py')]
+ >>> run(argv=argv) #doctest: +REPORT_NDIFF
+ setup called
+ test_not_shared.TestMe.test_one ... ok
+ test_not_shared.test_a ... ok
+ test_not_shared.test_b ... ok
+ teardown called
+ <BLANKLINE>
+ ----------------------------------------------------------------------
+ Ran 3 tests in ...s
+ <BLANKLINE>
+ OK
+
+ >>> argv = [__file__, '-v', os.path.join(support, 'test_can_split.py')]
+ >>> run(argv=argv) #doctest: +REPORT_NDIFF
+ setup called
+ test_can_split.TestMe.test_one ... ok
+ test_can_split.test_a ... ok
+ test_can_split.test_b ... ok
+ teardown called
+ <BLANKLINE>
+ ----------------------------------------------------------------------
+ Ran 3 tests in ...s
+ <BLANKLINE>
+ OK
+
+However, when run with the `--processes=2` switch, each test module
+behaves differently.
+
+ >>> from nose.plugins.multiprocess import MultiProcess
+
+The module marked `_multiprocess_shared_` executes correctly.
+
+ # First we have to reset all of the test modules
+ >>> sys.modules['test_shared'].called[:] = []
+ >>> sys.modules['test_not_shared'].called[:] = []
+ >>> sys.modules['test_can_split'].called[:] = []
+
+ >>> argv = [__file__, '-v', '--processes=2',
+ ... os.path.join(support, 'test_shared.py')]
+ >>> run(argv=argv, plugins=[MultiProcess()]) #doctest: +REPORT_NDIFF
+ setup called
+ test_shared.TestMe.test_one ... ok
+ test_shared.test_a ... ok
+ test_shared.test_b ... ok
+ teardown called
+ <BLANKLINE>
+ ----------------------------------------------------------------------
+ Ran 3 tests in ...s
+ <BLANKLINE>
+ OK
+
+As does the one not marked -- however in this case, `--processes=2`
+will do *nothing at all*: since the tests are in a module with
+unmarked fixtures, the entire test module will be dispatched to a
+single runner process.
+
+However, the module marked `_multiprocess_can_split_` will fail, since
+the fixtures *are not reentrant*. A module such as this *must not* be
+marked `_multiprocess_can_split_`, or tests will fail in one or more
+runner processes as fixtures are re-executed.
+
+ >>> argv = [__file__, '-v', '--processes=2',
+ ... os.path.join(support, 'test_can_split.py')]
+ >>> run(argv=argv, plugins=[MultiProcess()]) #doctest: +ELLIPSIS
+ test_can_split....
+ ...
+ FAILED (failures=...)
+
+Other differences in test running
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The main difference between using the multiprocess plugin and not is obviously
+that tests run concurrently under multiprocess. There are a few other
+differences that may also impact your test suite:
+
+* More tests may be found
+
+ Because tests are dispatched to worker processes by name, a worker
+ process may find and run tests in a module that would not be found during a
+ normal test run. For instance, if a non-test module contains a testlike
+ function, that function would be discovered as a test in a worker process,
+ if the entire module is dispatched to the worker. This is because worker
+ processes load tests in *directed* mode -- the same way that nose loads
+ tests when you explicitly name a module -- rather than *discovered* mode,
+ the mode nose uses when looking for tests in a directory.
+
+* Out-of-order output
+
+ Test results are collected by workers and returned to the master process for
+ output. Since difference processes may complete their tests at different
+ times, test result output order is not determinate.
+
diff --git a/functional_tests/doc_tests/test_multiprocess/multiprocess_fixtures.py b/functional_tests/doc_tests/test_multiprocess/multiprocess_fixtures.py
new file mode 100644
index 0000000..e5d87d7
--- /dev/null
+++ b/functional_tests/doc_tests/test_multiprocess/multiprocess_fixtures.py
@@ -0,0 +1,9 @@
+from nose.plugins.skip import SkipTest
+
+_multiprocess_can_split_ = True
+
+def setup_module():
+ try:
+ import processing
+ except ImportError:
+ raise SkipTest("processing module not available")
diff --git a/functional_tests/doc_tests/test_multiprocess/support/test_can_split.py b/functional_tests/doc_tests/test_multiprocess/support/test_can_split.py
new file mode 100644
index 0000000..b168479
--- /dev/null
+++ b/functional_tests/doc_tests/test_multiprocess/support/test_can_split.py
@@ -0,0 +1,29 @@
+called = []
+
+_multiprocess_can_split_ = 1
+
+def setup():
+ print "setup called"
+ called.append('setup')
+
+
+def teardown():
+ print "teardown called"
+ called.append('teardown')
+
+
+def test_a():
+ assert len(called) == 1, "len(%s) !=1" % called
+
+
+def test_b():
+ assert len(called) == 1, "len(%s) !=1" % called
+
+
+class TestMe:
+ def setup_class(cls):
+ cls._setup = True
+ setup_class = classmethod(setup_class)
+
+ def test_one(self):
+ assert self._setup, "Class was not set up"
diff --git a/functional_tests/doc_tests/test_multiprocess/support/test_not_shared.py b/functional_tests/doc_tests/test_multiprocess/support/test_not_shared.py
new file mode 100644
index 0000000..971fdad
--- /dev/null
+++ b/functional_tests/doc_tests/test_multiprocess/support/test_not_shared.py
@@ -0,0 +1,29 @@
+called = []
+
+_multiprocess_ = 1
+
+def setup():
+ print "setup called"
+ called.append('setup')
+
+
+def teardown():
+ print "teardown called"
+ called.append('teardown')
+
+
+def test_a():
+ assert len(called) == 1, "len(%s) !=1" % called
+
+
+def test_b():
+ assert len(called) == 1, "len(%s) !=1" % called
+
+
+class TestMe:
+ def setup_class(cls):
+ cls._setup = True
+ setup_class = classmethod(setup_class)
+
+ def test_one(self):
+ assert self._setup, "Class was not set up"
diff --git a/functional_tests/doc_tests/test_multiprocess/support/test_shared.py b/functional_tests/doc_tests/test_multiprocess/support/test_shared.py
new file mode 100644
index 0000000..57a6363
--- /dev/null
+++ b/functional_tests/doc_tests/test_multiprocess/support/test_shared.py
@@ -0,0 +1,29 @@
+called = []
+
+_multiprocess_shared_ = 1
+
+def setup():
+ print "setup called"
+ called.append('setup')
+
+
+def teardown():
+ print "teardown called"
+ called.append('teardown')
+
+
+def test_a():
+ assert len(called) == 1, "len(%s) !=1" % called
+
+
+def test_b():
+ assert len(called) == 1, "len(%s) !=1" % called
+
+
+class TestMe:
+ def setup_class(cls):
+ cls._setup = True
+ setup_class = classmethod(setup_class)
+
+ def test_one(self):
+ assert self._setup, "Class was not set up"
diff --git a/nose/ext/dtcompat.py b/nose/ext/dtcompat.py
index 831c1a2..332cf08 100644
--- a/nose/ext/dtcompat.py
+++ b/nose/ext/dtcompat.py
@@ -858,7 +858,8 @@ class DocTestFinder:
elif inspect.isfunction(object):
return module.__dict__ is object.func_globals
elif inspect.isclass(object):
- return module.__name__ == object.__module__
+ # Some jython classes don't set __module__
+ return module.__name__ == getattr(object, '__module__', None)
elif inspect.getmodule(object) is not None:
return module is inspect.getmodule(object)
elif hasattr(object, '__module__'):
diff --git a/nose/loader.py b/nose/loader.py
index b74c883..284a8b3 100644
--- a/nose/loader.py
+++ b/nose/loader.py
@@ -226,7 +226,7 @@ class TestLoader(unittest.TestLoader):
if not callable(test_func):
test_func = getattr(m, test_func)
yield FunctionTestCase(test_func, arg=arg, descriptor=g)
- return self.suiteClass(generate)
+ return self.suiteClass(generate, context=generator, can_split=False)
def loadTestsFromGeneratorMethod(self, generator, cls):
"""Lazy-load tests from a generator method.
@@ -264,7 +264,7 @@ class TestLoader(unittest.TestLoader):
else:
yield Failure(TypeError,
"%s is not a function or method" % test_func)
- return self.suiteClass(generate)
+ return self.suiteClass(generate, context=generator, can_split=False)
def loadTestsFromModule(self, module, discovered=False):
"""Load all tests from module and return a suite containing
diff --git a/nose/plugins/builtin.py b/nose/plugins/builtin.py
index b9b9fb8..870cef3 100644
--- a/nose/plugins/builtin.py
+++ b/nose/plugins/builtin.py
@@ -14,7 +14,8 @@ builtins = (
('nose.plugins.failuredetail', 'FailureDetail'),
('nose.plugins.prof', 'Profile'),
('nose.plugins.skip', 'Skip'),
- ('nose.plugins.testid', 'TestId')
+ ('nose.plugins.testid', 'TestId'),
+ ('nose.plugins.multiprocess', 'MultiProcess')
)
for module, cls in builtins:
diff --git a/nose/plugins/doctests.py b/nose/plugins/doctests.py
index af5d6e4..3efcc33 100644
--- a/nose/plugins/doctests.py
+++ b/nose/plugins/doctests.py
@@ -3,18 +3,46 @@ environment variable to enable collection and execution of doctests. doctest_
tests are usually included in the tested package, not grouped into packages or
modules of their own. For this reason, nose will try to detect and run doctest
tests only in the non-test packages it discovers in the working
-directory. Doctests may also be placed into files other than python modules,
-in which case they can be collected and executed by using the
---doctest-extension switch or NOSE_DOCTEST_EXTENSION environment variable to
-indicate which file extension(s) to load.
+directory.
-doctest tests are run like any other test, with the exception that output
+Doctests may also be placed into files other than python modules, in which
+case they can be collected and executed by using the --doctest-extension
+switch or NOSE_DOCTEST_EXTENSION environment variable to indicate which file
+extension(s) to load.
+
+When loading doctests from non-module files, you may specify how to find
+modules that contains fixtures for the tests using the --doctest-fixtures
+switch. The value of that switch will be appended to the base name of each
+doctest file loaded to produce a module name. For instance, for a doctest file
+"widgets.rst" with the switch ``--doctest_fixtures=_fixt``, fixtures will be
+loaded from the module ``widgets_fixt.py`` if it exists.
+
+A fixtures module may define any or all of the following functions:
+
+* setup([module]) or setup_module([module])
+
+ Called before any tests are run. You may raise SkipTest to skip all tests.
+
+* teardown([module]) or teardown_module([module])
+
+ Called after all tests are run, if setup/setup_module did not raise an
+ unhandled exception.
+
+* setup_test(test)
+
+ Called before each test in the file. NOTE: the argument passed is a
+ doctest.DocTest instance, *not* a unittest.TestCase.
+
+* teardown_test(test)
+
+ Called after each test in the file whose setup_test call did not raise an
+ unhandled exception. NOTE: the argument passed is a doctest.DocTest
+ instance, *not* a unittest.TestCase
+
+Doctest tests are run like any other test, with the exception that output
capture does not work, because doctest does its own output capture in the
course of running a test.
-This module also includes a specialized version of nose.run() that
-makes it easier to write doctests that test test runs.
-
.. _doctest: http://docs.python.org/lib/module-doctest.html
"""
from __future__ import generators
@@ -22,9 +50,12 @@ from __future__ import generators
import logging
import os
import sys
+import unittest
from inspect import getmodule
from nose.plugins.base import Plugin
-from nose.util import anyp, getpackage, test_address, resolve_name, src, tolist
+from nose.suite import ContextSuite
+from nose.util import anyp, getpackage, test_address, resolve_name, \
+ src, tolist, isproperty
try:
from cStringIO import StringIO
except ImportError:
@@ -70,11 +101,41 @@ class NoseOutputRedirectingPdb(_orp):
doctest._OutputRedirectingPdb = NoseOutputRedirectingPdb
+class DoctestSuite(unittest.TestSuite):
+ """
+ Doctest suites are parallelizable at the module or file level only,
+ since they may be attached to objects that are not individually
+ addressable (like properties). This suite subclass is used when
+ loading doctests from a module to ensure that behavior.
+
+ This class is used only if the plugin is not fully prepared;
+ in normal use, the loader's suiteClass is used.
+
+ """
+ can_split = False
+
+ def __init__(self, tests=(), context=None, can_split=False):
+ self.context = context
+ self.can_split = can_split
+ unittest.TestSuite.__init__(self, tests=tests)
+
+ def address(self):
+ return test_address(self.context)
+
+ def __iter__(self):
+ # 2.3 compat
+ return iter(self._tests)
+
+ def __str__(self):
+ return str(self._tests)
+
+
class Doctest(Plugin):
"""
Activate doctest plugin to find and run doctests in non-test modules.
"""
extension = None
+ suiteClass = DoctestSuite
def options(self, parser, env=os.environ):
Plugin.options(self, parser, env)
@@ -89,13 +150,19 @@ class Doctest(Plugin):
dest="doctestExtension",
help="Also look for doctests in files with "
"this extension [NOSE_DOCTEST_EXTENSION]")
- parser.add_option('--doctest-result-variable', dest='doctest_result_var',
+ parser.add_option('--doctest-result-variable',
+ dest='doctest_result_var',
default=env.get('NOSE_DOCTEST_RESULT_VAR'),
help="Change the variable name set to the result of "
"the last interpreter command from the default '_'. "
"Can be used to avoid conflicts with the _() "
"function used for text translation. "
"[NOSE_DOCTEST_RESULT_VAR]")
+ parser.add_option('--doctest-fixtures', action="store",
+ dest="doctestFixtures",
+ help="Find fixtures for a doctest file in module "
+ "with this name appended to the base name "
+ "of the doctest file")
# Set the default as a list, if given in env; otherwise
# an additional value set on the command line will cause
# an error.
@@ -108,28 +175,40 @@ class Doctest(Plugin):
self.doctest_result_var = options.doctest_result_var
self.doctest_tests = options.doctest_tests
self.extension = tolist(options.doctestExtension)
+ self.fixtures = options.doctestFixtures
self.finder = doctest.DocTestFinder()
+ def prepareTestLoader(self, loader):
+ self.suiteClass = loader.suiteClass
+
def loadTestsFromModule(self, module):
+ log.debug("loading from %s", module)
if not self.matches(module.__name__):
log.debug("Doctest doesn't want module %s", module)
return
try:
tests = self.finder.find(module)
except AttributeError:
+ log.exception("Attribute error loading from %s", module)
# nose allows module.__test__ = False; doctest does not and throws
# AttributeError
return
if not tests:
+ log.debug("No tests found in %s", module)
return
tests.sort()
module_file = src(module.__file__)
+ # FIXME this breaks the id plugin somehow (tests probably don't
+ # get wrapped in result proxy or something)
+ cases = []
for test in tests:
if not test.examples:
continue
if not test.filename:
- test.filename = module_file
- yield DocTestCase(test, result_var=self.doctest_result_var)
+ test.filename = module_file
+ cases.append(DocTestCase(test, result_var=self.doctest_result_var))
+ if cases:
+ yield self.suiteClass(cases, context=module, can_split=False)
def loadTestsFromFile(self, filename):
if self.extension and anyp(filename.endswith, self.extension):
@@ -139,12 +218,38 @@ class Doctest(Plugin):
doc = dh.read()
finally:
dh.close()
+
+ fixture_context = None
+ globs = {'__file__': filename}
+ if self.fixtures:
+ base, ext = os.path.splitext(name)
+ dirname = os.path.dirname(filename)
+ sys.path.append(dirname)
+ fixt_mod = base + self.fixtures
+ try:
+ fixture_context = __import__(
+ fixt_mod, globals(), locals(), ["nop"])
+ except ImportError, e:
+ log.debug(
+ "Could not import %s: %s (%s)", fixt_mod, e, sys.path)
+ log.debug("Fixture module %s resolved to %s",
+ fixt_mod, fixture_context)
+ if hasattr(fixture_context, 'globs'):
+ globs = fixture_context.globs(globs)
parser = doctest.DocTestParser()
test = parser.get_doctest(
- doc, globs={'__file__': filename}, name=name,
+ doc, globs=globs, name=name,
filename=filename, lineno=0)
if test.examples:
- yield DocFileCase(test, result_var=self.doctest_result_var)
+ case = DocFileCase(
+ test,
+ setUp=getattr(fixture_context, 'setup_test', None),
+ tearDown=getattr(fixture_context, 'teardown_test', None),
+ result_var=self.doctest_result_var)
+ if fixture_context:
+ yield ContextSuite(tests=(case,), context=fixture_context)
+ else:
+ yield case
else:
yield False # no tests to load
@@ -152,12 +257,14 @@ class Doctest(Plugin):
"""Look for doctests in the given object, which will be a
function, method or class.
"""
- doctests = self.finder.find(obj, module=getmodule(parent))
+ name = getattr(obj, '__name__', 'Unnammed %s' % type(obj))
+ doctests = self.finder.find(obj, module=getmodule(parent), name=name)
if doctests:
for test in doctests:
if len(test.examples) == 0:
continue
- yield DocTestCase(test, obj=obj, result_var=self.doctest_result_var)
+ yield DocTestCase(test, obj=obj,
+ result_var=self.doctest_result_var)
def matches(self, name):
"""Doctest wants only non-test modules in general.
@@ -204,13 +311,26 @@ class DocTestCase(doctest.DocTestCase):
self._result_var = result_var
self._nose_obj = obj
super(DocTestCase, self).__init__(
- test, optionflags=optionflags, setUp=None, tearDown=None,
- checker=None)
+ test, optionflags=optionflags, setUp=setUp, tearDown=tearDown,
+ checker=checker)
def address(self):
if self._nose_obj is not None:
return test_address(self._nose_obj)
- return test_address(resolve_name(self._dt_test.name))
+ obj = resolve_name(self._dt_test.name)
+
+ if isproperty(obj):
+ # properties have no connection to the class they are in
+ # so we can't just look 'em up, we have to first look up
+ # the class, then stick the prop on the end
+ parts = self._dt_test.name.split('.')
+ class_name = '.'.join(parts[:-1])
+ cls = resolve_name(class_name)
+ base_addr = test_address(cls)
+ return (base_addr[0], base_addr[1],
+ '.'.join([base_addr[2], parts[-1]]))
+ else:
+ return test_address(obj)
# doctests loaded via find(obj) omit the module name
# so we need to override id, __repr__ and shortDescription
@@ -260,7 +380,7 @@ class DocFileCase(doctest.DocFileCase):
checker=None, result_var='_'):
self._result_var = result_var
super(DocFileCase, self).__init__(
- test, optionflags=optionflags, setUp=None, tearDown=None,
+ test, optionflags=optionflags, setUp=setUp, tearDown=tearDown,
checker=None)
def address(self):
diff --git a/nose/plugins/multiprocess.py b/nose/plugins/multiprocess.py
new file mode 100644
index 0000000..8b68b2e
--- /dev/null
+++ b/nose/plugins/multiprocess.py
@@ -0,0 +1,478 @@
+"""
+Mutltiprocess: parallel testing
+-------------------------------
+
+The multiprocess plugin enables you to distribute your test run among a set of
+worker processes that run tests in parallel. This can speed up CPU-bound test
+runs (as long as the number of work processeses is around the number of
+processors or cores available), but is mainly useful for IO-bound tests which
+can benefit from massive parallelization, since most of the tests spend most
+of their time waiting for data to arrive from someplace else.
+
+How tests are distributed
+=========================
+
+The ideal case would be to dispatch each test to a worker process
+separately. This ideal is not attainable in all cases, however, because many
+test suites depend on context (class, module or package) fixtures.
+
+The plugin can't know (unless you tell it -- see below!) whether a given
+context fixture is re-entrant (that is, can be called many times
+concurrently), or may be shared among tests running in different
+processes. Therefore, if a context has fixtures, the default behavior is to
+dispatch the entire suite to a worker as a unit.
+
+Controlling distribution
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are two context-level variables that you can use to control this default
+behavior.
+
+If a context's fixtures are re-entrant, set `_multiprocess_can_split_ = True`
+in the context, and the plugin will dispatch tests in suites bound to that
+context as if the context had no fixtures. This means that the fixtures will
+execute multiple times, typically once per test, and concurrently.
+
+If a context's fixtures may be shared by tests running in different processes
+-- for instance a package-level fixture that starts an external http server or
+initializes a shared database -- then set `_multiprocess_shared_ = True` in
+the context. Fixtures for contexts so marked will execute in the primary nose
+process, and tests in those contexts will be individually dispatched to run in
+parallel.
+
+How results are collected and reported
+======================================
+
+As each test or suite executes in a worker process, results (failures, errors,
+and specially handled exceptions like SkipTest) are collected in that
+process. When the test or suite is complete, the results are returned to the
+main nose process. There, any progress output (dots) is printed, and the
+results from the test or suite combined into a consolidated result
+set. Finally when results have been received for all dispatched tests, or all
+workers have died, the result summary is output as normal.
+
+Beware!
+=======
+
+Not all test suites will benefit from, or even operate correctly using, this
+plugin. If you don't have multiple processors, CPU-bound tests will run more
+slowly than otherwise, for instance. There are also some differences in plugin
+interactions and behaviors due to the way in which tests are dispatched and
+loaded. In general, test loading under the plugin operates as if it were
+always in directed mode, not discovered mode. For instance, doctests in test
+modules will always be found when using this plugin and the doctest plugin
+together.
+
+But most likely the biggest issue you will face is concurrency. Unless you
+have kept your tests as religiously pure unit tests, with no side-effects, no
+ordering issues, and no external dependencies, chances are you will experience
+odd, intermittent and unexplainable failures and errors when using this
+plugin. This doesn't necessarily mean the plugin is broken: it may mean that
+your test suite is not safe for concurrency.
+
+
+"""
+import logging
+import os
+import sys
+import time
+import traceback
+import unittest
+import nose.case
+from nose.core import TextTestRunner
+from nose import failure
+from nose import loader
+from nose.plugins.base import Plugin
+from nose.result import TextTestResult
+from nose.suite import ContextSuite
+from nose.util import test_address
+from Queue import Empty
+
+log = logging.getLogger(__name__)
+
+try:
+ from processing import Process, Queue, Pool, Event
+except ImportError:
+ Process = Queue = Pool = Event = None
+ log.debug("processing module not available")
+try:
+ from cStringIO import StringIO
+except ImportError:
+ import StringIO
+
+
+class TestLet:
+ def __init__(self, case):
+ try:
+ self._id = case.id()
+ except AttributeError:
+ pass
+ self._short_description = case.shortDescription()
+ self._str = str(case)
+
+ def id(self):
+ return self._id
+
+ def shortDescription(self):
+ return self._short_description
+
+ def __str__(self):
+ return self._str
+
+
+class MultiProcess(Plugin):
+ """
+ Run tests in multiple processes. Requires processing module.
+ """
+ score = 1000
+
+ def options(self, parser, env=os.environ):
+ if Process is None:
+ self.can_configure = False
+ self.enabled = False
+ return
+ parser.add_option("--processes", action="store",
+ default=env.get('NOSE_PROCESSES', 0),
+ dest="multiprocess_workers",
+ help="Spread test run among this many processes. "
+ "Set a number equal to the number of processors "
+ "or cores in your machine for best results. "
+ "[NOSE_PROCESSES]")
+ parser.add_option("--process-timeout", action="store",
+ default=env.get('NOSE_PROCESS_TIMEOUT', 10),
+ dest="multiprocess_timeout",
+ help="Set timeout for return of results from each "
+ "test runner process. [NOSE_PROCESS_TIMEOUT]")
+
+ def configure(self, options, config):
+ if not hasattr(options, 'multiprocess_workers'):
+ self.enabled = False
+ return
+ self.config = config
+ try:
+ workers = int(options.multiprocess_workers)
+ except (TypeError, ValueError):
+ workers = 0
+ if workers:
+ self.enabled = True
+ self.config.multiprocess_workers = workers
+ self.config.multiprocess_timeout = int(options.multiprocess_timeout)
+
+ def prepareTestLoader(self, loader):
+ self.loaderClass = loader.__class__
+
+ def prepareTestRunner(self, runner):
+ # replace with our runner class
+ return MultiProcessTestRunner(stream=runner.stream,
+ verbosity=self.config.verbosity,
+ config=self.config,
+ loaderClass=self.loaderClass)
+
+
+class MultiProcessTestRunner(TextTestRunner):
+
+ def __init__(self, **kw):
+ self.loaderClass = kw.pop('loaderClass', loader.defaultTestLoader)
+ super(MultiProcessTestRunner, self).__init__(**kw)
+
+ def run(self, test):
+ """
+ Execute the test (which may be a test suite). If the test is a suite,
+ distribute it out among as many processes as have been configured, at
+ as fine a level as is possible given the context fixtures defined in the
+ suite or any sub-suites.
+
+ """
+ wrapper = self.config.plugins.prepareTest(test)
+ if wrapper is not None:
+ test = wrapper
+
+ # plugins can decorate or capture the output stream
+ wrapped = self.config.plugins.setOutputStream(self.stream)
+ if wrapped is not None:
+ self.stream = wrapped
+
+ testQueue = Queue()
+ resultQueue = Queue()
+ tasks = {}
+ completed = {}
+ workers = []
+ to_teardown = []
+ shouldStop = Event()
+
+ result = self._makeResult()
+ start = time.time()
+
+ # dispatch and collect results
+ # put indexes only on queue because tests aren't picklable
+ for case in self.next_batch(test):
+ log.debug("Next batch %s (%s)", case, type(case))
+ if (isinstance(case, nose.case.Test) and
+ isinstance(case.test, failure.Failure)):
+ log.debug("Case is a Failure")
+ case(result) # run here to capture the failure
+ continue
+ # handle shared fixtures
+ if isinstance(case, ContextSuite) and self.sharedFixtures(case):
+ log.debug("%s has shared fixtures", case)
+ try:
+ case.setUp()
+ except (KeyboardInterrupt, SystemExit):
+ raise
+ except:
+ log.debug("%s setup failed", sys.exc_info())
+ result.addError(case, sys.exc_info())
+ else:
+ to_teardown.append(case)
+ for _t in case:
+ test_addr = self.address(_t)
+ testQueue.put(test_addr, block=False)
+ tasks[test_addr] = None
+ log.debug("Queued shared-fixture test %s (%s) to %s",
+ len(tasks), test_addr, testQueue)
+
+ else:
+ test_addr = self.address(case)
+ testQueue.put(test_addr, block=False)
+ tasks[test_addr] = None
+ log.debug("Queued test %s (%s) to %s",
+ len(tasks), test_addr, testQueue)
+
+ log.debug("Starting %s workers", self.config.multiprocess_workers)
+ for i in range(self.config.multiprocess_workers):
+ p = Process(target=runner, args=(i,
+ testQueue,
+ resultQueue,
+ shouldStop,
+ self.loaderClass,
+ result.__class__,
+ self.config))
+ p.setDaemon(True)
+ p.start()
+ workers.append(p)
+ log.debug("Started worker process %s", i+1)
+
+ num_tasks = len(tasks)
+ while tasks:
+ log.debug("Waiting for results (%s/%s tasks)",
+ len(completed), num_tasks)
+ try:
+ addr, batch_result = resultQueue.get(
+ timeout=self.config.multiprocess_timeout)
+ log.debug('Results received for %s', addr)
+ try:
+ tasks.pop(addr)
+ except KeyError:
+ log.debug("Got result for unknown task? %s", addr)
+ else:
+ completed[addr] = batch_result
+ self.consolidate(result, batch_result)
+ if (self.config.stopOnError
+ and not result.wasSuccessful()):
+ # set the stop condition
+ shouldStop.set()
+ break
+ except Empty:
+ log.debug("Timed out with %s tasks pending", len(tasks))
+ any_alive = False
+ for w in workers:
+ if w.isAlive():
+ any_alive = True
+ break
+ if not any_alive:
+ log.debug("All workers dead")
+ break
+ log.debug("Completed %s/%s tasks (%s remain)",
+ len(completed), num_tasks, len(tasks))
+
+ for case in to_teardown:
+ log.debug("Tearing down shared fixtures for %s", case)
+ try:
+ case.tearDown()
+ except (KeyboardInterrupt, SystemExit):
+ raise
+ except:
+ result.addError(case, sys.exc_info())
+
+ stop = time.time()
+
+ result.printErrors()
+ result.printSummary(start, stop)
+ self.config.plugins.finalize(result)
+
+ # Tell all workers to stop
+ for w in workers:
+ if w.isAlive():
+ testQueue.put('STOP', block=False)
+
+ return result
+
+ def address(self, case):
+ if hasattr(case, 'address'):
+ try:
+ file, mod, call = case.address()
+ except:
+ import sys
+ import pdb
+ ec, ev, tb = sys.exc_info()
+ sys.stdout = sys.__stdout__
+ pdb.post_mortem(tb)
+ raise
+ elif hasattr(case, 'context'):
+ file, mod, call = test_address(case.context)
+ else:
+ raise Exception("Unable to convert %s to address" % case)
+ parts = []
+ if file is None:
+ if mod is None:
+ raise Exception("Unaddressable case %s" % case)
+ else:
+ parts.append(mod)
+ else:
+ parts.append(file)
+ if call is not None:
+ parts.append(call)
+ return ':'.join(map(str, parts))
+
+ # FIXME camel for consistency
+ def next_batch(self, test):
+ # allows tests or suites to mark themselves as not safe
+ # for multiprocess execution
+ if hasattr(test, 'context'):
+ if not getattr(test.context, '_multiprocess_', True):
+ return
+
+ if ((isinstance(test, ContextSuite)
+ and test.hasFixtures(self.check_can_split))
+ or not getattr(test, 'can_split', True)
+ or not isinstance(test, unittest.TestSuite)):
+ # regular test case, or a suite with context fixtures
+ # either way we've hit something we can ask a worker
+ # to run
+ yield test
+ else:
+ # Suite is without fixtures at this level; but it may have
+ # fixtures at any deeper level, so we need to examine it all
+ # the way down to the case level
+ for case in test:
+ for batch in self.next_batch(case):
+ yield batch
+
+ # FIXME camel for consistency
+ def check_can_split(self, context, fixt):
+ """
+ Callback that we use to check whether the fixtures found in a
+ context or ancestor are ones we care about.
+
+ Contexts can tell us that their fixtures are reentrant by setting
+ _multiprocess_can_split_. So if we see that, we return False to
+ disregard those fixtures.
+ """
+ if not fixt:
+ return False
+ if getattr(context, '_multiprocess_can_split_', False):
+ return False
+ return True
+
+ def sharedFixtures(self, case):
+ context = getattr(case, 'context', None)
+ if not context:
+ return False
+ return getattr(context, '_multiprocess_shared_', False)
+
+ def consolidate(self, result, batch_result):
+ log.debug("batch result is %s" , batch_result)
+ try:
+ output, testsRun, failures, errors, errorClasses = batch_result
+ except ValueError:
+ log.debug("result in unexpected format %s", batch_result)
+ failure.Failure(*sys.exc_info())(result)
+ return
+ self.stream.write(output)
+ result.testsRun += testsRun
+ result.failures.extend(failures)
+ result.errors.extend(errors)
+ for key, (storage, label, isfail) in errorClasses.items():
+ if key not in result.errorClasses:
+ # Ordinarily storage is result attribute
+ # but it's only processed through the errorClasses
+ # dict, so it's ok to fake it here
+ result.errorClasses[key] = ([], label, isfail)
+ mystorage, _junk, _junk = result.errorClasses[key]
+ mystorage.extend(storage)
+ log.debug("Ran %s tests (%s)", testsRun, result.testsRun)
+
+
+def runner(ix, testQueue, resultQueue, shouldStop,
+ loaderClass, resultClass, config):
+ log.debug("Worker %s executing", ix)
+ loader = loaderClass(config=config)
+ loader.suiteClass.suiteClass = NoSharedFixtureContextSuite
+
+ def get():
+ case = testQueue.get(timeout=config.multiprocess_timeout)
+ return case
+
+ def makeResult():
+ stream = unittest._WritelnDecorator(StringIO())
+ return resultClass(stream, descriptions=1,
+ verbosity=config.verbosity,
+ config=config)
+
+ def batch(result):
+ failures = [(TestLet(c), err) for c, err in result.failures]
+ errors = [(TestLet(c), err) for c, err in result.errors]
+ errorClasses = {}
+ for key, (storage, label, isfail) in result.errorClasses.items():
+ errorClasses[key] = ([(TestLet(c), err) for c in storage],
+ label, isfail)
+ return (
+ result.stream.getvalue(),
+ result.testsRun,
+ failures,
+ errors,
+ errorClasses)
+ try:
+ try:
+ for test_addr in iter(get, 'STOP'):
+ if shouldStop.isSet():
+ break
+ result = makeResult()
+ test = loader.loadTestsFromNames([test_addr])
+ log.debug("Worker %s Test is %s (%s)", ix, test_addr, test)
+
+ try:
+ test(result)
+ resultQueue.put((test_addr, batch(result)))
+ except KeyboardInterrupt, SystemExit:
+ raise
+ except:
+ log.exception("Error running test or returning results")
+ failure.Failure(*sys.exc_info())(result)
+ resultQueue.put((test_addr, batch(result)))
+ except Empty:
+ log.debug("Worker %s timed out waiting for tasks", ix)
+ finally:
+ resultQueue.close()
+ log.debug("Worker %s ending", ix)
+
+
+class NoSharedFixtureContextSuite(ContextSuite):
+ """
+ Context suite that never fires shared fixtures.
+
+ When a context sets _multiprocess_shared_, fixtures in that context
+ are executed by the main process. Using this suite class prevents them
+ from executing in the runner process as well.
+
+ """
+
+ def setupContext(self, context):
+ if getattr(context, '_multiprocess_shared_', False):
+ return
+ super(NoSharedFixtureContextSuite, self).setupContext(context)
+
+ def teardownContext(self, context):
+ if getattr(context, '_multiprocess_shared_', False):
+ return
+ super(NoSharedFixtureContextSuite, self).teardownContext(context)
diff --git a/nose/plugins/testid.py b/nose/plugins/testid.py
index c992004..54033b5 100644
--- a/nose/plugins/testid.py
+++ b/nose/plugins/testid.py
@@ -127,6 +127,7 @@ class TestId(Plugin):
def startTest(self, test):
adr = test.address()
+ log.debug('start test %s (%s)', adr, adr in self.tests)
if adr in self.tests:
if self.shouldSave or adr in self._seen:
self.stream.write(' ')
diff --git a/nose/suite.py b/nose/suite.py
index d7d36b6..f1cd591 100644
--- a/nose/suite.py
+++ b/nose/suite.py
@@ -108,9 +108,19 @@ class ContextSuite(LazySuite):
failureException = unittest.TestCase.failureException
was_setup = False
was_torndown = False
-
+ classSetup = ('setup_class', 'setup_all', 'setupClass', 'setupAll',
+ 'setUpClass', 'setUpAll')
+ classTeardown = ('teardown_class', 'teardown_all', 'teardownClass',
+ 'teardownAll', 'tearDownClass', 'tearDownAll')
+ moduleSetup = ('setup_module', 'setupModule', 'setUpModule', 'setup')
+ moduleTeardown = ('teardown_module', 'teardownModule', 'tearDownModule',
+ 'teardown')
+ packageSetup = ('setup_package', 'setupPackage', 'setUpPackage')
+ packageTeardown = ('teardown_package', 'teardownPackage',
+ 'tearDownPackage')
+
def __init__(self, tests=(), context=None, factory=None,
- config=None, resultProxy=None):
+ config=None, resultProxy=None, can_split=True):
log.debug("Context suite for %s (%s) (%s)", tests, context, id(self))
self.context = context
self.factory = factory
@@ -119,6 +129,7 @@ class ContextSuite(LazySuite):
self.config = config
self.resultProxy = resultProxy
self.has_run = False
+ self.can_split = can_split
LazySuite.__init__(self, tests)
def __repr__(self):
@@ -169,6 +180,39 @@ class ContextSuite(LazySuite):
except:
result.addError(self, self.exc_info())
+ def hasFixtures(self, ctx_callback=None):
+ context = self.context
+ if context is None:
+ return False
+ if self.implementsAnyFixture(context, ctx_callback=ctx_callback):
+ return True
+ # My context doesn't have any, but its ancestors might
+ factory = self.factory
+ if factory:
+ ancestors = factory.context.get(self, [])
+ for ancestor in ancestors:
+ if self.implementsAnyFixture(
+ ancestor, ctx_callback=ctx_callback):
+ return True
+ return False
+
+ def implementsAnyFixture(self, context, ctx_callback):
+ if isclass(context):
+ names = self.classSetup + self.classTeardown
+ else:
+ names = self.moduleSetup + self.moduleTeardown
+ if hasattr(context, '__path__'):
+ names += self.packageSetup + self.packageTeardown
+ # If my context has any fixture attribute, I have fixtures
+ fixt = False
+ for m in names:
+ if hasattr(context, m):
+ fixt = True
+ break
+ if ctx_callback is None:
+ return fixt
+ return ctx_callback(context, fixt)
+
def setUp(self):
log.debug("suite %s setUp called, tests: %s", id(self), self._tests)
if not self:
@@ -209,13 +253,11 @@ class ContextSuite(LazySuite):
# the teardown in my teardown
self.factory.was_setup[context] = self
if isclass(context):
- names = ('setup_class', 'setup_all', 'setupClass', 'setupAll',
- 'setUpClass', 'setUpAll')
+ names = self.classSetup
else:
- names = ('setup_module', 'setupModule', 'setUpModule', 'setup')
+ names = self.moduleSetup
if hasattr(context, '__path__'):
- names = ('setup_package', 'setupPackage',
- 'setUpPackage') + names
+ names += names
try_run(context, names)
def shortDescription(self):
@@ -261,14 +303,11 @@ class ContextSuite(LazySuite):
if self.factory:
self.factory.was_torndown[context] = self
if isclass(context):
- names = ('teardown_class', 'teardown_all', 'teardownClass',
- 'teardownAll', 'tearDownClass', 'tearDownAll')
+ names = self.classTeardown
else:
- names = ('teardown_module', 'teardownModule', 'tearDownModule',
- 'teardown')
+ names = self.moduleTeardown
if hasattr(context, '__path__'):
- names = ('teardown_package', 'teardownPackage',
- 'tearDownPackage') + names
+ names += names
try_run(context, names)
self.config.plugins.stopContext(context)
@@ -311,7 +350,7 @@ class ContextSuiteFactory(object):
self.was_setup = {}
self.was_torndown = {}
- def __call__(self, tests):
+ def __call__(self, tests, **kw):
"""Return ``ContextSuite`` for tests. ``tests`` may either
be a callable (in which case the resulting ContextSuite will
have no parent context and be evaluated lazily) or an
@@ -321,15 +360,15 @@ class ContextSuiteFactory(object):
outermost suites belonging to the outermost contexts.
"""
log.debug("Create suite for %s", tests)
- context = getattr(tests, 'context', None)
+ context = kw.pop('context', getattr(tests, 'context', None))
log.debug("tests %s context %s", tests, context)
if context is None:
tests = self.wrapTests(tests)
try:
context = self.findContext(tests)
except MixedContextError:
- return self.makeSuite(self.mixedSuites(tests), None)
- return self.makeSuite(tests, context)
+ return self.makeSuite(self.mixedSuites(tests), None, **kw)
+ return self.makeSuite(tests, context, **kw)
def ancestry(self, context):
"""Return the ancestry of the context (that is, all of the
@@ -340,6 +379,11 @@ class ContextSuiteFactory(object):
log.debug("get ancestry %s", context)
if context is None:
return
+ # Methods include reference to module they are defined in, we
+ # don't want that, instead want the module the class is in now
+ # (classes are re-ancestored elsewhere).
+ if hasattr(context, 'im_class'):
+ context = context.im_class
if hasattr(context, '__module__'):
ancestors = context.__module__.split('.')
elif hasattr(context, '__name__'):
@@ -368,10 +412,10 @@ class ContextSuiteFactory(object):
% (context, ctx))
return context
- def makeSuite(self, tests, context):
+ def makeSuite(self, tests, context, **kw):
suite = self.suiteClass(
tests, context=context, config=self.config, factory=self,
- resultProxy=self.resultProxy)
+ resultProxy=self.resultProxy, **kw)
if context is not None:
self.suites.setdefault(context, []).append(suite)
self.context.setdefault(suite, []).append(context)
diff --git a/nose/util.py b/nose/util.py
index 0cce7d2..736d55f 100644
--- a/nose/util.py
+++ b/nose/util.py
@@ -202,6 +202,25 @@ def ispackage(path):
return False
+def isproperty(obj):
+ """
+ Is this a property?
+
+ >>> class Foo:
+ ... def got(self):
+ ... return 2
+ ... def get(self):
+ ... return 1
+ ... get = property(get)
+
+ >>> isproperty(Foo.got)
+ False
+ >>> isproperty(Foo.get)
+ True
+ """
+ return type(obj) == property
+
+
def getfilename(package, relativeTo=None):
"""Find the python source file for a package, relative to a
particular directory (defaults to current working directory if not
diff --git a/scripts/mkdocs.py b/scripts/mkdocs.py
index b027c46..a1671ec 100755
--- a/scripts/mkdocs.py
+++ b/scripts/mkdocs.py
@@ -31,9 +31,15 @@ to_write = []
def defining_class(cls, attr):
- from epydoc.objdoc import _lookup_class_field
- val, container = _lookup_class_field(cls, attr)
- return container.value()
+ if hasattr(cls, '__bases__'):
+ try:
+ bases = list(cls.__bases__)
+ except (ValueError, TypeError):
+ return cls
+ for base in bases:
+ if attr in base.__dict__:
+ return base
+ return cls
def write(filename, tpl, ctx):
diff --git a/setup.cfg b/setup.cfg
index c2b97d8..ee44299 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -5,6 +5,7 @@ tag_svn_revision = 1
[nosetests]
with-doctest=1
doctest-extension=.rst
+doctest-fixtures=_fixtures
[bdist_rpm]
doc_files = README.txt
diff --git a/unit_tests/test_multiprocess_runner.py b/unit_tests/test_multiprocess_runner.py
new file mode 100644
index 0000000..9e2ee8d
--- /dev/null
+++ b/unit_tests/test_multiprocess_runner.py
@@ -0,0 +1,120 @@
+import unittest
+import imp
+import sys
+from nose.loader import TestLoader
+from nose.plugins import multiprocess
+from nose.suite import ContextSuite
+
+class T_fixt:
+ def setupClass(cls):
+ pass
+ setupClass = classmethod(setupClass)
+
+ def test_a(self):
+ pass
+ def test_b(self):
+ pass
+
+class T:
+ def test_a(self):
+ pass
+ def test_b(self):
+ pass
+
+
+
+class TestMultiProcessTestRunner(unittest.TestCase):
+
+ def test_next_batch_with_classes(self):
+ r = multiprocess.MultiProcessTestRunner()
+ l = TestLoader()
+ tests = list(r.next_batch(ContextSuite(
+ tests=[l.makeTest(T_fixt), l.makeTest(T)])))
+ print tests
+ self.assertEqual(len(tests), 3)
+
+ def test_next_batch_with_module_fixt(self):
+ mod_with_fixt = imp.new_module('mod_with_fixt')
+ sys.modules['mod_with_fixt'] = mod_with_fixt
+
+ def teardown():
+ pass
+
+ class Test(T):
+ pass
+
+ mod_with_fixt.Test = Test
+ mod_with_fixt.teardown = teardown
+ Test.__module__ = 'mod_with_fixt'
+
+ r = multiprocess.MultiProcessTestRunner()
+ l = TestLoader()
+ tests = list(r.next_batch(l.loadTestsFromModule(mod_with_fixt)))
+ print tests
+ self.assertEqual(len(tests), 1)
+
+ def test_next_batch_with_module(self):
+ mod_no_fixt = imp.new_module('mod_no_fixt')
+ sys.modules['mod_no_fixt'] = mod_no_fixt
+
+ class Test2(T):
+ pass
+
+ class Test_fixt(T_fixt):
+ pass
+
+ mod_no_fixt.Test = Test2
+ Test2.__module__ = 'mod_no_fixt'
+ mod_no_fixt.Test_fixt = Test_fixt
+ Test_fixt.__module__ = 'mod_no_fixt'
+
+ r = multiprocess.MultiProcessTestRunner()
+ l = TestLoader()
+ tests = list(r.next_batch(l.loadTestsFromModule(mod_no_fixt)))
+ print tests
+ self.assertEqual(len(tests), 3)
+
+ def test_next_batch_with_generator_method(self):
+ class Tg:
+ def test_gen(self):
+ for i in range(0, 3):
+ yield self.check, i
+ def check(self, val):
+ pass
+ r = multiprocess.MultiProcessTestRunner()
+ l = TestLoader()
+ tests = list(r.next_batch(l.makeTest(Tg)))
+ print tests
+ print [r.address(t) for t in tests]
+ self.assertEqual(len(tests), 1)
+
+ def test_next_batch_can_split_set(self):
+
+ mod_with_fixt2 = imp.new_module('mod_with_fixt2')
+ sys.modules['mod_with_fixt2'] = mod_with_fixt2
+
+ def setup():
+ pass
+
+ class Test(T):
+ pass
+
+ class Test_fixt(T_fixt):
+ pass
+
+ mod_with_fixt2.Test = Test
+ mod_with_fixt2.Test_fixt = Test_fixt
+ mod_with_fixt2.setup = setup
+ mod_with_fixt2._multiprocess_can_split_ = True
+ Test.__module__ = 'mod_with_fixt2'
+ Test_fixt.__module__ = 'mod_with_fixt2'
+
+ r = multiprocess.MultiProcessTestRunner()
+ l = TestLoader()
+ tests = list(r.next_batch(l.loadTestsFromModule(mod_with_fixt2)))
+ print tests
+ self.assertEqual(len(tests), 3)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/unit_tests/test_plugins.py b/unit_tests/test_plugins.py
index 0f2cb0f..aa8d9d1 100644
--- a/unit_tests/test_plugins.py
+++ b/unit_tests/test_plugins.py
@@ -151,7 +151,7 @@ class TestDoctestPlugin(unittest.TestCase):
plug.can_configure = True
plug.configure(opt, conf)
suite = plug.loadTestsFromModule(foo.bar.buz)
- expect = ['afunc (foo.bar.buz)']
+ expect = ['[afunc (foo.bar.buz)]']
for test in suite:
self.assertEqual(str(test), expect.pop(0))
@@ -172,7 +172,12 @@ class TestDoctestPlugin(unittest.TestCase):
print test.address()
file, mod, call = test.address()
self.assertEqual(mod, 'foo.bar.buz')
- self.assertEqual(call, 'afunc')
+ self.assertEqual(call, None)
+ for case in test:
+ print case.address()
+ file, mod, call = case.address()
+ self.assertEqual(mod, 'foo.bar.buz')
+ self.assertEqual(call, 'afunc')
def test_collect_txtfile(self):
here = os.path.abspath(os.path.dirname(__file__))
diff --git a/unit_tests/test_twisted.py b/unit_tests/test_twisted.py
index 48ca8cd..460dacd 100644
--- a/unit_tests/test_twisted.py
+++ b/unit_tests/test_twisted.py
@@ -7,6 +7,7 @@ try:
except ImportError:
raise SkipTest('twisted not available; skipping')
+_multiprocess_ = False
def teardown():