Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 34af46b239e4bd529fa8060ba3c2cc13 > files > 194

python3-oslo-test-3.4.1-3.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>

    <title>OpenStack Docs: Cross-project Unit Testing</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

<!-- Bootstrap CSS -->
<link href="../_static/css/bootstrap.min.css" rel="stylesheet">

<!-- Pygments CSS -->
<link href="../_static/css/native.css" rel="stylesheet">

<!-- Fonts -->
<link href="../_static/css/font-awesome.min.css" rel="stylesheet">

<!-- Custom CSS -->
<link href="../_static/css/combined.css" rel="stylesheet">

<!-- Search CSS -->
<link href="../_static/css/search.css" rel="stylesheet">

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<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/language_data.js"></script>
  


<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-17511903-1', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->

  </head>
  <body>

<!-- SOURCE_FILE: https://git.openstack.org/cgit/openstack/oslotest/tree/doc/source/user/cross-testing.rst -->

 <script>
    (function (window, document) {
        var loader = function () {
            var script = document.createElement("script"), tag = document.getElementsByTagName("script")[0];
            script.src = "https://search.openstack.org/widget/embed.min.js?t="+Date.now();
            tag.parentNode.insertBefore(script, tag);
        };
        window.addEventListener ? window.addEventListener("load", loader, false) : window.attachEvent("onload", loader);
    })(window, document);
</script>
<nav class="navbar navbar-default" role="navigation">
  <div class="container">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button class="navbar-toggle" data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" type="button">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <div class="brand-wrapper">
        <a class="navbar-brand" href="https://www.openstack.org/"></a>
      </div>
      <div class="search-icon show"><i class="fa fa-search"></i> Search</div></div>
      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <div class="search-container tiny">
    <div class="openstack-search-bar" data-baseUrl="search.openstack.org" data-context="docs-openstack"></div>
</div>
      <ul class="nav navbar-nav navbar-main show">
        <li class="search-container-mobile">
    <div class="openstack-search-bar" data-baseUrl="search.openstack.org" data-context="docs-openstack"></div>
</li>
        <li>
          <a href="https://www.openstack.org/software/" class="drop" id="dropdownMenuSoftware">Software <i class="fa fa-caret-down"></i></a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuSoftware">
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/">Overview</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/project-navigator/openstack-components">Project Navigator</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/sample-configs/">Sample Configs</a></li>
            <li role="presentation" class="divider"></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/security/">Security</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/start/">Get Started</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/roadmap/">Roadmap</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/latest-release/">Latest Release</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/software/sourcecode/">Source Code</a></li>
          </ul>
        </li>
        <li>
          <a href="https://www.openstack.org/user-stories/" class="drop" id="dropdownMenuUsers">Users <i class="fa fa-caret-down"></i></a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuUsers">
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/user-stories/">Overview</a></li>
            <li role="presentation" class="divider"></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/telecoms-and-nfv/">Telecoms and NFV</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/enterprise/">OpenStack in the Enterprise</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/appdev/">Application Developers & ISVs</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="http://superuser.openstack.org/">Superuser Magazine</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/surveys/landing">User Survey</a></li>
          </ul>
        </li>
        <li>
          <a href="https://www.openstack.org/community/" class="drop" id="dropdownMenuCommunity">Community <i class="fa fa-caret-down"></i></a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuCommunity">
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/community/">Welcome! Start Here</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/foundation/">OpenStack Foundation</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://wiki.openstack.org">OpenStack Wiki</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://groups.openstack.org">User Groups</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/community/speakers/">Speakers Bureau</a></li>
            <li role="presentation" class="divider"></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/foundation/companies/">Supporting Companies</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/community/jobs/">Jobs</a></li>
            <li role="presentation" class="divider"></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/join/">Join The Community</a></li>
          </ul>
        </li>
        <li>
          <a href="https://www.openstack.org/marketplace/">Marketplace</a>
        </li>
        <li>
          <a href="https://www.openstack.org/events/" class="drop" id="dropdownMenuEvents">Events <i class="fa fa-caret-down"></i></a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuEvents">
            <li role="presentation"><a role="menuitem" tabindex="-1" href="//www.openstack.org/community/events/">Overview</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/summit/">The OpenStack Summit</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="//www.openstack.org/community/events/">More OpenStack Events</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/community/events/openstackdays">OpenStack Days</a></li>
          </ul>
        </li>
        <li>
          <a href="https://www.openstack.org/learn/" class="drop" id="dropdownMenuLearn">Learn <i class="fa fa-caret-down"></i></a>
          <ul class="dropdown-menu dropdown-hover" role="menu" aria-labelledby="dropdownMenuEvents">
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/marketplace/training/">Training</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/coa/">Get Certified</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="//ask.openstack.org">Ask a Technical Question</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="//superuser.openstack.org">Superuser Magazine</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/videos/">Summit Videos</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/analysts/">Analyst Reports</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/news/">News</a></li>
            <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/blog/">Blog</a></li>
          </ul>
        </li>
        <li>
          <a href="https://docs.openstack.org/">Docs</a>
        </li>
        <li>

</li>


            <li>

                <li class="join-nav-section">
                    <a href="https://www.openstack.org/join/" id="dropdownMenuJoin">Join <i class="fa fa-caret-down"></i></a>
                    <ul class="dropdown-menu dropdown-hover" role="menu" aria-labelledby="dropdownMenuJoin" style="display: none;">
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/join/register/?membership-type=foundation">Sign up for Foundation Membership</a></li>
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/join/#sponsor">Sponsor the Foundation</a></li>
                        <li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/foundation">More about the Foundation</a></li>
                    </ul>
                </li>
                <li>
                    <a href="https://www.openstack.org/Security/login/?BackURL=/home/" class="sign-in-btn">Log In</a>
                </li>

            </li>
      </ul>
    </div>
  </div>
  <!-- /.container -->
</nav>
    <div class="container docs-book-wrapper">
      <div class="row">
        <div class="col-lg-9 col-md-8 col-sm-8 col-lg-push-3 col-md-push-4 col-sm-push-4">
<div class="row">
  <div class="col-lg-8">
      <h2>Cross-project Unit Testing</h2>
    
  </div>
  <div class="docs-actions">
    
    <a href="mock-autospec.html"><i class="fa fa-angle-double-left" data-toggle="tooltip" data-placement="top" title="Previous: Mock autospec"></i></a>
    
    
    <a href="resources.html"><i class="fa fa-angle-double-right" data-toggle="tooltip" data-placement="top" title="Next: Other Useful Resources"></i></a>
    
    <a id="logABugLink1" href="" target="_blank" title="Found an error? Report a bug against this page"><i class="fa fa-bug" data-toggle="tooltip" data-placement="top" title="Report a Bug"></i></a>
    
  </div>
</div>
          <div class="row docs-byline">
            <div class="docs-updated">this page last updated: 2019-01-09 17:24:56.420427</div>
          </div>
          <div class="row">
            <div class="col-lg-12">
              <div class="docs-body">

  <div class="section" id="cross-project-unit-testing">
<h1>Cross-project Unit Testing<a class="headerlink" href="#cross-project-unit-testing" title="Permalink to this headline">¶</a></h1>
<p>Libraries in OpenStack have an unusual ability to introduce breaking
changes. All of the projects are run together from source in one form
or another during the integration tests, but they are not combined
from source when unit tests are run. The server applications do not
generally import code from other projects, so their unit tests are
isolated. The libraries, however, are fundamentally intended to be
used during unit tests as well as integration tests. Testing the full
cross-product of libraries and consuming projects would consume all
available test servers, and so we cannot run all of the tests on all
patches to the libraries. As an alternative, we have a few scripts in
<code class="docutils literal notranslate"><span class="pre">oslotest</span></code> for running the unit tests in serial. The result takes
far too long (usually overnight) to run in the OpenStack
infrastructure. Instead, they are usually run by hand on a dedicated
system. A cloud VM works well for this purpose, especially considering
how much of it is now automated.</p>
<div class="section" id="check-out-openstack-source">
<h2>Check Out OpenStack Source<a class="headerlink" href="#check-out-openstack-source" title="Permalink to this headline">¶</a></h2>
<p>The first step for all of the cross-project unit tests tools is to
ensure that you have a full copy of the OpenStack source checked
out. You can do this yourself through gerrit’s ssh API, or you can use
the <code class="docutils literal notranslate"><span class="pre">clone_openstack.sh</span></code> command in the tools directory of the
<code class="docutils literal notranslate"><span class="pre">openstack/oslo-incubator</span></code> repository.</p>
<p>For example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ mkdir -p ~/repos/openstack
$ cd ~/repos/openstack
$ git clone git://git.openstack.org/openstack/oslo-incubator
$ cd ~/repos
$ ./openstack/oslo-incubator/tools/clone_openstack.sh
</pre></div>
</div>
<p>The first time the script runs it will take quite some time, since it
has to download the entire history of every OpenStack project.</p>
</div>
<div class="section" id="testing-one-project">
<h2>Testing One Project<a class="headerlink" href="#testing-one-project" title="Permalink to this headline">¶</a></h2>
<p><code class="docutils literal notranslate"><span class="pre">oslo_run_cross_tests</span></code> runs one set of unit tests for one library
against all of the consuming projects. It should be run from the
directory with the library to be tested, and passed arguments telling
it about another project whose tests should be run.</p>
<p>For example, to run the <code class="docutils literal notranslate"><span class="pre">py27</span></code> test suite from nova using the
currently checked out sources for <code class="docutils literal notranslate"><span class="pre">oslo.config</span></code>, run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd ~/repos/openstack/oslo.config
$ tox -e venv -- oslo_run_cross_tests ~/repos/openstack/nova py27
</pre></div>
</div>
</div>
<div class="section" id="testing-all-consumers">
<h2>Testing All Consumers<a class="headerlink" href="#testing-all-consumers" title="Permalink to this headline">¶</a></h2>
<p><code class="docutils literal notranslate"><span class="pre">oslo_run_pre_release_tests</span></code> builds on <code class="docutils literal notranslate"><span class="pre">oslo_run_cross_tests</span></code> to
find all of the consuming projects and run their tests
automatically. The pre-release script needs to know where the source
has been checked out, so the first step is to create its configuration
file.</p>
<p>Edit <code class="docutils literal notranslate"><span class="pre">~/.oslo.conf</span></code> to contain:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">DEFAULT</span><span class="p">]</span>
<span class="n">repo_root</span> <span class="o">=</span> <span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">repos</span>
</pre></div>
</div>
<p>Replace <code class="docutils literal notranslate"><span class="pre">/path/to/repos</span></code> with the full, expanded, absolute path to
the location where the source code was checked out. For example, if
you followed the instructions above using <code class="docutils literal notranslate"><span class="pre">clone_openstack.sh</span></code> in
<code class="docutils literal notranslate"><span class="pre">~/repos</span></code> and your user name is <code class="docutils literal notranslate"><span class="pre">theuser</span></code> the path would be
<code class="docutils literal notranslate"><span class="pre">/home/theuser/repos</span></code>.</p>
<p>Returning to the earlier example, to test <code class="docutils literal notranslate"><span class="pre">oslo.config</span></code> with all of
the projects that use it, go to the <code class="docutils literal notranslate"><span class="pre">oslo.config</span></code> source directory
and run <code class="docutils literal notranslate"><span class="pre">oslo_run_pre_release_tests</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd ~/repos/openstack/oslo.config
$ tox -e venv -- oslo_run_pre_release_tests
</pre></div>
</div>
<p>The output for each test set is logged to a separate file in the
current directory, to make them easy to examine.</p>
<p>Use the <code class="docutils literal notranslate"><span class="pre">--update</span></code> or <code class="docutils literal notranslate"><span class="pre">-u</span></code> option to force a <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">pull</span></code> for each
consuming projects before running its tests (useful for maintaining a
long-running system to host these tests).</p>
<p>Use the <code class="docutils literal notranslate"><span class="pre">--verbose</span></code> or <code class="docutils literal notranslate"><span class="pre">-v</span></code> option to report more verbosely about
what is happening, including the number of projects being tested.</p>
<p>Use <code class="docutils literal notranslate"><span class="pre">--env</span></code> or <code class="docutils literal notranslate"><span class="pre">-e</span></code> to add a tox environment to test. By default
the <code class="docutils literal notranslate"><span class="pre">py27</span></code> and <code class="docutils literal notranslate"><span class="pre">pep8</span></code> environments are used because those have
been shown to provide a good balance between finding problems and
running the tests quickly.</p>
<p>Use the <code class="docutils literal notranslate"><span class="pre">--ref</span></code> option to test a specific commit reference of the
library under test. The default is to leave the source directory
untouched, but if this option is specified <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">checkout</span></code> is used to
force the source tree to the specified reference.</p>
</div>
</div>


              </div>
            </div>
          </div>
          <div class="docs-actions">
          
            <a href="mock-autospec.html"><i class="fa fa-angle-double-left" data-toggle="tooltip" data-placement="top" title="Previous: Mock autospec"></i></a>
          
          
            <a href="resources.html"><i class="fa fa-angle-double-right" data-toggle="tooltip" data-placement="top" title="Next: Other Useful Resources"></i></a>
          
            <a id="logABugLink3" href="" target="_blank" title="Found an error? Report a bug against this page"><i class="fa fa-bug" data-toggle="tooltip" data-placement="top" title="Report a Bug"></i></a>
          
          </div>
          <div class="row docs-byline bottom">
            <div class="docs-updated">this page last updated: 2019-01-09 17:24:56.420427</div>
          </div>
          <div class="row">
            <div class="col-lg-8 col-md-8 col-sm-8 docs-license">
<a href="https://creativecommons.org/licenses/by/3.0/">
 <img src="../_static/images/docs/license.png" alt="Creative Commons Attribution 3.0 License"/>
</a>
<p>
 Except where otherwise noted, this document is licensed under
 <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons
 Attribution 3.0 License</a>. See all <a href="http://www.openstack.org/legal">
 OpenStack Legal Documents</a>.
</p>
            </div>
            <div class="col-lg-4 col-md-4 col-sm-4 docs-actions-wrapper">
            <!-- ID buglinkbottom added so that pre-filled doc bugs
                 are sent to Launchpad projects related to the
                 document -->
              <a href="#" id="logABugLink2" class="docs-footer-actions"><i class="fa fa-bug"></i> found an error? report a bug</a>
              <a href="http://ask.openstack.org" class="docs-footer-actions"><i class="fa fa-question-circle"></i> questions?</a>
            </div>
          </div>
        </div>
<div class="col-lg-3 col-md-4 col-sm-4 col-lg-pull-9 col-md-pull-8 col-sm-pull-8 docs-sidebar">
  <div class="btn-group docs-sidebar-releases">
    <button onclick="location.href='/'" class="btn docs-sidebar-home" data-toggle="tooltip" data-placement="top" title="OpenStack Docs Home"><i class="fa fa-arrow-circle-o-left"></i></button>
<button href="#" type="button" data-toggle="dropdown" class="btn docs-sidebar-release-select">OpenStack Documentation<i class="fa fa-caret-down"></i></button>
    <ul class="dropdown-menu docs-sidebar-dropdown" role="menu" aria-labelledby="dLabel">
      <li role="presentation" class="dropdown-header">Guides</li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#install-guides">Install Guides</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#user-guides">User Guides</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#configuration-guides">Configuration Guides</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#ops-and-admin-guides">Operations and Administration Guides</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#api-guides">API Guides</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#contributor-guides">Contributor Guides</a></li>
      <li role="presentation" class="dropdown-header">Languages</li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/de/">Deutsch (German)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/fr/">Français (French)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/id/">Bahasa Indonesia (Indonesian)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/it/">Italiano (Italian)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/ja/">日本語 (Japanese)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/ko_KR/">한국어 (Korean)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/pt_BR/">Português (Portuguese)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/tr_TR/">Türkçe (Türkiye)</a></li>
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/zh_CN/">简体中文 (Simplified Chinese)</a></li>
    </ul>
  </div>
  <div class="docs-sidebar-toc">
    <div class="docs-sidebar-section" id="table-of-contents">
      <a href="../index.html" class="docs-sidebar-section-title"><h4>oslotest </h4></a>
      <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../install/index.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributor/index.html">Contributing</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Using oslotest</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html">Debugging Tests</a></li>
<li class="toctree-l2"><a class="reference internal" href="testing.html">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="mock-autospec.html">Mock autospec</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Cross-project Unit Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="resources.html">Other Useful Resources</a></li>
<li class="toctree-l2"><a class="reference internal" href="history.html">CHANGES</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">API</a></li>
</ul>

    </div>

  <div class="docs-sidebar-toc">
    <div class="docs-sidebar-section" id="local-table-of-contents">
      <h4 class="docs-sidebar-section-title">Page Contents</h4>
      <ul>
<li><a class="reference internal" href="#">Cross-project Unit Testing</a><ul>
<li><a class="reference internal" href="#check-out-openstack-source">Check Out OpenStack Source</a></li>
<li><a class="reference internal" href="#testing-one-project">Testing One Project</a></li>
<li><a class="reference internal" href="#testing-all-consumers">Testing All Consumers</a></li>
</ul>
</li>
</ul>

    </div>
  </div>
  </div>
</div>
      </div>
    </div>
<footer>
  <div class="container">
    <div class="row footer-links">
      <div class="col-lg-2 col-sm-2">
        <h3>OpenStack</h3>
        <ul>
          <li><a href="http://openstack.org/projects/">Projects</a></li>
          <li><a href="http://openstack.org/projects/openstack-security/">OpenStack Security</a></li>
          <li><a href="http://openstack.org/projects/openstack-faq/">Common Questions</a></li>
          <li><a href="http://openstack.org/blog/">Blog</a></li>
          <li><a href="http://openstack.org/news/">News</a></li>
        </ul>
      </div>
      <div class="col-lg-2 col-sm-2">
        <h3>Community</h3>
        <ul>
          <li><a href="http://openstack.org/community/">User Groups</a></li>
          <li><a href="http://openstack.org/community/events/">Events</a></li>
          <li><a href="http://openstack.org/community/jobs/">Jobs</a></li>
          <li><a href="http://openstack.org/foundation/companies/">Companies</a></li>
          <li><a href="http://docs.openstack.org/infra/manual/developers.html">Contribute</a></li>
        </ul>
      </div>
      <div class="col-lg-2 col-sm-2">
        <h3>Documentation</h3>
        <ul>
          <li><a href="http://docs.openstack.org">OpenStack Manuals</a></li>
          <li><a href="http://openstack.org/software/start/">Getting Started</a></li>
          <li><a href="http://developer.openstack.org">API Documentation</a></li>
          <li><a href="https://wiki.openstack.org">Wiki</a></li>
        </ul>
      </div>
      <div class="col-lg-2 col-sm-2">
        <h3>Branding & Legal</h3>
        <ul>
          <li><a href="http://openstack.org/brand/">Logos & Guidelines</a></li>
          <li><a href="http://openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
          <li><a href="http://openstack.org/privacy/">Privacy Policy</a></li>
          <li><a href="https://wiki.openstack.org/wiki/How_To_Contribute#Contributor_License_Agreement">OpenStack CLA</a></li>
        </ul>
      </div>
      <div class="col-lg-4 col-sm-4">
        <h3>Stay In Touch</h3>
        <a href="https://twitter.com/OpenStack" target="_blank" class="social-icons footer-twitter"></a>
        <a href="https://www.facebook.com/openstack" target="_blank" class="social-icons footer-facebook"></a>
        <a href="https://www.linkedin.com/company/openstack" target="_blank" class="social-icons footer-linkedin"></a>
        <a href="https://www.youtube.com/user/OpenStackFoundation" target="_blank" class="social-icons footer-youtube"></a>
        <p class="fine-print">
          The OpenStack project is provided under the
          <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 license</a>. Openstack.org is powered by
          <a href="http://rackspace.com" target="_blank">Rackspace Cloud Computing</a>.
        </p>
      </div>
    </div>
  </div>
</footer>
<!-- jQuery -->
<script type="text/javascript" src="../_static/js/jquery-3.2.1.min.js"></script>

<!-- Bootstrap JavaScript -->
<script type="text/javascript" src="../_static/js/bootstrap.min.js"></script>

<!-- The rest of the JS -->
<script type="text/javascript" src="../_static/js/navigation.js"></script>

<!-- Docs JS -->
<script type="text/javascript" src="../_static/js/docs.js"></script>

<!-- Popovers -->
<script type="text/javascript" src="../_static/js/webui-popover.js"></script>

<!-- standard sphinx include libraries, which allow search highlighting -->
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/searchtools.js"></script>

<script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        SOURCELINK_SUFFIX: '.txt',
        HAS_SOURCE:  true
      };
</script>


<!-- Javascript for page -->
<script language="JavaScript">
/* build a description of this page including SHA, source location on git repo,
   build time and the project's launchpad bug tag. Set the HREF of the bug
   buttons */

    var lineFeed = "%0A";
    var gitURL = "Source: Can't derive source file URL";

    /* there have been cases where "pagename" wasn't set; better check for it */
        /* "giturl" is the URL of the source file on Git and is auto-generated by
           openstackdocstheme.

           "pagename" is a standard sphinx parameter containing the name of
           the source file, without extension.                             */

        var sourceFile = "user/cross-testing" + ".rst";
        gitURL = "Source: https://git.openstack.org/cgit/openstack/oslotest/tree/doc/source" + "/" + sourceFile;

    /* gitsha, project and bug_tag rely on variables in conf.py */
    var gitSha = "SHA: unknown";
    var repositoryName = "openstack/oslotest";
        var bugProject = "oslotest";
        var bugTitle = "Cross-project Unit Testing in oslotest";
    var fieldTags = "";
        var useStoryboard = "";


    /* "last_updated" is the build date and time. It relies on the
       conf.py variable "html_last_updated_fmt", which should include
       year/month/day as well as hours and minutes                   */
    var buildstring = "Release:  on 2019-01-09 17:24:56.420427";

    var fieldComment = encodeURI(buildstring) +
                       lineFeed + encodeURI(gitSha) +
                       lineFeed + encodeURI(gitURL) ;

    logABug(bugTitle, bugProject, fieldComment, fieldTags, repositoryName, useStoryboard);
</script>


  </body>
</html>