Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 0FBB4429E44 for ; Wed, 7 Dec 2011 01:46:33 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.1 X-Spam-Level: X-Spam-Status: No, score=-0.1 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tSjsAp1sj1gc for ; Wed, 7 Dec 2011 01:46:32 -0800 (PST) Received: from ks3536.kimsufi.com (schnouki.net [87.98.217.222]) by olra.theworths.org (Postfix) with ESMTP id 35D26431FD0 for ; Wed, 7 Dec 2011 01:46:32 -0800 (PST) Received: from thor.loria.fr (thor.loria.fr [152.81.12.250]) by ks3536.kimsufi.com (Postfix) with ESMTPSA id E98856A0026; Wed, 7 Dec 2011 10:46:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=schnouki.net; s=key-schnouki; t=1323251190; bh=lB3SyTPEfYd4szFwQvtNj0zwCEtQvtKfXjDIw2vzff8=; h=From:To:Subject:Date:Message-Id; b=kcPf/W/ue7bu1ZdooydfCEe7oSRKzRDFrlOEGMtaYqxTnzg0FW9T9Lwh4TncXJoHx zLjJgJDV9HXZn3PYxdckpGRSgjyXKOqVuAifZ6PSEYrExQVkGq6+gAMVc3UujumOok X5DCked6UhR6Uhyg/0AdRXOHQudpPEar8HSjvQWg= From: Thomas Jost To: notmuch@notmuchmail.org Subject: [PATCH 1/2] test: add a function to run Python tests Date: Wed, 7 Dec 2011 10:46:17 +0100 Message-Id: <1323251178-20409-1-git-send-email-schnouki@schnouki.net> X-Mailer: git-send-email 1.7.8 X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Dec 2011 09:46:33 -0000 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 < OUTPUT +test_python < 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