/usr/share/doc/python-oslotest-doc/html/features.html is in python-oslotest-doc 1:2.3.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | <!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>Features — oslotest documentation</title>
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/tweaks.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '',
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>
<link rel="top" title="oslotest documentation" href="index.html" />
<link rel="next" title="Cross-project Unit Testing" href="cross-testing.html" />
<link rel="prev" title="Testing" href="testing.html" />
</head>
<body role="document">
<div id="header">
<h1 id="logo"><a href="http://www.openstack.org/">OpenStack</a></h1>
<ul id="navigation">
<li><a href="http://www.openstack.org/" title="Go to the Home page" class="link">Home</a></li>
<li><a href="http://www.openstack.org/projects/" title="Go to the OpenStack Projects page">Projects</a></li>
<li><a href="http://www.openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
<li><a href="http://www.openstack.org/community/" title="Go to the Community page" class="link">Community</a></li>
<li><a href="http://www.openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
<li><a href="http://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
<li><a href="http://docs.openstack.org/" title="Go to OpenStack Documentation" class="current">Documentation</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="features">
<h1>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h1>
<div class="section" id="debugging-with-oslo-debug-helper">
<h2>Debugging with oslo_debug_helper<a class="headerlink" href="#debugging-with-oslo-debug-helper" title="Permalink to this headline">¶</a></h2>
<p>The oslotest package also distributes a shell file that may be used to assist
in debugging python code. The shell file uses testtools, and supports debugging
with <a class="reference external" href="https://docs.python.org/2/library/pdb.html">pdb</a>.</p>
<div class="section" id="adding-breakpoints-to-the-code">
<h3>Adding breakpoints to the code<a class="headerlink" href="#adding-breakpoints-to-the-code" title="Permalink to this headline">¶</a></h3>
<p>The typical usage to break into the debugger from a running program is to
insert:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">pdb</span><span class="p">;</span> <span class="n">pdb</span><span class="o">.</span><span class="n">set_trace</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="update-tox-ini">
<h3>Update tox.ini<a class="headerlink" href="#update-tox-ini" title="Permalink to this headline">¶</a></h3>
<p>Within the <code class="docutils literal"><span class="pre">tox.ini</span></code> file of your project add the following:</p>
<div class="highlight-python"><div class="highlight"><pre>[testenv:debug]
commands = oslo_debug_helper {posargs}
</pre></div>
</div>
<p>If the project name, and the module that precedes the tests directory do not
match, then consider passing a <cite>-t</cite> argument to <cite>oslo_debug_helper</cite> to
indicate the directory where tests are located.</p>
<p>For example, the <code class="docutils literal"><span class="pre">python-keystoneclient</span></code> project has tests in
<code class="docutils literal"><span class="pre">keystoneclient/tests</span></code>, thus it would have to pass in:</p>
<div class="highlight-python"><div class="highlight"><pre>[testenv:debug]
commands = oslo_debug_helper -t keystoneclient/tests {posargs}
</pre></div>
</div>
<p>Similarly, most <code class="docutils literal"><span class="pre">oslo</span></code> projects have the tests at the package level, it
would have to pass in:</p>
<div class="highlight-python"><div class="highlight"><pre>[testenv:debug]
commands = oslo_debug_helper -t tests {posargs}
</pre></div>
</div>
</div>
<div class="section" id="debugging-with-tox">
<h3>Debugging with tox<a class="headerlink" href="#debugging-with-tox" title="Permalink to this headline">¶</a></h3>
<p>To enable debugging, run tox with the <code class="docutils literal"><span class="pre">debug</span></code> environment:</p>
<div class="highlight-bash"><div class="highlight"><pre>$ tox -e debug
$ tox -e debug test_notifications
$ tox -e debug test_notifications.NotificationsTestCase
$ tox -e debug test_notifications.NotificationsTestCase.test_send_notification
</pre></div>
</div>
<p>Which results in an interactive prompt:</p>
<div class="highlight-bash"><div class="highlight"><pre>> /opt/stack/ceilometer/ceilometer/tests/identity/test_notifications.py<span class="o">(</span>106<span class="o">)</span>notification_for_role_change<span class="o">()</span>
-> <span class="nv">action_name</span> <span class="o">=</span> <span class="s1">'%s.%s'</span> % <span class="o">(</span>action, ROLE_ASSIGNMENT<span class="o">)</span>
<span class="o">(</span>Pdb<span class="o">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Features</a><ul>
<li><a class="reference internal" href="#debugging-with-oslo-debug-helper">Debugging with oslo_debug_helper</a><ul>
<li><a class="reference internal" href="#adding-breakpoints-to-the-code">Adding breakpoints to the code</a></li>
<li><a class="reference internal" href="#update-tox-ini">Update tox.ini</a></li>
<li><a class="reference internal" href="#debugging-with-tox">Debugging with tox</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="testing.html"
title="previous chapter">Testing</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="cross-testing.html"
title="next chapter">Cross-project Unit Testing</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/features.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" size="18" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="cross-testing.html" title="Cross-project Unit Testing"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="testing.html" title="Testing"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">oslotest documentation</a> »</li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2014, OpenStack Foundation.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.5.
</div>
<script type="text/javascript">
try {
//Tracking docs.openstack.org/developer/<projectname> only
//The URL is built from the project variable in conf.py
var pageTracker = _gat._getTracker("UA-17511903-1");
pageTracker._setCookiePath("/developer/oslotest");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
|