test: use the python interpreter in sh.config

The configure script chooses "python" if both python and python{2,3}
exist exists, so this could change the version of python used to run
the test suite.

The checking for ${NOTMUCH_PYTHON} in the test suite is arguably
over-engineering, since the configure step will fail if it can't find
it.
This commit is contained in:
David Bremner 2015-08-02 08:40:55 +02:00
parent 2982d70ac6
commit 23d86773b9
3 changed files with 8 additions and 11 deletions

2
configure vendored
View file

@ -114,6 +114,8 @@ Other environment variables can be used to control configure itself,
XAPIAN_CONFIG The program to use to determine flags for XAPIAN_CONFIG The program to use to determine flags for
compiling and linking against the Xapian compiling and linking against the Xapian
library. [$XAPIAN_CONFIG] library. [$XAPIAN_CONFIG]
PYTHON Name of python command to use in
configure and the test suite.
Additionally, various options can be specified on the configure Additionally, various options can be specified on the configure
command line. command line.

View file

@ -2,6 +2,8 @@
test_description="python bindings" test_description="python bindings"
. ./test-lib.sh . ./test-lib.sh
test_require_external_prereq ${NOTMUCH_PYTHON}
add_email_corpus add_email_corpus
test_begin_subtest "compare thread ids" test_begin_subtest "compare thread ids"

View file

@ -621,9 +621,9 @@ test_expect_equal_json () {
# The test suite forces LC_ALL=C, but this causes Python 3 to # The test suite forces LC_ALL=C, but this causes Python 3 to
# decode stdin as ASCII. We need to read JSON in UTF-8, so # decode stdin as ASCII. We need to read JSON in UTF-8, so
# override Python's stdio encoding defaults. # override Python's stdio encoding defaults.
output=$(echo "$1" | PYTHONIOENCODING=utf-8 python -mjson.tool \ output=$(echo "$1" | PYTHONIOENCODING=utf-8 $NOTMUCH_PYTHON -mjson.tool \
|| echo "$1") || echo "$1")
expected=$(echo "$2" | PYTHONIOENCODING=utf-8 python -mjson.tool \ expected=$(echo "$2" | PYTHONIOENCODING=utf-8 $NOTMUCH_PYTHON -mjson.tool \
|| echo "$2") || echo "$2")
shift 2 shift 2
test_expect_equal "$output" "$expected" "$@" test_expect_equal "$output" "$expected" "$@"
@ -1153,14 +1153,8 @@ test_python() {
export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib
export PYTHONPATH=$TEST_DIRECTORY/../bindings/python export PYTHONPATH=$TEST_DIRECTORY/../bindings/python
# Some distros (e.g. Arch Linux) ship Python 2.* as /usr/bin/python2,
# most others as /usr/bin/python. So first try python2, and fallback to
# python if python2 doesn't exist.
cmd=python2
[[ ${test_missing_external_prereq_[python2]} == t ]] && cmd=python
(echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \ (echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \
| $cmd - | $NOTMUCH_PYTHON -
} }
test_ruby() { test_ruby() {
@ -1325,5 +1319,4 @@ test_declare_external_prereq emacs
test_declare_external_prereq ${TEST_EMACSCLIENT} test_declare_external_prereq ${TEST_EMACSCLIENT}
test_declare_external_prereq gdb test_declare_external_prereq gdb
test_declare_external_prereq gpg test_declare_external_prereq gpg
test_declare_external_prereq python test_declare_external_prereq ${NOTMUCH_PYTHON}
test_declare_external_prereq python2