;;; test-ob-R.el --- tests for ob-R.el ;; Copyright (c) 2011-2014 Eric Schulte ;; Authors: Eric Schulte ;; This file is not part of GNU Emacs. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Code: (org-test-for-executable "R") (unless (featurep 'ess) (signal 'missing-test-dependency "ESS")) (unless (featurep 'ob-R) (signal 'missing-test-dependency "Support for R code blocks")) (ert-deftest test-ob-R/simple-session () (let ((ess-ask-for-ess-directory nil)) (org-test-with-temp-text "#+begin_src R :session R\n paste(\"Yep!\")\n#+end_src\n" (should (string= "Yep!" (org-babel-execute-src-block)))))) (ert-deftest test-ob-R/colnames-yes-header-argument () (org-test-with-temp-text "#+name: eg | col | |-----| | a | | b | #+header: :colnames yes #+header: :var x = eg #+begin_src R x #+end_src" (org-babel-next-src-block) (should (equal '(("col") hline ("a") ("b")) (org-babel-execute-src-block))))) (ert-deftest test-ob-R/colnames-nil-header-argument () (org-test-with-temp-text "#+name: eg | col | |-----| | a | | b | #+header: :colnames nil #+header: :var x = eg #+begin_src R x #+end_src" (org-babel-next-src-block) (should (equal '(("col") hline ("a") ("b")) (org-babel-execute-src-block))))) (ert-deftest test-ob-R/colnames-no-header-argument () (org-test-with-temp-text "#+name: eg | col | |-----| | a | | b | #+header: :colnames no #+header: :var x = eg #+begin_src R x #+end_src" (org-babel-next-src-block) (should (equal '(("col") ("a") ("b")) (org-babel-execute-src-block))))) (ert-deftest test-ob-R/session-output () (org-test-with-temp-text "#+begin_src R :results output :session *foo* 1 message(\"hi\") 2 warning(\"hi2\") 3 stop(\"hi3\") 4 #+end_src " (should (string= (org-babel-execute-src-block) "[1] 1 hi [1] 2 Warning message: hi2 [1] 3 Error: hi3 [1] 4")))) (ert-deftest test-ob-R/session-output-stray-open-paren () (org-test-with-temp-text "#+begin_src R :results output :session *foo* ( #+end_src " (should (string= (org-babel-execute-src-block) ":2:0: unexpected end of input 1: ( ^")))) (ert-deftest test-ob-R/session-output-stray-close-paren () (org-test-with-temp-text "#+begin_src R :results output :session *foo* ) #+end_src " (should (string= (org-babel-execute-src-block) ":1:1: unexpected ')' 1: ) ^")))) (ert-deftest test-ob-R/session-output-stray-single-quote () (org-test-with-temp-text "#+begin_src R :results output :session *foo* ' #+end_src " (should (string= (org-babel-execute-src-block) ":1:1: unexpected INCOMPLETE_STRING 1: ' ^")))) (ert-deftest test-ob-R/session-output-stray-dbl-quote () (org-test-with-temp-text "#+begin_src R :results output :session *foo* \" #+end_src " (should (string= (org-babel-execute-src-block) ":1:1: unexpected INCOMPLETE_STRING 1: \" ^")))) (provide 'test-ob-R) ;;; test-ob-R.el ends here