diff options
author | Steve Martinelli <stevemar@ca.ibm.com> | 2014-09-10 00:40:25 -0400 |
---|---|---|
committer | Steve Martinelli <stevemar@ca.ibm.com> | 2014-09-29 21:50:41 -0400 |
commit | e5c14b74d3676168008c68fd9f4848d551634873 (patch) | |
tree | 95d1a3106c7d7831250d50f63b5f27a5d77eef93 | |
parent | c8bbab8ee62574a0cb007ba02258ef9090defa0f (diff) | |
download | oslotest-e5c14b74d3676168008c68fd9f4848d551634873.tar.gz |
Add an extra parameter for test directory in debugger script
The `python-*client`'s usually give back the full package name
i.e. python-keystoneclient, and the script assumes thats where
the tests are, but most clients have their tests under just
*client, or in this case keystoneclient.
Oslo projects have a similar issue.
Change the debug script to accept an optional argument that can
be used to override the guesstimated value.
Change-Id: If0a25ae7ab9f854f87271a377dd228e2ebfb107f
-rw-r--r-- | doc/source/features.rst | 17 | ||||
-rwxr-xr-x | tools/oslo_debug_helper | 28 |
2 files changed, 40 insertions, 5 deletions
diff --git a/doc/source/features.rst b/doc/source/features.rst index c176d01..61f15a8 100644 --- a/doc/source/features.rst +++ b/doc/source/features.rst @@ -25,7 +25,22 @@ Update tox.ini Within the ``tox.ini`` file of your project add the following:: [testenv:debug] - commands = oslo_debug_helper.sh {posargs} + commands = oslo_debug_helper {posargs} + +If the project name, and the module that precedes the tests directory do not +match, then consider passing an argument to ``tox.ini``. + +For example, ``python-keystoneclient`` project has tests in +``keystoneclient/tests``, thus it would have to pass in:: + + [testenv:debug] + commands = oslo_debug_helper -t keystoneclient/tests {posargs} + +Similarily, most ``oslo`` projects have the tests at the package level, it +would have to pass in:: + + [testenv:debug] + commands = oslo_debug_helper -t tests {posargs} To run with tox: diff --git a/tools/oslo_debug_helper b/tools/oslo_debug_helper index e293818..838e389 100755 --- a/tools/oslo_debug_helper +++ b/tools/oslo_debug_helper @@ -1,20 +1,40 @@ #!/bin/bash +# oslo_debug_helper - Script that allows for debugging tests +# +# oslo_debug_helper [-t <test_directory>] [<tests_to_run>] +# +# <tests_to_run> - may be a test suite, class, or function, if no value is +# passed, then all tests are run. +# -t <test_directory> - the name of the directory that houses the tests +# relative to the project directory. If no value is passed, it is assumed +# to be packagename/tests. + TMP_DIR=`mktemp -d` || exit 1 trap "rm -rf $TMP_DIR" EXIT ALL_TESTS=$TMP_DIR/all_tests TESTS_TO_RUN=$TMP_DIR/tests_to_run +# Default to packagename/tests, i.e., keystone/tests PACKAGENAME=$(python setup.py --name) +TEST_DIR=./$PACKAGENAME/tests + +# If a specific path is passed, use that one +while getopts ":t:" opt; do + case $opt in + t) TEST_DIR=$OPTARG;; + esac +done -python -m testtools.run discover -t ./ ./$PACKAGENAME/tests --list > $ALL_TESTS +python -m testtools.run discover -t ./ $TEST_DIR --list > $ALL_TESTS -if [ "$1" ]; then - grep "$1" < $ALL_TESTS > $TESTS_TO_RUN +# getopts friendly way of determining if a positional arg has been passed +ARG1=${@:$OPTIND:1} +if [ "$ARG1" ]; then + grep "$ARG1" < $ALL_TESTS > $TESTS_TO_RUN else mv $ALL_TESTS $TESTS_TO_RUN fi python -m testtools.run discover --load-list $TESTS_TO_RUN - |