unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH 1/2] test: add a function to run Python tests
@ 2011-12-07  9:46 Thomas Jost
  2011-12-07  9:46 ` [PATCH 2/2] test: use python2 instead of python if available Thomas Jost
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Thomas Jost @ 2011-12-07  9:46 UTC (permalink / raw)
  To: notmuch

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.
---
 test/python      |    6 ++----
 test/test-lib.sh |    9 +++++++++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/test/python b/test/python
index f737749..c3aa726 100755
--- a/test/python
+++ b/test/python
@@ -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
diff --git a/test/test-lib.sh b/test/test-lib.sh
index a975957..519bd84 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -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 -
+}
+
 test_reset_state_ () {
 	test -z "$test_init_done_" && test_init_
 
@@ -1148,3 +1156,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
-- 
1.7.8

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-01-09  5:55 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-07  9:46 [PATCH 1/2] test: add a function to run Python tests Thomas Jost
2011-12-07  9:46 ` [PATCH 2/2] test: use python2 instead of python if available Thomas Jost
2011-12-11 14:48 ` [PATCH 1/2] test: add a function to run Python tests David Bremner
2011-12-11 14:58 ` Dmitry Kurochkin
2011-12-13 17:21   ` Thomas Jost
2012-01-02 14:47     ` Patrick Totzke
2012-01-02 14:51       ` [PATCH 1/2] clean up "compare thread ids" python test Patrick Totzke
2012-01-02 14:51         ` [PATCH 2/2] python test "compare message ids" Patrick Totzke
2012-01-08 12:52           ` Sebastian Spaeth
2012-01-08 12:55           ` notmuch git's disk is full! ERROR pushing Sebastian Spaeth
2012-01-09  5:55             ` Carl Worth
2012-01-08 12:45         ` [PATCH 1/2] clean up "compare thread ids" python test Sebastian Spaeth

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).