An error occurs with --until-failure option

Bug #1666569 reported by Masayuki Igawa
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
os-testr
Fix Released
Undecided
Masayuki Igawa

Bug Description

An error occurs with --until-failure option.

-------------------
$ tox -e py27 -- --until-failure
py27 develop-inst-nodeps: /Users/igawa/git/openstack/os-testr
py27 installed: alabaster==0.7.9,appdirs==1.4.0,Babel==2.3.4,coverage==4.2,ddt==1.1.1,debtcollector==1.9.0,docutils==0.12,extras==1.0.0,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,hacking==0.10.2,iso8601==0.1.11,Jinja2==2.8,keystoneauth1==2.15.0,linecache2==1.0.0,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,mox3==0.18.0,openstack-requirements==1.0.0,os-client-config==1.24.0,-e git+https://review.openstack.org/p/openstack/os-testr@f0e3a1a01473e86351b99f8b3a73ee699b4d1374#egg=os_testr,oslosphinx==4.8.0,oslotest==2.11.0,packaging==16.8,Parsley==1.3,pbr==1.10.0,pep8==1.5.7,positional==1.1.1,pyflakes==0.8.1,Pygments==2.1.3,pyparsing==2.1.10,python-mimeparse==1.6.0,python-subunit==1.2.0,pytz==2016.7,PyYAML==3.12,requests==2.12.5,requestsexceptions==1.1.3,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,stevedore==1.18.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unittest2==1.1.0,wrapt==1.10.8
py27 runtests: PYTHONHASHSEED='2382833288'
py27 runtests: commands[0] | find . -type f -name *.pyc -delete
py27 runtests: commands[1] | ostestr --until-failure
Traceback (most recent call last):
  File ".tox/py27/bin/ostestr", line 10, in <module>
    sys.exit(main())
  File "/Users/igawa/git/openstack/os-testr/os_testr/ostestr.py", line 312, in main
    exit(ostestr(sys.argv[1:]))
  File "/Users/igawa/git/openstack/os-testr/os_testr/ostestr.py", line 308, in ostestr
    return (_select_and_call_runner(opts, regex, others))
  File "/Users/igawa/git/openstack/os-testr/os_testr/ostestr.py", line 239, in _select_and_call_runner
    opts.until_failure, opts.color, None, others)
  File "/Users/igawa/git/openstack/os-testr/os_testr/ostestr.py", line 144, in call_testr
    test_list = rb._get_test_list(regex, env)
  File "/Users/igawa/git/openstack/os-testr/os_testr/regex_builder.py", line 23, in _get_test_list
    stdout=subprocess.PIPE, universal_newlines=True)
  File "/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
TypeError: coercing to Unicode: need string or buffer, NoneType found
ERROR: InvocationError: '/Users/igawa/git/openstack/os-testr/.tox/py27/bin/ostestr --until-failure'
__________ summary ____________
ERROR: py27: commands failed
------------------------------------------------

However, with "--regex" option, it works which means it finish after the test running even if it succeed.
-----------
$ tox -e py27 -- --until-failure --regex .
py27 develop-inst-nodeps: /Users/igawa/git/openstack/os-testr
py27 installed: alabaster==0.7.9,appdirs==1.4.0,Babel==2.3.4,coverage==4.2,ddt==1.1.1,debtcollector==1.9.0,docutils==0.12,extras==1.0.0,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,hacking==0.10.2,iso8601==0.1.11,Jinja2==2.8,keystoneauth1==2.15.0,linecache2==1.0.0,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,mox3==0.18.0,openstack-requirements==1.0.0,os-client-config==1.24.0,-e git+https://review.openstack.org/p/openstack/os-testr@f0e3a1a01473e86351b99f8b3a73ee699b4d1374#egg=os_testr,oslosphinx==4.8.0,oslotest==2.11.0,packaging==16.8,Parsley==1.3,pbr==1.10.0,pep8==1.5.7,positional==1.1.1,pyflakes==0.8.1,Pygments==2.1.3,pyparsing==2.1.10,python-mimeparse==1.6.0,python-subunit==1.2.0,pytz==2016.7,PyYAML==3.12,requests==2.12.5,requestsexceptions==1.1.3,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,stevedore==1.18.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unittest2==1.1.0,wrapt==1.10.8
py27 runtests: PYTHONHASHSEED='664289420'
py27 runtests: commands[0] | find . -type f -name *.pyc -delete
py27 runtests: commands[1] | ostestr --until-failure --regex .
{0} os_testr.tests.test_ostestr.TestCallers.test_call_subunit_run_pretty [0.037627s] ... ok
<SNIP>
{0} os_testr.tests.test_return_codes.TestReturnCodes.test_testr_no_pretty_passing [2.733892s] ... ok
{0} os_testr.tests.test_return_codes.TestReturnCodes.test_testr_subunit_fails ... SKIPPED: Skipped because of testrepository lp bug #1411804

No tests were successful during the run
Ran 31 tests without failure
___________________________________________________________________________________ summary ____________________________________________________________________________________
  py27: commands succeeded
  congratulations :)
-----------

And with "--until-failure --regex regex", it works.
--------------
$ tox -e py27 -- --until-failure --regex regex
py27 develop-inst-nodeps: /Users/igawa/git/openstack/os-testr
py27 installed: alabaster==0.7.9,appdirs==1.4.0,Babel==2.3.4,coverage==4.2,ddt==1.1.1,debtcollector==1.9.0,docutils==0.12,extras==1.0.0,fixtures==3.0.0,flake8==2.2.4,funcsigs==1.0.2,hacking==0.10.2,iso8601==0.1.11,Jinja2==2.8,keystoneauth1==2.15.0,linecache2==1.0.0,MarkupSafe==0.23,mccabe==0.2.1,mock==2.0.0,mox3==0.18.0,openstack-requirements==1.0.0,os-client-config==1.24.0,-e git+https://review.openstack.org/p/openstack/os-testr@f0e3a1a01473e86351b99f8b3a73ee699b4d1374#egg=os_testr,oslosphinx==4.8.0,oslotest==2.11.0,packaging==16.8,Parsley==1.3,pbr==1.10.0,pep8==1.5.7,positional==1.1.1,pyflakes==0.8.1,Pygments==2.1.3,pyparsing==2.1.10,python-mimeparse==1.6.0,python-subunit==1.2.0,pytz==2016.7,PyYAML==3.12,requests==2.12.5,requestsexceptions==1.1.3,six==1.10.0,snowballstemmer==1.2.1,Sphinx==1.3.6,sphinx-rtd-theme==0.1.9,stevedore==1.18.0,testrepository==0.0.20,testscenarios==0.5.0,testtools==2.2.0,traceback2==1.4.0,unittest2==1.1.0,wrapt==1.10.8
py27 runtests: PYTHONHASHSEED='437009315'
py27 runtests: commands[0] | find . -type f -name *.pyc -delete
py27 runtests: commands[1] | ostestr --until-failure --regex regex
{0} os_testr.tests.test_regex_builder.TestConstructRegex.test_blacklist_regex_with_comment_print_skips [0.005498s] ... ok
<SNIP>
{0} os_testr.tests.testlist_builder.TestConstructList.test_overlapping_black_regex [0.006891s] ... ok

Masayuki Igawa (igawa)
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to os-testr (master)

Fix proposed to branch: master
Review: https://review.openstack.org/436563

Masayuki Igawa (igawa)
Changed in os-testr:
assignee: nobody → Masayuki Igawa (igawa)
Revision history for this message
Masayuki Igawa (igawa) wrote :

hmm, it seems --until-failure stops when we face a "SKIPPED" test. Is this an intentional behavior...?
---------------------------------------
{0} os_testr.tests.test_return_codes.TestReturnCodes.test_testr_subunit_fails ... SKIPPED: Skipped because of testrepository lp bug #1411804

No tests were successful during the run
Ran 31 tests without failure
---------------------------------------

description: updated
Masayuki Igawa (igawa)
description: updated
Changed in os-testr:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to os-testr (master)

Reviewed: https://review.openstack.org/436563
Committed: https://git.openstack.org/cgit/openstack/os-testr/commit/?id=289b7e3d38a805319211fe9c05080e889f128cf8
Submitter: Jenkins
Branch: master

commit 289b7e3d38a805319211fe9c05080e889f128cf8
Author: Masayuki Igawa <email address hidden>
Date: Tue Feb 21 12:26:13 2017 -0500

    Fix error when without --regex option

    This commit fixes the error when executing without --regex option.

    Closes-bug: #1666569
    Change-Id: Iee7037328e41c1087b87219dac4256d50784ae64

Changed in os-testr:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.