From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 2B+oMj8X1V4LUAAA0tVLHw (envelope-from ) for ; Mon, 01 Jun 2020 14:57:03 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id WL+bLj8X1V7jIwAA1q6Kng (envelope-from ) for ; Mon, 01 Jun 2020 14:57:03 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A8B7B9404CB for ; Mon, 1 Jun 2020 14:57:02 +0000 (UTC) Received: from localhost ([::1]:57234 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfls5-0006YZ-73 for larch@yhetil.org; Mon, 01 Jun 2020 10:57:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41874) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jflrf-0006Wn-5j for emacs-orgmode@gnu.org; Mon, 01 Jun 2020 10:56:35 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:33926) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jflrd-0000u2-MV; Mon, 01 Jun 2020 10:56:34 -0400 Received: by mail-wr1-x429.google.com with SMTP id r7so174326wro.1; Mon, 01 Jun 2020 07:56:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=dQL2/7BJMBYVmu8OuD9zeDxc/A27hslmScOdjcg6JzE=; b=DotMvSi/Zq25nwmh1XiieXq4Koip8tL46zZvamIU1DLxLmO/ry6iZgytITE+Ptutcr NxliLfRFdSIImKV7rzhm3KEgkRrsEr7ju/Epfh/KFl4tvGCIQMf1vMZ46QwuLzs4WcsU e7Kz1hMsQCH7s9ml835z/FmXq8JnoyC4xz3oZIHFU1Tieu0dCrK8Ke3CDmXiBgOQpfgb 0n3cHaMV3cAlrHkVArsBH+C5dEzYIbHOMO35IyT12ziiktZcq0a+3WdqaJNMZGTll+Do D98HRhk9voa4dPFiaLu0nP08xiSEj504RCJ1gl6Bg5r2ZHfgFkydDczkD4PMhchrVdOx Zajg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=dQL2/7BJMBYVmu8OuD9zeDxc/A27hslmScOdjcg6JzE=; b=VL7tLsfaq48P7mjJPtxltjxfhqOUH9e1tE5pi9Ckn1lzt9aZWDg8lbqYRdodq52ehu 4IDuDpEjYLGI+qMYfqdeTNaC8ChLoMdKqEl8w7pXOOsG6xwyWWwGW5wfa0/iuTwYeCCK /tqtT1cknXuEUA3sdZD7vVxPDfn89/cgAr19HqVdbH5eMsBaXQOGrONbIp7cUW1x9iIK +dc9s1B+3Fed8OVIVD6dtHFFa6uNCuHwQalNc820NuDazcQgtc2MWqhjpJfwAb9o6/G4 Z1jsFaYEpZKLwOdUyS8ODlx2oC5Rpi1L+29ry0brRx6Ix4nnHBx/AxboLNKdoHn5nUD7 /dUA== X-Gm-Message-State: AOAM531ctU9UePNP7c5CaExTRTZPkMtPGhn5wRoWXPnwh64IuXonbEaM ygBan1Yd/9hFhe8FTqdhH9zfT+kFkeo= X-Google-Smtp-Source: ABdhPJzh8oa21gI0q9/YInRTH2Z0YFYtgmqSrNC3sTy/tQqTq5iwwyiCKFnvC1u1aqbj3RfSUp2yaw== X-Received: by 2002:adf:e78a:: with SMTP id n10mr23021791wrm.114.1591023391526; Mon, 01 Jun 2020 07:56:31 -0700 (PDT) Received: from klegouguec-HP-ProBook-450-G1 (200.143.13.109.rev.sfr.net. [109.13.143.200]) by smtp.gmail.com with ESMTPSA id r2sm22802797wrg.68.2020.06.01.07.56.30 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 01 Jun 2020 07:56:30 -0700 (PDT) From: =?utf-8?Q?K=C3=A9vin_Le_Gouguec?= To: Kyle Meyer Subject: Re: Failing tests References: <87wo4vv4mt.fsf@kyleam.com> <87imgevrou.fsf@gmail.com> <878sh8vgx3.fsf@kyleam.com> <87r1uyhmfk.fsf@gmail.com> Date: Mon, 01 Jun 2020 16:56:29 +0200 In-Reply-To: <87r1uyhmfk.fsf@gmail.com> (=?utf-8?Q?=22K=C3=A9vin?= Le Gouguec"'s message of "Mon, 01 Jun 2020 16:48:15 +0200") Message-ID: <87mu5mhm1u.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=kevin.legouguec@gmail.com; helo=mail-wr1-x429.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bastien , emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=DotMvSi/; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -1.71 X-TUID: BoAM56Ehk5Nf --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable K=C3=A9vin Le Gouguec writes: > Absolutely. I've attached a patch to that effect. I just realized that these let-bindings probably deserved explanatory comments. Here is an updated patch: --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Make-tests-robust-with-respect-to-mailcap-entries.patch >From f996ec3a10a845abae2fa463ab0ea7a761af1707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Le=20Gouguec?= Date: Mon, 1 Jun 2020 16:07:44 +0200 Subject: [PATCH] Make tests robust with respect to mailcap entries When /etc/mailcap specifies a program for text/plain files (e.g. less(1)), org-open-file will run this program instead of visiting the file. This throws off some tests which expect extension-less temporary files to be visited. * testing/lisp/test-ob-tangle.el (ob-tangle/jump-to-org): * testing/lisp/test-org-attach.el (test-org-attach/dir): Rig org-file-apps so that temporary files are visited inside Emacs. --- testing/lisp/test-ob-tangle.el | 124 +++++++++++++------------- testing/lisp/test-org-attach.el | 148 ++++++++++++++++---------------- 2 files changed, 138 insertions(+), 134 deletions(-) diff --git a/testing/lisp/test-ob-tangle.el b/testing/lisp/test-ob-tangle.el index 2283037fc..7b1f617ed 100644 --- a/testing/lisp/test-ob-tangle.el +++ b/testing/lisp/test-ob-tangle.el @@ -124,24 +124,26 @@ echo 1 (ert-deftest ob-tangle/jump-to-org () "Test `org-babel-tangle-jump-to-org' specifications." - ;; Standard test. - (should - (equal - "* H\n#+begin_src emacs-lisp\n1\n#+end_src" - (org-test-with-temp-text-in-file - "* H\n#+begin_src emacs-lisp\n1\n#+end_src" - (let ((file (buffer-file-name))) - (org-test-with-temp-text - (format ";; [[file:%s][H:1]]\n1\n;; H:1 ends here\n" - (file-name-nondirectory file)) - (org-babel-tangle-jump-to-org) - (buffer-string)))))) - ;; Multiple blocks in the same section. - (should - (equal - "2" - (org-test-with-temp-text-in-file - "* H + ;; Make sure temporary files will be visited inside Emacs. + (let ((org-file-apps '((t . emacs)))) + ;; Standard test. + (should + (equal + "* H\n#+begin_src emacs-lisp\n1\n#+end_src" + (org-test-with-temp-text-in-file + "* H\n#+begin_src emacs-lisp\n1\n#+end_src" + (let ((file (buffer-file-name))) + (org-test-with-temp-text + (format ";; [[file:%s][H:1]]\n1\n;; H:1 ends here\n" + (file-name-nondirectory file)) + (org-babel-tangle-jump-to-org) + (buffer-string)))))) + ;; Multiple blocks in the same section. + (should + (equal + "2" + (org-test-with-temp-text-in-file + "* H first block @@ -155,49 +157,49 @@ another block 2 #+end_src " - (let ((file (buffer-file-name))) - (org-test-with-temp-text - (format ";; [[file:%s][H:2]]\n2\n;; H:2 ends here\n" - (file-name-nondirectory file)) - (org-babel-tangle-jump-to-org) - (buffer-substring (line-beginning-position) - (line-end-position))))))) - ;; Preserve position within the source code. - (should - (equal - "1)" - (org-test-with-temp-text-in-file - "* H\n#+begin_src emacs-lisp\n(+ 1 1)\n#+end_src" - (let ((file (buffer-file-name))) - (org-test-with-temp-text - (format ";; [[file:%s][H:1]]\n(+ 1 1)\n;; H:1 ends here\n" - (file-name-nondirectory file)) - (org-babel-tangle-jump-to-org) - (buffer-substring-no-properties (point) (line-end-position))))))) - ;; Blocks before first heading. - (should - (equal - "Buffer start\n#+begin_src emacs-lisp\n1\n#+end_src\n* H" - (org-test-with-temp-text-in-file - "Buffer start\n#+begin_src emacs-lisp\n1\n#+end_src\n* H" - (let ((file (buffer-file-name))) - (org-test-with-temp-text - (format ";; [[file:%s][H:1]]\n1\n;; H:1 ends here\n" - (file-name-nondirectory file)) - (org-babel-tangle-jump-to-org) - (buffer-string)))))) - ;; Special case: buffer starts with a source block. - (should - (equal - "#+begin_src emacs-lisp\n1\n#+end_src\n* H" - (org-test-with-temp-text-in-file - "#+begin_src emacs-lisp\n1\n#+end_src\n* H" - (let ((file (buffer-file-name))) - (org-test-with-temp-text - (format ";; [[file:%s][H:1]]\n1\n;; H:1 ends here\n" - (file-name-nondirectory file)) - (org-babel-tangle-jump-to-org) - (buffer-string))))))) + (let ((file (buffer-file-name))) + (org-test-with-temp-text + (format ";; [[file:%s][H:2]]\n2\n;; H:2 ends here\n" + (file-name-nondirectory file)) + (org-babel-tangle-jump-to-org) + (buffer-substring (line-beginning-position) + (line-end-position))))))) + ;; Preserve position within the source code. + (should + (equal + "1)" + (org-test-with-temp-text-in-file + "* H\n#+begin_src emacs-lisp\n(+ 1 1)\n#+end_src" + (let ((file (buffer-file-name))) + (org-test-with-temp-text + (format ";; [[file:%s][H:1]]\n(+ 1 1)\n;; H:1 ends here\n" + (file-name-nondirectory file)) + (org-babel-tangle-jump-to-org) + (buffer-substring-no-properties (point) (line-end-position))))))) + ;; Blocks before first heading. + (should + (equal + "Buffer start\n#+begin_src emacs-lisp\n1\n#+end_src\n* H" + (org-test-with-temp-text-in-file + "Buffer start\n#+begin_src emacs-lisp\n1\n#+end_src\n* H" + (let ((file (buffer-file-name))) + (org-test-with-temp-text + (format ";; [[file:%s][H:1]]\n1\n;; H:1 ends here\n" + (file-name-nondirectory file)) + (org-babel-tangle-jump-to-org) + (buffer-string)))))) + ;; Special case: buffer starts with a source block. + (should + (equal + "#+begin_src emacs-lisp\n1\n#+end_src\n* H" + (org-test-with-temp-text-in-file + "#+begin_src emacs-lisp\n1\n#+end_src\n* H" + (let ((file (buffer-file-name))) + (org-test-with-temp-text + (format ";; [[file:%s][H:1]]\n1\n;; H:1 ends here\n" + (file-name-nondirectory file)) + (org-babel-tangle-jump-to-org) + (buffer-string)))))))) (ert-deftest ob-tangle/nested-block () "Test tangling of org file with nested block." diff --git a/testing/lisp/test-org-attach.el b/testing/lisp/test-org-attach.el index f910526c2..cdd1afb3d 100644 --- a/testing/lisp/test-org-attach.el +++ b/testing/lisp/test-org-attach.el @@ -30,80 +30,82 @@ (ert-deftest test-org-attach/dir () "Test `org-attach-get' specifications." - (should (equal "Text in fileA\n" - (org-test-in-example-file org-test-attachments-file - (goto-char 157) ;; First attachment link - (org-open-at-point) - (buffer-string)))) - (should-not (equal "Text in fileB\n" - (org-test-in-example-file org-test-attachments-file - (goto-char 219) ;; Second attachment link - (let ((org-attach-use-inheritance nil)) - (org-open-at-point) - (buffer-string))))) - (should (equal "Text in fileB\n" - (org-test-in-example-file org-test-attachments-file - (goto-char 219) ;; Second attachment link - (let ((org-attach-use-inheritance t)) + ;; Make sure example files will be visited inside Emacs. + (let ((org-file-apps '((t . emacs)))) + (should (equal "Text in fileA\n" + (org-test-in-example-file org-test-attachments-file + (goto-char 157) ;; First attachment link (org-open-at-point) - (buffer-string))))) - (should-not (equal "att1" - (org-test-in-example-file org-test-attachments-file - (goto-char 179) ;; H1.1 - (let ((org-attach-use-inheritance nil)) - (org-attach-dir))))) - (should (equal "att1" - (org-test-in-example-file org-test-attachments-file - (goto-char 179) ;; H1.1 - (let ((org-attach-use-inheritance t)) - (org-attach-dir))))) - (should (equal '("fileC" "fileD") - (org-test-in-example-file org-test-attachments-file - (goto-char 239) ;; H1.2 - (org-attach-file-list (org-attach-dir))))) - (should (equal '("fileC" "fileD") - (org-test-in-example-file org-test-attachments-file - (goto-char 239) ;; H1.2 - (org-attach-file-list (org-attach-dir))))) - (should (equal '("fileE") - (org-test-in-example-file org-test-attachments-file - (goto-char 289) ;; H2 - (let ((org-attach-id-dir "data/")) - (org-attach-file-list (org-attach-dir)))))) - (should (equal "peek-a-boo\n" - (org-test-in-example-file org-test-attachments-file - (goto-char 289) ;; H2 - (let ((org-attach-id-dir "data/")) - (org-attach-open-in-emacs) - (buffer-string))))) - (should (equal '("fileA" "fileB") - (org-test-in-example-file org-test-attachments-file - (goto-char 336) ;; H3 - (org-attach-file-list (org-attach-dir))))) - ;; Test for folder not initialized in the filesystem - (should-not (org-test-in-example-file org-test-attachments-file - (goto-char 401) ;; H3.1 - (let ((org-attach-use-inheritance nil) - (org-attach-id-dir "data/")) - (org-attach-dir)))) - ;; Not yet initialized folder should be found if no-fs-check is - ;; non-nil - (should (equal "data/ab/cd12345" - (org-test-in-example-file org-test-attachments-file - (goto-char 401) ;; H3.1 - (let ((org-attach-use-inheritance nil) - (org-attach-id-dir "data/")) - (file-relative-name (org-attach-dir nil t)))))) - (should (equal '("fileA" "fileB") - (org-test-in-example-file org-test-attachments-file - (goto-char 401) ;; H3.1 - (let ((org-attach-use-inheritance t)) - ;; This is where it gets a bit sketchy...! DIR always has - ;; priority over ID, even if ID is declared "higher up" in the - ;; tree. This can potentially be revised. But it is also - ;; pretty clean. DIR is always higher in priority than ID right - ;; now, no matter the depth in the tree. - (org-attach-file-list (org-attach-dir))))))) + (buffer-string)))) + (should-not (equal "Text in fileB\n" + (org-test-in-example-file org-test-attachments-file + (goto-char 219) ;; Second attachment link + (let ((org-attach-use-inheritance nil)) + (org-open-at-point) + (buffer-string))))) + (should (equal "Text in fileB\n" + (org-test-in-example-file org-test-attachments-file + (goto-char 219) ;; Second attachment link + (let ((org-attach-use-inheritance t)) + (org-open-at-point) + (buffer-string))))) + (should-not (equal "att1" + (org-test-in-example-file org-test-attachments-file + (goto-char 179) ;; H1.1 + (let ((org-attach-use-inheritance nil)) + (org-attach-dir))))) + (should (equal "att1" + (org-test-in-example-file org-test-attachments-file + (goto-char 179) ;; H1.1 + (let ((org-attach-use-inheritance t)) + (org-attach-dir))))) + (should (equal '("fileC" "fileD") + (org-test-in-example-file org-test-attachments-file + (goto-char 239) ;; H1.2 + (org-attach-file-list (org-attach-dir))))) + (should (equal '("fileC" "fileD") + (org-test-in-example-file org-test-attachments-file + (goto-char 239) ;; H1.2 + (org-attach-file-list (org-attach-dir))))) + (should (equal '("fileE") + (org-test-in-example-file org-test-attachments-file + (goto-char 289) ;; H2 + (let ((org-attach-id-dir "data/")) + (org-attach-file-list (org-attach-dir)))))) + (should (equal "peek-a-boo\n" + (org-test-in-example-file org-test-attachments-file + (goto-char 289) ;; H2 + (let ((org-attach-id-dir "data/")) + (org-attach-open-in-emacs) + (buffer-string))))) + (should (equal '("fileA" "fileB") + (org-test-in-example-file org-test-attachments-file + (goto-char 336) ;; H3 + (org-attach-file-list (org-attach-dir))))) + ;; Test for folder not initialized in the filesystem + (should-not (org-test-in-example-file org-test-attachments-file + (goto-char 401) ;; H3.1 + (let ((org-attach-use-inheritance nil) + (org-attach-id-dir "data/")) + (org-attach-dir)))) + ;; Not yet initialized folder should be found if no-fs-check is + ;; non-nil + (should (equal "data/ab/cd12345" + (org-test-in-example-file org-test-attachments-file + (goto-char 401) ;; H3.1 + (let ((org-attach-use-inheritance nil) + (org-attach-id-dir "data/")) + (file-relative-name (org-attach-dir nil t)))))) + (should (equal '("fileA" "fileB") + (org-test-in-example-file org-test-attachments-file + (goto-char 401) ;; H3.1 + (let ((org-attach-use-inheritance t)) + ;; This is where it gets a bit sketchy...! DIR always has + ;; priority over ID, even if ID is declared "higher up" in the + ;; tree. This can potentially be revised. But it is also + ;; pretty clean. DIR is always higher in priority than ID right + ;; now, no matter the depth in the tree. + (org-attach-file-list (org-attach-dir)))))))) (ert-deftest test-org-attach/dired-attach-to-next-best-subtree/1 () "Attach file at point in dired to subtree." -- 2.17.1 --=-=-=--