Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 7f671eb35339cf812de52087b0d93519 > files > 279

python3-pytest-2.3.5-3.fc18.noarch.rpm



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>_pytest.hookspec</title>
    
    <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../',
        VERSION:     '2.2.4.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <script type="text/javascript" src="../../_static/translations.js"></script>
    <link rel="top" title="None" href="../../index.html" />
    <link rel="up" title="モジュールコード" href="../index.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>ナビゲーション</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../py-modindex.html" title="Pythonモジュール索引"
             >モジュール</a></li>
        <li><a href="../../contents.html">pytest-2.2.4.0</a> &raquo;</li>
          <li><a href="../index.html" accesskey="U">モジュールコード</a> &raquo;</li> 
      </ul>
    </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none">
  <h3>クイック検索</h3>
    <form class="search" action="../../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="検索" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    モジュール、クラス、または関数名を入力してください
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <h1>_pytest.hookspec のソースコード</h1><div class="highlight"><pre>
<span class="sd">&quot;&quot;&quot; hook specifications for pytest plugins, invoked from main.py and builtin plugins.  &quot;&quot;&quot;</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># Initialization</span>
<span class="c"># -------------------------------------------------------------------------</span>

<span class="k">def</span> <span class="nf">pytest_addhooks</span><span class="p">(</span><span class="n">pluginmanager</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;called at plugin load time to allow adding new hooks via a call to</span>
<span class="sd">    pluginmanager.registerhooks(module).&quot;&quot;&quot;</span>


<div class="viewcode-block" id="pytest_namespace"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_namespace">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_namespace</span><span class="p">():</span>
    <span class="sd">&quot;&quot;&quot;return dict of name-&gt;object to be made globally available in</span>
<span class="sd">    the py.test/pytest namespace.  This hook is called before command</span>
<span class="sd">    line options are parsed.</span>
<span class="sd">    &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_cmdline_parse"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_cmdline_parse">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_cmdline_parse</span><span class="p">(</span><span class="n">pluginmanager</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;return initialized config object, parsing the specified args. &quot;&quot;&quot;</span></div>
<span class="n">pytest_cmdline_parse</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<div class="viewcode-block" id="pytest_cmdline_preparse"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_cmdline_preparse">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_cmdline_preparse</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;modify command line arguments before option parsing. &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_addoption"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_addoption">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_addoption</span><span class="p">(</span><span class="n">parser</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;register optparse-style options and ini-style config values.</span>

<span class="sd">    This function must be implemented in a :ref:`plugin &lt;pluginorder&gt;` and is</span>
<span class="sd">    called once at the beginning of a test run.</span>

<span class="sd">    :arg parser: To add command line options, call</span>
<span class="sd">        :py:func:`parser.addoption(...) &lt;_pytest.config.Parser.addoption&gt;`.</span>
<span class="sd">        To add ini-file values call :py:func:`parser.addini(...)</span>
<span class="sd">        &lt;_pytest.config.Parser.addini&gt;`.</span>

<span class="sd">    Options can later be accessed through the</span>
<span class="sd">    :py:class:`config &lt;_pytest.config.Config&gt;` object, respectively:</span>

<span class="sd">    - :py:func:`config.getoption(name) &lt;_pytest.config.Config.getoption&gt;` to</span>
<span class="sd">      retrieve the value of a command line option.</span>

<span class="sd">    - :py:func:`config.getini(name) &lt;_pytest.config.Config.getini&gt;` to retrieve</span>
<span class="sd">      a value read from an ini-style file.</span>

<span class="sd">    The config object is passed around on many internal objects via the ``.config``</span>
<span class="sd">    attribute or can be retrieved as the ``pytestconfig`` fixture or accessed</span>
<span class="sd">    via (deprecated) ``pytest.config``.</span>
<span class="sd">    &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_cmdline_main"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_cmdline_main">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_cmdline_main</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called for performing the main command line action. The default</span>
<span class="sd">    implementation will invoke the configure hooks and runtest_mainloop. &quot;&quot;&quot;</span></div>
<span class="n">pytest_cmdline_main</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<div class="viewcode-block" id="pytest_configure"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_configure">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_configure</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called after command line options have been parsed</span>
<span class="sd">        and all plugins and initial conftest files been loaded.</span>
<span class="sd">    &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_unconfigure"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_unconfigure">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_unconfigure</span><span class="p">(</span><span class="n">config</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called before test process is exited.  &quot;&quot;&quot;</span>
</div>
<span class="k">def</span> <span class="nf">pytest_runtestloop</span><span class="p">(</span><span class="n">session</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called for performing the main runtest loop</span>
<span class="sd">    (after collection finished). &quot;&quot;&quot;</span>
<span class="n">pytest_runtestloop</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># collection hooks</span>
<span class="c"># -------------------------------------------------------------------------</span>

<span class="k">def</span> <span class="nf">pytest_collection</span><span class="p">(</span><span class="n">session</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; perform the collection protocol for the given session. &quot;&quot;&quot;</span>
<span class="n">pytest_collection</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="k">def</span> <span class="nf">pytest_collection_modifyitems</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">items</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called after collection has been performed, may filter or re-order</span>
<span class="sd">    the items in-place.&quot;&quot;&quot;</span>

<span class="k">def</span> <span class="nf">pytest_collection_finish</span><span class="p">(</span><span class="n">session</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called after collection has been performed and modified. &quot;&quot;&quot;</span>

<div class="viewcode-block" id="pytest_ignore_collect"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_ignore_collect">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_ignore_collect</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return True to prevent considering this path for collection.</span>
<span class="sd">    This hook is consulted for all files and directories prior to calling</span>
<span class="sd">    more specific hooks.</span>
<span class="sd">    &quot;&quot;&quot;</span></div>
<span class="n">pytest_ignore_collect</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<div class="viewcode-block" id="pytest_collect_directory"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_collect_directory">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_collect_directory</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called before traversing a directory for collection files. &quot;&quot;&quot;</span></div>
<span class="n">pytest_collect_directory</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<div class="viewcode-block" id="pytest_collect_file"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_collect_file">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_collect_file</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return collection Node or None for the given path. Any new node</span>
<span class="sd">    needs to have the specified ``parent`` as a parent.&quot;&quot;&quot;</span>

<span class="c"># logging hooks for collection</span></div>
<div class="viewcode-block" id="pytest_collectstart"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_collectstart">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_collectstart</span><span class="p">(</span><span class="n">collector</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; collector starts collecting. &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_itemcollected"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_itemcollected">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_itemcollected</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; we just collected a test item. &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_collectreport"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_collectreport">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_collectreport</span><span class="p">(</span><span class="n">report</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; collector finished collecting. &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_deselected"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_deselected">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_deselected</span><span class="p">(</span><span class="n">items</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called for test items deselected by keyword. &quot;&quot;&quot;</span>
</div>
<span class="k">def</span> <span class="nf">pytest_make_collect_report</span><span class="p">(</span><span class="n">collector</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; perform ``collector.collect()`` and return a CollectReport. &quot;&quot;&quot;</span>
<span class="n">pytest_make_collect_report</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># Python test function related hooks</span>
<span class="c"># -------------------------------------------------------------------------</span>

<span class="k">def</span> <span class="nf">pytest_pycollect_makemodule</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return a Module collector or None for the given path.</span>
<span class="sd">    This hook will be called for each matching test module path.</span>
<span class="sd">    The pytest_collect_file hook needs to be used if you want to</span>
<span class="sd">    create test modules for files that do not match as a test module.</span>
<span class="sd">    &quot;&quot;&quot;</span>
<span class="n">pytest_pycollect_makemodule</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<div class="viewcode-block" id="pytest_pycollect_makeitem"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_pycollect_makeitem">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_pycollect_makeitem</span><span class="p">(</span><span class="n">collector</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return custom item/collector for a python object in a module, or None.  &quot;&quot;&quot;</span></div>
<span class="n">pytest_pycollect_makeitem</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="k">def</span> <span class="nf">pytest_pyfunc_call</span><span class="p">(</span><span class="n">pyfuncitem</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; call underlying test function. &quot;&quot;&quot;</span>
<span class="n">pytest_pyfunc_call</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="k">def</span> <span class="nf">pytest_generate_tests</span><span class="p">(</span><span class="n">metafunc</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; generate (multiple) parametrized calls to a test function.&quot;&quot;&quot;</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># generic runtest related hooks</span>
<span class="c"># -------------------------------------------------------------------------</span>
<span class="k">def</span> <span class="nf">pytest_itemstart</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">node</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; (deprecated, use pytest_runtest_logstart). &quot;&quot;&quot;</span>

<div class="viewcode-block" id="pytest_runtest_protocol"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_runtest_protocol">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_runtest_protocol</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">nextitem</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; implements the runtest_setup/call/teardown protocol for</span>
<span class="sd">    the given test item, including capturing exceptions and calling</span>
<span class="sd">    reporting hooks.</span>

<span class="sd">    :arg item: test item for which the runtest protocol is performed.</span>

<span class="sd">    :arg nexitem: the scheduled-to-be-next test item (or None if this</span>
<span class="sd">                  is the end my friend).  This argument is passed on to</span>
<span class="sd">                  :py:func:`pytest_runtest_teardown`.</span>

<span class="sd">    :return boolean: True if no further hook implementations should be invoked.</span>
<span class="sd">    &quot;&quot;&quot;</span></div>
<span class="n">pytest_runtest_protocol</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="k">def</span> <span class="nf">pytest_runtest_logstart</span><span class="p">(</span><span class="n">nodeid</span><span class="p">,</span> <span class="n">location</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; signal the start of running a single test item. &quot;&quot;&quot;</span>

<div class="viewcode-block" id="pytest_runtest_setup"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_runtest_setup">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_runtest_setup</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called before ``pytest_runtest_call(item)``. &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_runtest_call"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_runtest_call">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_runtest_call</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called to execute the test ``item``. &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_runtest_teardown"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_runtest_teardown">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_runtest_teardown</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">nextitem</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called after ``pytest_runtest_call``.</span>

<span class="sd">    :arg nexitem: the scheduled-to-be-next test item (None if no further</span>
<span class="sd">                  test item is scheduled).  This argument can be used to</span>
<span class="sd">                  perform exact teardowns, i.e. calling just enough finalizers</span>
<span class="sd">                  so that nextitem only needs to call setup-functions.</span>
<span class="sd">    &quot;&quot;&quot;</span>
</div>
<div class="viewcode-block" id="pytest_runtest_makereport"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_runtest_makereport">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_runtest_makereport</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">call</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return a :py:class:`_pytest.runner.TestReport` object</span>
<span class="sd">    for the given :py:class:`pytest.Item` and</span>
<span class="sd">    :py:class:`_pytest.runner.CallInfo`.</span>
<span class="sd">    &quot;&quot;&quot;</span></div>
<span class="n">pytest_runtest_makereport</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<div class="viewcode-block" id="pytest_runtest_logreport"><a class="viewcode-back" href="../../plugins.html#_pytest.hookspec.pytest_runtest_logreport">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_runtest_logreport</span><span class="p">(</span><span class="n">report</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; process a test setup/call/teardown report relating to</span>
<span class="sd">    the respective phase of executing a test. &quot;&quot;&quot;</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># test session related hooks</span>
<span class="c"># -------------------------------------------------------------------------</span>
</div>
<span class="k">def</span> <span class="nf">pytest_sessionstart</span><span class="p">(</span><span class="n">session</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; before session.main() is called. &quot;&quot;&quot;</span>

<span class="k">def</span> <span class="nf">pytest_sessionfinish</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">exitstatus</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; whole test run finishes. &quot;&quot;&quot;</span>


<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># hooks for customising the assert methods</span>
<span class="c"># -------------------------------------------------------------------------</span>

<div class="viewcode-block" id="pytest_assertrepr_compare"><a class="viewcode-back" href="../../assert.html#_pytest.hookspec.pytest_assertrepr_compare">[ドキュメント]</a><span class="k">def</span> <span class="nf">pytest_assertrepr_compare</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;return explanation for comparisons in failing assert expressions.</span>

<span class="sd">    Return None for no custom explanation, otherwise return a list</span>
<span class="sd">    of strings.  The strings will be joined by newlines but any newlines</span>
<span class="sd">    *in* a string will be escaped.  Note that all but the first line will</span>
<span class="sd">    be indented sligthly, the intention is for the first line to be a summary.</span>
<span class="sd">    &quot;&quot;&quot;</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># hooks for influencing reporting (invoked from _pytest_terminal)</span>
<span class="c"># -------------------------------------------------------------------------</span>
</div>
<span class="k">def</span> <span class="nf">pytest_report_header</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">startdir</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return a string to be displayed as header info for terminal reporting.&quot;&quot;&quot;</span>

<span class="k">def</span> <span class="nf">pytest_report_teststatus</span><span class="p">(</span><span class="n">report</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return result-category, shortletter and verbose word for reporting.&quot;&quot;&quot;</span>
<span class="n">pytest_report_teststatus</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="k">def</span> <span class="nf">pytest_terminal_summary</span><span class="p">(</span><span class="n">terminalreporter</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; add additional section in terminal summary reporting. &quot;&quot;&quot;</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># doctest hooks</span>
<span class="c"># -------------------------------------------------------------------------</span>

<span class="k">def</span> <span class="nf">pytest_doctest_prepare_content</span><span class="p">(</span><span class="n">content</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; return processed content for a given doctest&quot;&quot;&quot;</span>
<span class="n">pytest_doctest_prepare_content</span><span class="o">.</span><span class="n">firstresult</span> <span class="o">=</span> <span class="bp">True</span>

<span class="c"># -------------------------------------------------------------------------</span>
<span class="c"># error handling and internal debugging hooks</span>
<span class="c"># -------------------------------------------------------------------------</span>

<span class="k">def</span> <span class="nf">pytest_plugin_registered</span><span class="p">(</span><span class="n">plugin</span><span class="p">,</span> <span class="n">manager</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; a new py lib plugin got registered. &quot;&quot;&quot;</span>

<span class="k">def</span> <span class="nf">pytest_plugin_unregistered</span><span class="p">(</span><span class="n">plugin</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; a py lib plugin got unregistered. &quot;&quot;&quot;</span>

<span class="k">def</span> <span class="nf">pytest_internalerror</span><span class="p">(</span><span class="n">excrepr</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called for internal errors. &quot;&quot;&quot;</span>

<span class="k">def</span> <span class="nf">pytest_keyboard_interrupt</span><span class="p">(</span><span class="n">excinfo</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; called for keyboard interrupt. &quot;&quot;&quot;</span>
</pre></div>

          </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>ナビゲーション</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../py-modindex.html" title="Pythonモジュール索引"
             >モジュール</a></li>
        <li><a href="../../contents.html">pytest-2.2.4.0</a> &raquo;</li>
          <li><a href="../index.html" >モジュールコード</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2011, holger krekel et alii.
      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
    </div>
  </body>
</html>