~ubuntu-branches/debian/squeeze/nose/squeeze

« back to all changes in this revision

Viewing changes to doc/restricted_plugin_options.html

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Marek, Torsten Marek, Gustavo Noronha Silva
  • Date: 2008-06-12 13:39:43 UTC
  • mfrom: (1.2.1 upstream) (2.1.5 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080612133943-2q7syp67fwl4on13
Tags: 0.10.3-1

[Torsten Marek]
* New upstream release (Closes: #461994)
* debian/control
  - bump standards version to 3.8.0, no changes necessary
  - add suggestions for python-coverage (Closes: #457053)
  - change dependency on python-setuptools into 
    python-pkg-resources (Closes: #468719)
  - added myself to uploaders

[Gustavo Noronha Silva]
* debian/control:
  - remove -1 from build-dep on setuptools

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
  <head>
 
3
    <title>nose: Restricted Plugin Managers</title>
 
4
    <link rel="stylesheet" href="site.css" type="text/css"></link>
 
5
  </head>
 
6
  <body>
 
7
    
 
8
    <div id="menu">
 
9
      <p>This document covers nose version <b>0.10.3</b></p>
 
10
      <p>Last update: <b>Tue Jun  3 11:50:26 2008</b></p>
 
11
      <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.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="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="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>
 
12
      
 
13
    </div>
 
14
    
 
15
    <div id="main">
 
16
      <h1>nose: Restricted Plugin Managers</h1>
 
17
      
 
18
      <p>In some cases, such as running under the <tt class="docutils literal"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">test</span></tt> command,
 
19
nose is not able to use all available plugins. In those cases, a
 
20
<cite>nose.plugins.manager.RestrictedPluginManager</cite> is used to exclude plugins that
 
21
implement API methods that nose is unable to call.</p>
 
22
<p>Support files for this test are in the support directory.</p>
 
23
<blockquote>
 
24
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">import</span> <span class="nn">os</span>
 
25
<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>
 
26
</pre></div>
 
27
</blockquote>
 
28
<p>For this test, we'll use a simple plugin that implements the <tt class="docutils literal"><span class="pre">startTest</span></tt>
 
29
method.</p>
 
30
<blockquote>
 
31
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.base</span> <span class="k">import</span> <span class="n">Plugin</span>
 
32
<span class="gp">&gt;&gt;&gt; </span><span class="k">from</span> <span class="nn">nose.plugins.manager</span> <span class="k">import</span> <span class="n">RestrictedPluginManager</span>
 
33
<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">StartPlugin</span><span class="p">(</span><span class="n">Plugin</span><span class="p">):</span>
 
34
<span class="gp">... </span>    <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>
 
35
<span class="gp">... </span>        <span class="k">print</span> <span class="s">&quot;started </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">test</span>
 
36
</pre></div>
 
37
</blockquote>
 
38
<div class="note">
 
39
<p class="first admonition-title">Note</p>
 
40
<p>The run() function in <a class="reference" href="module_nose.plugins.plugintest.html">nose.plugins.plugintest</a> reformats test result
 
41
output to remove timings, which will vary from run to run, and
 
42
redirects the output to stdout.</p>
 
43
<blockquote class="last">
 
44
<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>
 
45
</pre></div>
 
46
</blockquote>
 
47
</div>
 
48
<!--  -->
 
49
<blockquote>
 
50
<p>When run with a normal plugin manager, the plugin executes.</p>
 
51
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">argv</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;plugintest&#39;</span><span class="p">,</span> <span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;--with-startplugin&#39;</span><span class="p">,</span> <span class="n">support</span><span class="p">]</span>
 
52
<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="n">argv</span><span class="p">,</span> <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">StartPlugin</span><span class="p">()])</span> <span class="c"># doctest: +REPORT_NDIFF</span>
 
53
<span class="go">started test.test</span>
 
54
<span class="go">test.test ... ok</span>
 
55
<span class="go">&lt;BLANKLINE&gt;</span>
 
56
<span class="go">----------------------------------------------------------------------</span>
 
57
<span class="go">Ran 1 test in ...s</span>
 
58
<span class="go">&lt;BLANKLINE&gt;</span>
 
59
<span class="go">OK</span>
 
60
</pre></div>
 
61
</blockquote>
 
62
<p>However, when run with a restricted plugin manager configured to exclude
 
63
plugins implementing <cite>startTest</cite>, an exception is raised and nose exits.</p>
 
64
<blockquote>
 
65
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">restricted</span> <span class="o">=</span> <span class="n">RestrictedPluginManager</span><span class="p">(</span>
 
66
<span class="gp">... </span>    <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">StartPlugin</span><span class="p">()],</span> <span class="n">exclude</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;startTest&#39;</span><span class="p">,),</span> <span class="n">load</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 
67
<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="n">argv</span><span class="p">,</span> <span class="n">plugins</span><span class="o">=</span><span class="n">restricted</span><span class="p">)</span> <span class="c">#doctest: +REPORT_NDIFF +ELLIPSIS</span>
 
68
<span class="gt">Traceback (most recent call last):</span>
 
69
<span class="c">...</span>
 
70
<span class="nc">SystemExit</span>: <span class="n-Identifier">...</span>
 
71
</pre></div>
 
72
</blockquote>
 
73
<p>Errors are only raised when options defined by excluded plugins are used.</p>
 
74
<blockquote>
 
75
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">argv</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;plugintest&#39;</span><span class="p">,</span> <span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="n">support</span><span class="p">]</span>
 
76
<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="n">argv</span><span class="p">,</span> <span class="n">plugins</span><span class="o">=</span><span class="n">restricted</span><span class="p">)</span> <span class="c"># doctest: +REPORT_NDIFF</span>
 
77
<span class="go">test.test ... ok</span>
 
78
<span class="go">&lt;BLANKLINE&gt;</span>
 
79
<span class="go">----------------------------------------------------------------------</span>
 
80
<span class="go">Ran 1 test in ...s</span>
 
81
<span class="go">&lt;BLANKLINE&gt;</span>
 
82
<span class="go">OK</span>
 
83
</pre></div>
 
84
</blockquote>
 
85
<p>When a disabled option appears in a configuration file, instead of on the
 
86
command line, a warning is raised instead of an exception.</p>
 
87
<blockquote>
 
88
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">argv</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;plugintest&#39;</span><span class="p">,</span> <span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;-c&#39;</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">join</span><span class="p">(</span><span class="n">support</span><span class="p">,</span> <span class="s">&#39;start.cfg&#39;</span><span class="p">),</span>
 
89
<span class="gp">... </span>        <span class="n">support</span><span class="p">]</span>
 
90
<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="n">argv</span><span class="p">,</span> <span class="n">plugins</span><span class="o">=</span><span class="n">restricted</span><span class="p">)</span> <span class="c"># doctest: +ELLIPSIS</span>
 
91
<span class="go">RuntimeWarning: Option &#39;with-startplugin&#39; in config file &#39;...start.cfg&#39; ignored: excluded by runtime environment</span>
 
92
<span class="go">test.test ... ok</span>
 
93
<span class="go">&lt;BLANKLINE&gt;</span>
 
94
<span class="go">----------------------------------------------------------------------</span>
 
95
<span class="go">Ran 1 test in ...s</span>
 
96
<span class="go">&lt;BLANKLINE&gt;</span>
 
97
<span class="go">OK</span>
 
98
</pre></div>
 
99
</blockquote>
 
100
<p>However, if an option appears in a configuration file that is not recognized
 
101
either as an option defined by nose, or by an active or excluded plugin, an
 
102
error is raised.</p>
 
103
<blockquote>
 
104
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">argv</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;plugintest&#39;</span><span class="p">,</span> <span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;-c&#39;</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">join</span><span class="p">(</span><span class="n">support</span><span class="p">,</span> <span class="s">&#39;bad.cfg&#39;</span><span class="p">),</span>
 
105
<span class="gp">... </span>        <span class="n">support</span><span class="p">]</span>
 
106
<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="n">argv</span><span class="p">,</span> <span class="n">plugins</span><span class="o">=</span><span class="n">restricted</span><span class="p">)</span> <span class="c"># doctest: +ELLIPSIS</span>
 
107
<span class="gt">Traceback (most recent call last):</span>
 
108
<span class="c">...</span>
 
109
<span class="nc">ConfigError: Error reading config file &#39;...bad.cfg&#39;</span>: <span class="n-Identifier">no such option &#39;with-meltedcheese&#39;</span>
 
110
</pre></div>
 
111
</blockquote>
 
112
 
 
113
 
 
114
    </div>
 
115
    <script src="http://www.google-analytics.com/urchin.js" 
 
116
            type="text/javascript">
 
117
    </script>
 
118
    <script type="text/javascript">
 
119
      _uacct = "UA-2236166-1";
 
120
      urchinTracker();
 
121
    </script>
 
122
  </body>
 
123
</html>
 
124