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

« back to all changes in this revision

Viewing changes to doc/unwanted_package.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: Excluding Unwanted Packages</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: Excluding Unwanted Packages</h1>
 
17
      
 
18
      <p>Normally, nose discovery descends into all packages. Plugins can
 
19
change this behavior by implementing <a class="reference" href="plugin_interface.html#wantDirectory">wantDirectory()</a>.</p>
 
20
<p>In this example, we have a wanted package called <tt class="docutils literal"><span class="pre">wanted_package</span></tt>
 
21
and an unwanted package called <tt class="docutils literal"><span class="pre">unwanted_package</span></tt>.</p>
 
22
<blockquote>
 
23
<div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">import</span> <span class="nn">os</span>
 
24
<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>
 
25
<span class="gp">&gt;&gt;&gt; </span><span class="n">support_files</span> <span class="o">=</span> <span class="p">[</span><span class="n">d</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">support</span><span class="p">)</span>
 
26
<span class="gp">... </span>                 <span class="k">if</span> <span class="ow">not</span> <span class="n">d</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)]</span>
 
27
<span class="gp">&gt;&gt;&gt; </span><span class="n">support_files</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
 
28
<span class="gp">&gt;&gt;&gt; </span><span class="n">support_files</span>
 
29
<span class="go">[&#39;unwanted_package&#39;, &#39;wanted_package&#39;]</span>
 
30
</pre></div>
 
31
</blockquote>
 
32
<p>When we run nose normally, tests are loaded from both packages.</p>
 
33
<div class="note">
 
34
<p class="first admonition-title">Note</p>
 
35
<p>The run() function in <a class="reference" href="module_nose.plugins.plugintest.html">nose.plugins.plugintest</a> reformats test result
 
36
output to remove timings, which will vary from run to run, and
 
37
redirects the output to stdout.</p>
 
38
<blockquote class="last">
 
39
<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>
 
40
</pre></div>
 
41
</blockquote>
 
42
</div>
 
43
<!--  -->
 
44
<blockquote>
 
45
<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="n">__file__</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>
 
46
<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="c"># doctest: +REPORT_NDIFF</span>
 
47
<span class="go">unwanted_package.test_spam.test_spam ... ok</span>
 
48
<span class="go">wanted_package.test_eggs.test_eggs ... ok</span>
 
49
<span class="go">&lt;BLANKLINE&gt;</span>
 
50
<span class="go">----------------------------------------------------------------------</span>
 
51
<span class="go">Ran 2 tests in ...s</span>
 
52
<span class="go">&lt;BLANKLINE&gt;</span>
 
53
<span class="go">OK</span>
 
54
</pre></div>
 
55
</blockquote>
 
56
<p>To exclude the tests in the unwanted package, we can write a simple
 
57
plugin that implements <a class="reference" href="plugin_interface.html#wantDirectory">wantDirectory()</a> and returns <tt class="docutils literal"><span class="pre">False</span></tt> if
 
58
the basename of the directory is <tt class="docutils literal"><span class="pre">&quot;unwanted_package&quot;</span></tt>. This will
 
59
prevent nose from descending into the unwanted package.</p>
 
60
<blockquote>
 
61
<div class="highlight"><pre><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>
 
62
<span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">UnwantedPackagePlugin</span><span class="p">(</span><span class="n">Plugin</span><span class="p">):</span>
 
63
<span class="gp">... </span>    <span class="c"># no command line arg needed to activate plugin</span>
 
64
<span class="gp">... </span>    <span class="n">enabled</span> <span class="o">=</span> <span class="bp">True</span>
 
65
<span class="gp">... </span>    <span class="n">name</span> <span class="o">=</span> <span class="s">&quot;unwanted-package&quot;</span>
 
66
<span class="go">...</span>
 
67
<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>
 
68
<span class="gp">... </span>        <span class="k">pass</span> <span class="c"># always on</span>
 
69
<span class="go">...</span>
 
70
<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>
 
71
<span class="gp">... </span>        <span class="n">want</span> <span class="o">=</span> <span class="bp">None</span>
 
72
<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>
 
73
<span class="gp">... </span>            <span class="n">want</span> <span class="o">=</span> <span class="bp">False</span>
 
74
<span class="gp">... </span>        <span class="k">return</span> <span class="n">want</span>
 
75
</pre></div>
 
76
</blockquote>
 
77
<p>In the next test run we use the plugin, and the unwanted package is
 
78
not discovered.</p>
 
79
<blockquote>
 
80
<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="n">argv</span><span class="p">,</span>
 
81
<span class="gp">... </span>    <span class="n">plugins</span><span class="o">=</span><span class="p">[</span><span class="n">UnwantedPackagePlugin</span><span class="p">()])</span> <span class="c"># doctest: +REPORT_NDIFF</span>
 
82
<span class="go">wanted_package.test_eggs.test_eggs ... ok</span>
 
83
<span class="go">&lt;BLANKLINE&gt;</span>
 
84
<span class="go">----------------------------------------------------------------------</span>
 
85
<span class="go">Ran 1 test in ...s</span>
 
86
<span class="go">&lt;BLANKLINE&gt;</span>
 
87
<span class="go">OK</span>
 
88
</pre></div>
 
89
</blockquote>
 
90
 
 
91
 
 
92
    </div>
 
93
    <script src="http://www.google-analytics.com/urchin.js" 
 
94
            type="text/javascript">
 
95
    </script>
 
96
    <script type="text/javascript">
 
97
      _uacct = "UA-2236166-1";
 
98
      urchinTracker();
 
99
    </script>
 
100
  </body>
 
101
</html>
 
102