<!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.mark</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> »</li> <li><a href="../index.html" accesskey="U">モジュールコード</a> »</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.mark のソースコード</h1><div class="highlight"><pre> <span class="sd">""" generic mechanism for marking and selecting python functions. """</span> <span class="kn">import</span> <span class="nn">pytest</span><span class="o">,</span> <span class="nn">py</span> <span class="k">def</span> <span class="nf">pytest_namespace</span><span class="p">():</span> <span class="k">return</span> <span class="p">{</span><span class="s">'mark'</span><span class="p">:</span> <span class="n">MarkGenerator</span><span class="p">()}</span> <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="n">group</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">getgroup</span><span class="p">(</span><span class="s">"general"</span><span class="p">)</span> <span class="n">group</span><span class="o">.</span><span class="n">_addoption</span><span class="p">(</span><span class="s">'-k'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"keyword"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">''</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">"EXPRESSION"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"only run tests which match the given substring expression. "</span> <span class="s">"An expression is a python evaluatable expression "</span> <span class="s">"where all names are substring-matched against test names "</span> <span class="s">"and keywords. Example: -k 'test_method or test_other' "</span> <span class="s">"matches all test functions whose name contains "</span> <span class="s">"'test_method' or 'test_other'."</span><span class="p">)</span> <span class="n">group</span><span class="o">.</span><span class="n">_addoption</span><span class="p">(</span><span class="s">"-m"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"markexpr"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">""</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">"MARKEXPR"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"only run tests matching given mark expression. "</span> <span class="s">"example: -m 'mark1 and not mark2'."</span> <span class="p">)</span> <span class="n">group</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s">"--markers"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store_true"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span> <span class="s">"show markers (builtin, plugin and per-project ones)."</span><span class="p">)</span> <span class="n">parser</span><span class="o">.</span><span class="n">addini</span><span class="p">(</span><span class="s">"markers"</span><span class="p">,</span> <span class="s">"markers for test functions"</span><span class="p">,</span> <span class="s">'linelist'</span><span class="p">)</span> <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="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">option</span><span class="o">.</span><span class="n">markers</span><span class="p">:</span> <span class="n">config</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">do_configure</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> <span class="n">tw</span> <span class="o">=</span> <span class="n">py</span><span class="o">.</span><span class="n">io</span><span class="o">.</span><span class="n">TerminalWriter</span><span class="p">()</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">getini</span><span class="p">(</span><span class="s">"markers"</span><span class="p">):</span> <span class="n">name</span><span class="p">,</span> <span class="n">rest</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">":"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="n">tw</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"@pytest.mark.</span><span class="si">%s</span><span class="s">:"</span> <span class="o">%</span> <span class="n">name</span><span class="p">,</span> <span class="n">bold</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="n">tw</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">rest</span><span class="p">)</span> <span class="n">tw</span><span class="o">.</span><span class="n">line</span><span class="p">()</span> <span class="n">config</span><span class="o">.</span><span class="n">pluginmanager</span><span class="o">.</span><span class="n">do_unconfigure</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> <span class="k">return</span> <span class="mi">0</span> <span class="n">pytest_cmdline_main</span><span class="o">.</span><span class="n">tryfirst</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">items</span><span class="p">,</span> <span class="n">config</span><span class="p">):</span> <span class="n">keywordexpr</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">option</span><span class="o">.</span><span class="n">keyword</span> <span class="n">matchexpr</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="n">option</span><span class="o">.</span><span class="n">markexpr</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">keywordexpr</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">matchexpr</span><span class="p">:</span> <span class="k">return</span> <span class="n">selectuntil</span> <span class="o">=</span> <span class="bp">False</span> <span class="k">if</span> <span class="n">keywordexpr</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">:]</span> <span class="o">==</span> <span class="s">":"</span><span class="p">:</span> <span class="n">selectuntil</span> <span class="o">=</span> <span class="bp">True</span> <span class="n">keywordexpr</span> <span class="o">=</span> <span class="n">keywordexpr</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="n">remaining</span> <span class="o">=</span> <span class="p">[]</span> <span class="n">deselected</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">colitem</span> <span class="ow">in</span> <span class="n">items</span><span class="p">:</span> <span class="k">if</span> <span class="n">keywordexpr</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">matchkeyword</span><span class="p">(</span><span class="n">colitem</span><span class="p">,</span> <span class="n">keywordexpr</span><span class="p">):</span> <span class="n">deselected</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">colitem</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="k">if</span> <span class="n">selectuntil</span><span class="p">:</span> <span class="n">keywordexpr</span> <span class="o">=</span> <span class="bp">None</span> <span class="k">if</span> <span class="n">matchexpr</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">matchmark</span><span class="p">(</span><span class="n">colitem</span><span class="p">,</span> <span class="n">matchexpr</span><span class="p">):</span> <span class="n">deselected</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">colitem</span><span class="p">)</span> <span class="k">continue</span> <span class="n">remaining</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">colitem</span><span class="p">)</span> <span class="k">if</span> <span class="n">deselected</span><span class="p">:</span> <span class="n">config</span><span class="o">.</span><span class="n">hook</span><span class="o">.</span><span class="n">pytest_deselected</span><span class="p">(</span><span class="n">items</span><span class="o">=</span><span class="n">deselected</span><span class="p">)</span> <span class="n">items</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">remaining</span> <span class="k">class</span> <span class="nc">BoolDict</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">mydict</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mydict</span> <span class="o">=</span> <span class="n">mydict</span> <span class="k">def</span> <span class="nf">__getitem__</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="k">return</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mydict</span> <span class="k">class</span> <span class="nc">SubstringDict</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">mydict</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mydict</span> <span class="o">=</span> <span class="n">mydict</span> <span class="k">def</span> <span class="nf">__getitem__</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="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mydict</span><span class="p">:</span> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">key</span><span class="p">:</span> <span class="k">return</span> <span class="bp">True</span> <span class="k">return</span> <span class="bp">False</span> <span class="k">def</span> <span class="nf">matchmark</span><span class="p">(</span><span class="n">colitem</span><span class="p">,</span> <span class="n">matchexpr</span><span class="p">):</span> <span class="k">return</span> <span class="nb">eval</span><span class="p">(</span><span class="n">matchexpr</span><span class="p">,</span> <span class="p">{},</span> <span class="n">BoolDict</span><span class="p">(</span><span class="n">colitem</span><span class="o">.</span><span class="n">keywords</span><span class="p">))</span> <span class="k">def</span> <span class="nf">matchkeyword</span><span class="p">(</span><span class="n">colitem</span><span class="p">,</span> <span class="n">keywordexpr</span><span class="p">):</span> <span class="n">keywordexpr</span> <span class="o">=</span> <span class="n">keywordexpr</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">"-"</span><span class="p">,</span> <span class="s">"not "</span><span class="p">)</span> <span class="k">return</span> <span class="nb">eval</span><span class="p">(</span><span class="n">keywordexpr</span><span class="p">,</span> <span class="p">{},</span> <span class="n">SubstringDict</span><span class="p">(</span><span class="n">colitem</span><span class="o">.</span><span class="n">keywords</span><span class="p">))</span> <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="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">option</span><span class="o">.</span><span class="n">strict</span><span class="p">:</span> <span class="n">pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">_config</span> <span class="o">=</span> <span class="n">config</span> <div class="viewcode-block" id="MarkGenerator"><a class="viewcode-back" href="../../mark.html#_pytest.mark.MarkGenerator">[ドキュメント]</a><span class="k">class</span> <span class="nc">MarkGenerator</span><span class="p">:</span> <span class="sd">""" Factory for :class:`MarkDecorator` objects - exposed as</span> <span class="sd"> a ``py.test.mark`` singleton instance. Example::</span> <span class="sd"> import py</span> <span class="sd"> @py.test.mark.slowtest</span> <span class="sd"> def test_function():</span> <span class="sd"> pass</span> <span class="sd"> will set a 'slowtest' :class:`MarkInfo` object</span> <span class="sd"> on the ``test_function`` object. """</span> <span class="k">def</span> <span class="nf">__getattr__</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="k">if</span> <span class="n">name</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">"_"</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'_config'</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">return</span> <span class="n">MarkDecorator</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_check</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="k">try</span><span class="p">:</span> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_markers</span><span class="p">:</span> <span class="k">return</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">_markers</span> <span class="o">=</span> <span class="n">l</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</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">_config</span><span class="o">.</span><span class="n">getini</span><span class="p">(</span><span class="s">"markers"</span><span class="p">):</span> <span class="n">beginning</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">":"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="n">x</span> <span class="o">=</span> <span class="n">beginning</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">"("</span><span class="p">,</span> <span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="n">l</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_markers</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s">"</span><span class="si">%r</span><span class="s"> not a registered marker"</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,))</span> </div> <div class="viewcode-block" id="MarkDecorator"><a class="viewcode-back" href="../../mark.html#_pytest.mark.MarkDecorator">[ドキュメント]</a><span class="k">class</span> <span class="nc">MarkDecorator</span><span class="p">:</span> <span class="sd">""" A decorator for test functions and test classes. When applied</span> <span class="sd"> it will create :class:`MarkInfo` objects which may be</span> <span class="sd"> :ref:`retrieved by hooks as item keywords <excontrolskip>`.</span> <span class="sd"> MarkDecorator instances are often created like this::</span> <span class="sd"> mark1 = py.test.mark.NAME # simple MarkDecorator</span> <span class="sd"> mark2 = py.test.mark.NAME(name1=value) # parametrized MarkDecorator</span> <span class="sd"> and can then be applied as decorators to test functions::</span> <span class="sd"> @mark2</span> <span class="sd"> def test_function():</span> <span class="sd"> pass</span> <span class="sd"> """</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">name</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">kwargs</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">markname</span> <span class="o">=</span> <span class="n">name</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span> <span class="ow">or</span> <span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{}</span> <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">d</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__dict__</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="n">name</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">'markname'</span><span class="p">)</span> <span class="k">return</span> <span class="s">"<MarkDecorator </span><span class="si">%r</span><span class="s"> </span><span class="si">%r</span><span class="s">>"</span> <span class="o">%</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span> <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> <span class="sd">""" if passed a single callable argument: decorate it with mark info.</span> <span class="sd"> otherwise add *args/**kwargs in-place to mark information. """</span> <span class="k">if</span> <span class="n">args</span><span class="p">:</span> <span class="n">func</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</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">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="s">'__call__'</span><span class="p">)</span> <span class="ow">or</span> \ <span class="nb">hasattr</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="s">'__bases__'</span><span class="p">):</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="s">'__bases__'</span><span class="p">):</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="s">'pytestmark'</span><span class="p">):</span> <span class="n">l</span> <span class="o">=</span> <span class="n">func</span><span class="o">.</span><span class="n">pytestmark</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> <span class="n">func</span><span class="o">.</span><span class="n">pytestmark</span> <span class="o">=</span> <span class="p">[</span><span class="n">l</span><span class="p">,</span> <span class="bp">self</span><span class="p">]</span> <span class="k">else</span><span class="p">:</span> <span class="n">l</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">func</span><span class="o">.</span><span class="n">pytestmark</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="p">]</span> <span class="k">else</span><span class="p">:</span> <span class="n">holder</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">markname</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="k">if</span> <span class="n">holder</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="n">holder</span> <span class="o">=</span> <span class="n">MarkInfo</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">markname</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span> <span class="nb">setattr</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">markname</span><span class="p">,</span> <span class="n">holder</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">holder</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">return</span> <span class="n">func</span> <span class="n">kw</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="n">kw</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="p">)</span> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">+</span> <span class="n">args</span> <span class="k">return</span> <span class="bp">self</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">markname</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="n">kw</span><span class="p">)</span> </div> <div class="viewcode-block" id="MarkInfo"><a class="viewcode-back" href="../../mark.html#_pytest.mark.MarkInfo">[ドキュメント]</a><span class="k">class</span> <span class="nc">MarkInfo</span><span class="p">:</span> <span class="sd">""" Marking object created by :class:`MarkDecorator` instances. """</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">name</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">):</span> <span class="c">#: name of attribute</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span> <span class="c">#: positional argument list, empty if none specified</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span> <span class="c">#: keyword argument dictionary, empty if nothing specified</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="bp">self</span><span class="o">.</span><span class="n">_arglist</span> <span class="o">=</span> <span class="p">[(</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">copy</span><span class="p">())]</span> <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="k">return</span> <span class="s">"<MarkInfo </span><span class="si">%r</span><span class="s"> args=</span><span class="si">%r</span><span class="s"> kwargs=</span><span class="si">%r</span><span class="s">>"</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span> <div class="viewcode-block" id="MarkInfo.add"><a class="viewcode-back" href="../../mark.html#_pytest.mark.MarkInfo.add">[ドキュメント]</a> <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">):</span> <span class="sd">""" add a MarkInfo with the given args and kwargs. """</span> <span class="bp">self</span><span class="o">.</span><span class="n">_arglist</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">))</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">+=</span> <span class="n">args</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="p">)</span> </div> <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="sd">""" yield MarkInfo objects each relating to a marking-call. """</span> <span class="k">for</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_arglist</span><span class="p">:</span> <span class="k">yield</span> <span class="n">MarkInfo</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">)</span> </pre></div></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> »</li> <li><a href="../index.html" >モジュールコード</a> »</li> </ul> </div> <div class="footer"> © Copyright 2011, holger krekel et alii. このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。 </div> </body> </html>