Browse Source

beginning tests for ob-exp, and related improvements to org-test

  - fixed issue in creation of new files
  - fixed issue in org-test-in-file
  - new example file w/o any headlines
Eric Schulte 14 năm trước cách đây
mục cha
commit
5bafe303aa
3 tập tin đã thay đổi với 65 bổ sung10 xóa
  1. 9 0
      testing/example-file-no-header.org
  2. 36 0
      testing/lisp/test-ob-exp.el
  3. 20 10
      testing/org-test.el

+ 9 - 0
testing/example-file-no-header.org

@@ -0,0 +1,9 @@
+This is an example file for use by the Org-mode tests.
+
+This file is special because it has no headings, which can be
+erroneously assumed by some code.
+
+#+begin_src emacs-lisp :tangle no
+  ;; 94839181-184f-4ff4-a72f-94214df6f5ba
+  (message "I am code")
+#+end_src

+ 36 - 0
testing/lisp/test-ob-exp.el

@@ -0,0 +1,36 @@
+;;; test-ob-exp.el
+
+;; Copyright (c) 2010 Eric Schulte
+;; Authors: Eric Schulte
+
+;; Released under the GNU General Public License version 3
+;; see: http://www.gnu.org/licenses/gpl-3.0.html
+
+;;;; Comments:
+
+;; Template test file for Org-mode tests
+
+
+;;; Code:
+(require 'org-test)
+
+
+;;; Tests
+(ert-deftest test-ob-exp/org-babel-exp-src-blocks/w-no-headers ()
+  "Testing export without any headlines in the org-mode file."
+  
+  (org-test-in-example-file org-test-no-header-example-file-name
+    ;; export the file to html
+    (org-export-as-html nil)
+    ;; should create a .html file
+    (should (file-exists-p (concat
+			    (file-name-sans-extension
+			     org-test-no-header-example-file-name)
+			    ".html")))
+    ;; should not create a file with "::" appended to it's name
+    (should-not (file-exists-p
+		 (concat org-test-no-header-example-file-name "::")))))
+
+(provide 'test-ob-exp)
+
+;;; test-ob-exp.el ends here

+ 20 - 10
testing/org-test.el

@@ -59,6 +59,9 @@ org-test searches this directory up the directory tree.")
 (defconst org-test-example-file-name
   (expand-file-name "example-file.org" org-test-dir))
 
+(defconst org-test-no-header-example-file-name
+  (expand-file-name "example-file-no-header.org" org-test-dir))
+
 
 ;;; Functions for writing tests
 
@@ -74,16 +77,20 @@ currently executed.")
 (defmacro org-test-in-example-file (file &rest body)
   "Execute body in the Org-mode example file."
   (declare (indent 1))
-  `(let ((visited-p (get-file-buffer (or ,file org-test-example-file-name)))
-	 to-be-removed)
+  `(let* ((my-file (or ,file org-test-example-file-name))
+	  (visited-p (get-file-buffer my-file))
+	  to-be-removed)
      (save-window-excursion
        (save-match-data
-	 (find-file org-test-example-file-name)
+	 (find-file my-file)
 	 (setq to-be-removed (current-buffer))
 	 (goto-char (point-min))
-	 (outline-next-visible-heading 1)
-	 (org-show-subtree)
-	 (org-show-block-all)
+	 (condition-case nil
+	     (progn
+	       (outline-next-visible-heading 1)
+	       (org-show-subtree)
+	       (org-show-block-all))
+	   (error nil))
 	 ,@body))
      (unless visited-p
        (kill-buffer to-be-removed))))
@@ -113,11 +120,12 @@ files."
   (concat org-base-dir "/")
   "Jump between org-mode files and their tests."
   (lambda (path)
-    (let ((full-path (expand-file-name path org-base-dir))
-	  (name (file-name-nondirectory path)))
+    (let* ((full-path (expand-file-name path org-base-dir))
+	  (file-name (file-name-nondirectory path))
+	  (name (file-name-sans-extension file-name)))
       (find-file full-path)
       (insert
-       ";;; " name "\n\n"
+       ";;; " file-name "\n\n"
        ";; Copyright (c) 2010 " user-full-name "\n"
        ";; Authors: " user-full-name "\n\n"
        ";; Released under the GNU General Public License version 3\n"
@@ -133,7 +141,9 @@ files."
        "  \"Just an example to get you started.\"\n"
        "  (should t)\n"
        "  (should-not nil)\n"
-       "  (should-error (error \"errr...\")))") full-path))
+       "  (should-error (error \"errr...\")))\n\n\n"
+       "(provide '" name ")\n\n"
+       ";;; " file-name " ends here\n") full-path))
   (lambda () ((lambda (res) (if (listp res) (car res) res)) (which-function))))