Browse Source

ob-tangle: Fix last commit

* lisp/ob-tangle.el (org-babel-tangle-single-block):
  `org-babel-expand-noweb-references' specifically needs to be run in
  the Org document so as to resolve references.
* testing/lisp/test-ob-tangle.el (ob-tangle/continued-code-blocks-w-noweb-ref):
  Make sure a failing test doesn't leave a file behind it.
Nicolas Goaziou 4 years ago
parent
commit
00ea6a286c
2 changed files with 20 additions and 19 deletions
  1. 14 14
      lisp/ob-tangle.el
  2. 6 5
      testing/lisp/test-ob-tangle.el

+ 14 - 14
lisp/ob-tangle.el

@@ -442,25 +442,25 @@ non-nil, return the full association list to be used by
 	  (intern (concat "org-babel-variable-assignments:" src-lang)))
 	 (body
 	  ;; Run the tangle-body-hook.
-          (with-temp-buffer
-	    (insert
-	     ;; Expand body in language specific manner.
-	     (let ((body (if (org-babel-noweb-p params :tangle)
-			     (org-babel-expand-noweb-references info)
-			   (nth 1 info))))
+          (let ((body (if (org-babel-noweb-p params :tangle)
+			  (org-babel-expand-noweb-references info)
+			(nth 1 info))))
+	    (with-temp-buffer
+	      (insert
+	       ;; Expand body in language specific manner.
 	       (cond ((assq :no-expand params) body)
 		     ((fboundp expand-cmd) (funcall expand-cmd body params))
 		     (t
 		      (org-babel-expand-body:generic
 		       body params (and (fboundp assignments-cmd)
-					(funcall assignments-cmd params)))))))
-	    (when (string-match "-r" extra)
-	      (goto-char (point-min))
-	      (while (re-search-forward
-		      (replace-regexp-in-string "%s" ".+" cref-fmt) nil t)
-		(replace-match "")))
-	    (run-hooks 'org-babel-tangle-body-hook)
-	    (buffer-string)))
+					(funcall assignments-cmd params))))))
+	      (when (string-match "-r" extra)
+		(goto-char (point-min))
+		(while (re-search-forward
+			(replace-regexp-in-string "%s" ".+" cref-fmt) nil t)
+		  (replace-match "")))
+	      (run-hooks 'org-babel-tangle-body-hook)
+	      (buffer-string))))
 	 (comment
 	  (when (or (string= "both" (cdr (assq :comments params)))
 		    (string= "org" (cdr (assq :comments params))))

+ 6 - 5
testing/lisp/test-ob-tangle.el

@@ -63,11 +63,12 @@
            "df|sed '1d'|awk '{print $5 \" \" $6}'|sort -n |tail -1|awk '{print $2}'"))
       (org-narrow-to-subtree)
       (org-babel-tangle)
-      (with-temp-buffer
-        (insert-file-contents "babel.sh")
-        (goto-char (point-min))
-        (should (re-search-forward (regexp-quote tangled) nil t)))
-      (delete-file "babel.sh"))))
+      (should (unwind-protect
+		  (with-temp-buffer
+		    (insert-file-contents "babel.sh")
+		    (goto-char (point-min))
+		    (re-search-forward (regexp-quote tangled) nil t))
+		(when (file-exists-p "babel.sh") (delete-file "babel.sh")))))))
 
 (ert-deftest ob-tangle/expand-headers-as-noweb-references ()
   "Test that references to headers are expanded during noweb expansion."