[openstack-dev] heat run_tests.sh fails with one huge line of output

Robert Collins robertc at robertcollins.net
Sun Feb 16 22:26:50 UTC 2014


On 17 February 2014 10:20, Mike Spreitzer <mspreitz at us.ibm.com> wrote:
> Kevin, I changed no code, it was a fresh DevStack install.
>

> Thanks Robert, I tried following your leads but got nowhere, perhaps I need
> a few more clues.
>
> I am not familiar with bzr (nor baz), and it wasn't obvious to me how to fit
> that into my workflow --- which was:
> (1) install DevStack
> (2) install libmysqlclient-dev
> (3) install flake8
> (4) cd /opt/stack/heat
> (5) ./run_tests.sh

I would have expected run_tests.sh to tox which creates a venv, but
heat seems different. So you'll need to install testrepository via
your system tox, not one from a venv.

So the steps to install testrepository outside a venv will be:
$ bzr branch lp:testrepository
$ sudo pip install ./testrepository

> I guessed that your (A) would apply if I use a venv and go between (1) the
> `python tools/install_venv.py` inside run_tests.sh and (2) the invocation
> inside run_tests.sh of its run_tests function.

No - see above.

> So I manually invoked
> `python tools/install_venv.py`, then entered that venv, then issued your

I suspect heat hasn't kept up with run_tests evolution from other
projects - install_venv was a pre-tox thing IIRC.... I think its
somewhat unhelpful, since AFAICT it's main purpose is to confuse
people :).

> commands of (A) (discovered I needed to install bzr and did so), then exited
> that venv, then invoked heat's `run_tests -V -u` to use the venv thus
> constructed.  It still produced one huge line of output.  Here I attach a
> typescript of that:

The 'd' is because you're human-reading a binary protocol (which the
testrepository trunk fixes). Try the import without the 'd'. Also be
sure to be trying the import within the tox venv, which run_tests will
have triggered.

> You will see that the huge line still ends with something about import
> error, and now lists one additional package ---
> heat.tests.test_neutron_firewalld.  I then tried your (B), testing manual
> imports.   All worked except for the last, which failed because there is
> indeed no such thing (why is there a spurrious 'd' at the end of the package
> name?).  Here is a typescript of that:

So, all the listed imports fail to import from the test run. It's odd
that they are succeeding manually.

You could try patching your testtools with
https://github.com/testing-cabal/testtools/pull/77 to get a direct
readout of the error.

-Rob


-- 
Robert Collins <rbtcollins at hp.com>
Distinguished Technologist
HP Converged Cloud



More information about the OpenStack-dev mailing list