[Openstack] run_tests.sh (-x | --stop) is broken, optparse and nosetests
Joe Gordon
jogo at cloudscaling.com
Wed Feb 15 03:29:35 UTC 2012
Hi Developers,
I have been looking at https://bugs.launchpad.net/nova/+bug/931608,
"run_tests.sh (-x | --stop) is broken." A fix was committed but it only
stopped "./run_tests.sh -x" from failing, and not restoring the
"./run_tests.sh -x" functionality.
"run_tests.sh (-x | --stop)" is a nosetests parameter which gets passed in
via nova/testing/runner.py:367. sys.argv for nova/testing/runner.py, takes
two sets of parameters nova parameters and any arbitrary nosetests
parameter. The nova flags (hide-elapsed etc.) are handled via
'flags.FLAGS.register_cli_opt' and the nosetest parameters are generated
from the args return value from optparse (nova/openstack/common/cfg.py:768:
"(values, args) = self._oparser.parse_args(self._args)" ).
The problem is when optparse sees an unknown flag (such as '-x') it
terminates the program without throwing an error. Additionally the 'args'
return value doesn't contain the flags just flag arguments (only 'a' in '-x
a'). So there is no way of passing on just the unknown flags to nosetest.
Additionally nosetest uses optparse itself so if you pass in sys.argv to
nosetest with a nova argument set will case the tests to break too.<member:jog0>
While I can write a hack to look for 'hide-elapsed' or other nova flags, I
am looking for more elegant solutions. Should this solution live in the
cfg module?
best,
Joe Gordon
<member:jog0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20120214/00281fbf/attachment.html>
More information about the Openstack
mailing list