mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
test: add a function to run Python tests
The new test_python() function makes writing Python tests a little easier: - it sets the environment variables as needed - it redirects stdout to the OUTPUT file (like test_emacs()). This commit also declares python as an external prereq. The stdout redirection is required to avoid trouble when running commands like "python 'script' | sort > OUTPUT": in such a case, any error due to a missing external prereq would be "swallowed" by sort, resulting to a failed test instead of a skipped one.
This commit is contained in:
parent
3aca0ea421
commit
2621f6cef1
2 changed files with 11 additions and 4 deletions
|
@ -5,9 +5,7 @@ test_description="python bindings"
|
|||
add_email_corpus
|
||||
|
||||
test_begin_subtest "compare thread ids"
|
||||
LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib \
|
||||
PYTHONPATH=$TEST_DIRECTORY/../bindings/python \
|
||||
python <<EOF | sort > OUTPUT
|
||||
test_python <<EOF
|
||||
import notmuch
|
||||
db = notmuch.Database(mode=notmuch.Database.MODE.READ_WRITE)
|
||||
q_new = notmuch.Query(db, 'tag:inbox')
|
||||
|
@ -15,5 +13,5 @@ for t in q_new.search_threads():
|
|||
print t.get_thread_id()
|
||||
EOF
|
||||
notmuch search --output=threads tag:inbox | sed s/^thread:// | sort > EXPECTED
|
||||
test_expect_equal_file OUTPUT EXPECTED
|
||||
test_expect_equal_file <(sort OUTPUT) EXPECTED
|
||||
test_done
|
||||
|
|
|
@ -919,6 +919,14 @@ test_emacs () {
|
|||
emacsclient --socket-name="$EMACS_SERVER" --eval "(progn $@)"
|
||||
}
|
||||
|
||||
test_python() {
|
||||
export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib
|
||||
export PYTHONPATH=$TEST_DIRECTORY/../bindings/python
|
||||
|
||||
(echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \
|
||||
| python -
|
||||
}
|
||||
|
||||
# Creates a script that counts how much time it is executed and calls
|
||||
# notmuch. $notmuch_counter_command is set to the path to the
|
||||
# generated script. Use notmuch_counter_value() function to get the
|
||||
|
@ -1180,3 +1188,4 @@ test_declare_external_prereq emacs
|
|||
test_declare_external_prereq emacsclient
|
||||
test_declare_external_prereq gdb
|
||||
test_declare_external_prereq gpg
|
||||
test_declare_external_prereq python
|
||||
|
|
Loading…
Reference in a new issue