summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2014-09-10 00:40:25 -0400
committerSteve Martinelli <stevemar@ca.ibm.com>2014-09-29 21:50:41 -0400
commite5c14b74d3676168008c68fd9f4848d551634873 (patch)
tree95d1a3106c7d7831250d50f63b5f27a5d77eef93
parentc8bbab8ee62574a0cb007ba02258ef9090defa0f (diff)
downloadoslotest-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.rst17
-rwxr-xr-xtools/oslo_debug_helper28
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
-