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 9EBE1429E25 for ; Sun, 11 Dec 2011 06:59:03 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.799 X-Spam-Level: X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] 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 FyZRhdhnvltl for ; Sun, 11 Dec 2011 06:59:03 -0800 (PST) Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com [209.85.214.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id D58A5431FB6 for ; Sun, 11 Dec 2011 06:59:02 -0800 (PST) Received: by bkat8 with SMTP id t8so4842863bka.26 for ; Sun, 11 Dec 2011 06:59:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:in-reply-to:references:user-agent:date:message-id :mime-version:content-type; bh=BHpkqXPDVP8+hDbYWcALD73WoyhbID8PUBAmUrj/Ul0=; b=Tr6M0Yf07L1pd0ZCBoJcS/PvAv70qcAHEYXF0kzwFha2+GyR2PqES5Tt1ToaEJtwDQ 6d/pBRIATdyxg6k5x6OsgZcxuOjWoOtGUQbDQYWEPe/d2Qqz3Ff8MG9VNuPqoXDtDPBi 6Wpk6DBJSOH2r2NDLM8MPXDyslcFWCK/PihSY= Received: by 10.205.129.148 with SMTP id hi20mr7690377bkc.25.1323615533347; Sun, 11 Dec 2011 06:58:53 -0800 (PST) Received: from localhost ([91.144.186.21]) by mx.google.com with ESMTPS id h7sm24330889bkw.12.2011.12.11.06.58.52 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 11 Dec 2011 06:58:52 -0800 (PST) From: Dmitry Kurochkin To: Thomas Jost , notmuch@notmuchmail.org Subject: Re: [PATCH 1/2] test: add a function to run Python tests In-Reply-To: <1323251178-20409-1-git-send-email-schnouki@schnouki.net> References: <1323251178-20409-1-git-send-email-schnouki@schnouki.net> User-Agent: Notmuch/0.10.2+82~g96a629c (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) Date: Sun, 11 Dec 2011 18:58:18 +0400 Message-ID: <877h236tpx.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: Sun, 11 Dec 2011 14:59:03 -0000 Hi Thomas. On Wed, 7 Dec 2011 10:46:17 +0100, Thomas Jost wrote: > 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 < 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 - Perhaps we should have a test-lib.py for test-specific stuff like this (similar to test-lib.el)? I think it would be cleaner and makes it easy to add more Python test auxiliary functions later. Regards, Dmitry > +} > + > 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 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch