From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martyn Jago Subject: Re: [patch][babel] `org-babel-result-end' bug fix and regression tests Date: Fri, 06 Jan 2012 19:41:45 +0000 Message-ID: References: <87ipkozpsh.fsf@gmx.com> <87mxa0y87d.fsf@gmx.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:43958) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RjFfj-0001Ej-IN for emacs-orgmode@gnu.org; Fri, 06 Jan 2012 14:41:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RjFfh-0003cF-VQ for emacs-orgmode@gnu.org; Fri, 06 Jan 2012 14:41:51 -0500 Received: from smarthost02.mail.zen.net.uk ([212.23.3.141]:45618) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RjFfh-0003cA-Ng for emacs-orgmode@gnu.org; Fri, 06 Jan 2012 14:41:49 -0500 In-Reply-To: <87mxa0y87d.fsf@gmx.com> (Eric Schulte's message of "Fri, 06 Jan 2012 11:52:38 -0700") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Hi Eric Eric Schulte writes: [...] >> >> All the tests supplied with the exception of >> `test-ob/org-babel-remove-result--results-raw' will still pass without >> the change. >> > > Alright, would you be willing to resubmit the patch including only those > tests which should still apply? This results handling is certainly an > area which will benefit from beefing up the test suite. The attached patch contains the remaining tests. Best, Martyn --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Regression-tests-regarding-code-block-results-and-re.patch Content-Description: regression tests >From 6700e3f350c76f68891ad0ccd35538b5523312d9 Mon Sep 17 00:00:00 2001 From: Martyn Jago Date: Fri, 6 Jan 2012 19:36:28 +0000 Subject: [PATCH] Regression tests regarding code block results and result removal/replacement. * testing/lisp/test-ob.el: Regression tests regarding code block results and result removal/replacement --- testing/lisp/test-ob.el | 205 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 198 insertions(+), 7 deletions(-) diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el index dac6866..64e261a 100644 --- a/testing/lisp/test-ob.el +++ b/testing/lisp/test-ob.el @@ -137,13 +137,7 @@ #+name: i-have-a-name #+begin_src emacs-lisp 42 -#+end_src - -#+name: -: 42 - -#+name: i-have-a-name -: 42" +#+end_src" (progn (org-babel-next-src-block 1) @@ -671,6 +665,203 @@ on two lines (org-babel-balanced-split ":a 1 :b [2 3] :c (4 :d (5 6))" '((32 9) . 58))))) +(ert-deftest test-ob/commented-last-block-line-no-var () + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp +;; +#+end_src" + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (should (re-search-forward "\\#\\+results:" nil t)) + (forward-line) + (should + (string= + "" + (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))) + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp +\"some text\";; +#+end_src" + + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (should (re-search-forward "\\#\\+results:" nil t)) + (forward-line) + (should + (string= + ": some text" + (buffer-substring-no-properties (point-at-bol) (point-at-eol))))))) + +(ert-deftest test-ob/commented-last-block-line-with-var () + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp :var a=1 +;; +#+end_src" + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (re-search-forward "\\#\\+results:" nil t) + (forward-line) + (should (string= + "" + (buffer-substring-no-properties (point-at-bol) (point-at-eol)))))) + (org-test-with-temp-text-in-file " +#+begin_src emacs-lisp :var a=2 +2;; +#+end_src" + (progn + (org-babel-next-src-block) + (org-ctrl-c-ctrl-c) + (re-search-forward "\\#\\+results:" nil t) + (forward-line) + (should (string= + ": 2" + (buffer-substring-no-properties (point-at-bol) (point-at-eol))))))) + +(defun test-ob-verify-result-and-removed-result (result buffer-text) + "Test helper function to test `org-babel-remove-result'. +A temp buffer is populated with BUFFER-TEXT, the first block is executed, +and the result of execution is verified against RESULT. + +The block is actually executed /twice/ to ensure result +replacement happens correctly." + (org-test-with-temp-text + buffer-text + (progn + (org-babel-next-src-block) (org-ctrl-c-ctrl-c) (org-ctrl-c-ctrl-c) + (should (re-search-forward "\\#\\+results:" nil t)) + (forward-line) + (should (string= result + (buffer-substring-no-properties + (point-at-bol) + (- (point-max) 16)))) + (org-babel-previous-src-block) (org-babel-remove-result) + (should (string= buffer-text + (buffer-substring-no-properties + (point-min) (point-max))))))) + +(ert-deftest test-ob/org-babel-remove-result--results-default () + "Test `org-babel-remove-result' with default :results." + (mapcar (lambda (language) + (test-ob-verify-result-and-removed-result + "\n" + (concat +"* org-babel-remove-result +#+begin_src " language " +#+end_src + +* next heading"))) + '("sh" "emacs-lisp"))) + +(ert-deftest test-ob/org-babel-remove-result--results-list () + "Test `org-babel-remove-result' with :results list." + (test-ob-verify-result-and-removed-result + "- 1 +- 2 +- 3 +- (quote (4 5))" + +"* org-babel-remove-result +#+begin_src emacs-lisp :results list +'(1 2 3 '(4 5)) +#+end_src + +* next heading")) + +;; TODO FIXME Activate when Eric's trailing newline fix has been committed +;; (ert-deftest test-ob/org-babel-remove-result--results-wrap () +;; (test-ob-verify-result-and-removed-result +;; ":RESULTS: +;; hello there +;; :END:" +;; +;; "* org-babel-remove-result +;; +;; +begin_src emacs-lisp :results wrap +;; \"hello there\" +;; #+end_src +;; +;; * next heading")) + +(ert-deftest test-ob/org-babel-remove-result--results-org () + "Test `org-babel-remove-result' with :results org." + (test-ob-verify-result-and-removed-result + "#+BEGIN_ORG +* heading +** subheading +content +#+END_ORG" + +"* org-babel-remove-result +#+begin_src emacs-lisp :results org +\"* heading +** subheading +content\" +#+end_src + +* next heading")) + +(ert-deftest test-ob/org-babel-remove-result--results-html () + "Test `org-babel-remove-result' with :results html." + (test-ob-verify-result-and-removed-result + "#+BEGIN_HTML + +#+END_HTML" + +"* org-babel-remove-result +#+begin_src emacs-lisp :results html +\"\" +#+end_src + +* next heading")) + +(ert-deftest test-ob/org-babel-remove-result--results-latex () + "Test `org-babel-remove-result' with :results latex." + (test-ob-verify-result-and-removed-result + "#+BEGIN_LaTeX +Line 1 +Line 2 +Line 3 +#+END_LaTeX" + +"* org-babel-remove-result +#+begin_src emacs-lisp :results latex +\"Line 1 +Line 2 +Line 3\" +#+end_src + +* next heading")) + +(ert-deftest test-ob/org-babel-remove-result--results-code () + "Test `org-babel-remove-result' with :results code." + + (test-ob-verify-result-and-removed-result + "#+BEGIN_SRC emacs-lisp +\"I am working!\" +#+END_SRC" + +"* org-babel-remove-result +#+begin_src emacs-lisp :results code +(message \"I am working!\") +#+end_src + +* next heading")) + +(ert-deftest test-ob/org-babel-remove-result--results-pp () + "Test `org-babel-remove-result' with :results pp." + (test-ob-verify-result-and-removed-result + ": \"I /am/ working!\"" + +"* org-babel-remove-result +#+begin_src emacs-lisp :results pp +\"I /am/ working!\") +#+end_src + +* next heading")) + (provide 'test-ob) ;;; test-ob ends here -- 1.7.3.4 --=-=-=--