mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-22 11:10:42 +00:00
3af89e696a
This results in the following behavior. #+property: var foo=1 #+property: var+ bar=2 #+begin_src emacs-lisp (+ foo bar) #+end_src #+results: : 3 #+begin_src emacs-lisp (org-entry-get (point) "var" t) #+end_src #+results: : foo=1 bar=2 * overwriting a file-wide property :PROPERTIES: :var: foo=7 :END: #+begin_src emacs-lisp foo #+end_src #+results: : 7 #+begin_src emacs-lisp (org-entry-get (point) "var" t) #+end_src #+results: : foo=7 * appending to a file-wide property :PROPERTIES: :var+: baz=3 :END: #+begin_src emacs-lisp (+ foo bar baz) #+end_src #+results: : 6 #+begin_src emacs-lisp (org-entry-get (point) "var" t) #+end_src #+results: : foo=1 bar=2 baz=3 * lisp/org.el (org-update-property-plist): Updates a given property list with a property name and a property value. (org-set-regexps-and-options): Use org-update-property-plist. (org-entry-get): Use org-update-property-plist. * testing/examples/property-inheritance.org: Example file for testing appending property behavior. * testing/lisp/test-property-inheritance.el: Tests of appending property behavior. * lisp/ob.el (org-babel-balanced-split): Allow splitting on single characters as well as groups of two characters. (org-babel-parse-multiple-vars): Split variables on single spaces.
62 lines
1.9 KiB
EmacsLisp
62 lines
1.9 KiB
EmacsLisp
;;; test-ob-R.el --- tests for ob-R.el
|
|
|
|
;; Copyright (c) 2011 Eric Schulte
|
|
;; Authors: Eric Schulte
|
|
|
|
;; Released under the GNU General Public License version 3
|
|
;; see: http://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
(let ((load-path (cons (expand-file-name
|
|
".." (file-name-directory
|
|
(or load-file-name buffer-file-name)))
|
|
load-path)))
|
|
(require 'org-test)
|
|
(require 'org-test-ob-consts))
|
|
|
|
(defmacro test-org-in-property-buffer (&rest body)
|
|
`(with-temp-buffer
|
|
(insert-file-contents (expand-file-name "property-inheritance.org"
|
|
org-test-example-dir))
|
|
(org-mode)
|
|
,@body))
|
|
|
|
(ert-deftest test-org-property-accumulation-top-use ()
|
|
(test-org-in-property-buffer
|
|
(goto-char (point-min))
|
|
(org-babel-next-src-block 1)
|
|
(should (equal 3 (org-babel-execute-src-block)))))
|
|
|
|
(ert-deftest test-org-property-accumulation-top-val ()
|
|
(test-org-in-property-buffer
|
|
(goto-char (point-min))
|
|
(org-babel-next-src-block 2)
|
|
(should (string= "foo=1 bar=2" (org-babel-execute-src-block)))))
|
|
|
|
(ert-deftest test-org-property-accumulation-overwrite-use ()
|
|
(test-org-in-property-buffer
|
|
(goto-char (point-min))
|
|
(org-babel-next-src-block 3)
|
|
(should (= 7 (org-babel-execute-src-block)))))
|
|
|
|
(ert-deftest test-org-property-accumulation-overwrite-val ()
|
|
(test-org-in-property-buffer
|
|
(goto-char (point-min))
|
|
(org-babel-next-src-block 4)
|
|
(should (string= "foo=7" (org-babel-execute-src-block)))))
|
|
|
|
(ert-deftest test-org-property-accumulation-append-use ()
|
|
(test-org-in-property-buffer
|
|
(goto-char (point-min))
|
|
(org-babel-next-src-block 5)
|
|
(should (= 6 (org-babel-execute-src-block)))))
|
|
|
|
(ert-deftest test-org-property-accumulation-append-val ()
|
|
(test-org-in-property-buffer
|
|
(goto-char (point-min))
|
|
(org-babel-next-src-block 6)
|
|
(should (string= "foo=1 bar=2 baz=3" (org-babel-execute-src-block)))))
|
|
|
|
(provide 'test-ob-R)
|
|
|
|
;;; test-ob-R.el ends here
|