Skip to content

Commit c702f1e

Browse files
committed
Add some helper functions for Org tests
1 parent 03a4f68 commit c702f1e

File tree

2 files changed

+42
-26
lines changed

2 files changed

+42
-26
lines changed

test/jupyter-test.el

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2032,13 +2032,11 @@ Latex(r'$\\alpha$')"
20322032
(locate-library "jupyter")))
20332033
(org-babel-jupyter-resource-directory "./")
20342034
(file (expand-file-name "jupyter.png"))
2035-
(py-version
2036-
(with-current-buffer jupyter-org-test-buffer
2037-
(jupyter-test-ipython-kernel-version
2038-
(thread-first jupyter-current-client
2039-
(slot-value 'manager)
2040-
(slot-value 'kernel)
2041-
(slot-value 'spec)))))
2035+
(py-version (jupyter-test-ipython-kernel-version
2036+
(thread-first (jupyter-org-test-session-client "python")
2037+
(slot-value 'manager)
2038+
(slot-value 'kernel)
2039+
(slot-value 'spec))))
20422040
;; There is a change in how the IPython kernel prints base64 encoded
20432041
;; images somewhere between [4.6.1, 5.1]. In 5.1, base64 encoded
20442042
;; images are printed with line breaks whereas in 4.6.1 they are not.

test/test-helper.el

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -469,29 +469,46 @@ should have PROP with VAL."
469469
(defvar jupyter-org-test-buffer nil
470470
"`org-mode' buffer for testing Jupyter source blocks.")
471471

472+
(defun jupyter-org-test-block (lang code &rest args)
473+
(let ((arg-str (mapconcat
474+
(lambda (x)
475+
(cl-destructuring-bind (name . val) x
476+
(concat (symbol-name name) " " (format "%s" val))))
477+
args " ")))
478+
(concat
479+
"#+BEGIN_SRC jupyter-" lang " " arg-str " :session " jupyter-org-test-session "\n"
480+
code "\n"
481+
"#+END_SRC")))
482+
472483
(defun jupyter-org-test-setup ()
473484
(unless jupyter-org-test-session
474-
(require 'org)
475-
(setq org-babel-load-languages
476-
'((python . t)
477-
(jupyter . t)))
478-
(setq org-confirm-babel-evaluate nil)
479485
(setq jupyter-org-test-session (make-temp-name "ob-jupyter-test"))
486+
(setq org-confirm-babel-evaluate nil)
487+
(setq inferior-julia-program-name "julia")
488+
(require 'org)
489+
(require 'ob-python)
490+
(require 'ob-julia nil t)
491+
(require 'ob-jupyter))
492+
(unless jupyter-org-test-buffer
480493
(setq jupyter-org-test-buffer (get-buffer-create "ob-jupyter-test"))
481-
(org-babel-do-load-languages
482-
'org-babel-load-languages
483-
org-babel-load-languages)
484494
(with-current-buffer jupyter-org-test-buffer
485-
(org-mode)
486-
(insert
487-
"#+BEGIN_SRC jupyter-python " ":session " jupyter-org-test-session "\n"
488-
"#+END_SRC")
489-
(setq jupyter-current-client
490-
(with-current-buffer (org-babel-initiate-session)
491-
jupyter-current-client))))
495+
(org-mode)))
492496
(with-current-buffer jupyter-org-test-buffer
493497
(erase-buffer)))
494498

499+
(defun jupyter-org-test-client-from-info (info)
500+
(let ((params (nth 2 info)))
501+
(with-current-buffer
502+
(org-babel-jupyter-initiate-session
503+
(alist-get :session params) params)
504+
jupyter-current-client)))
505+
506+
(defun jupyter-org-test-session-client (lang)
507+
(jupyter-org-test-setup)
508+
(with-current-buffer jupyter-org-test-buffer
509+
(insert (jupyter-org-test-block lang ""))
510+
(jupyter-org-test-client-from-info (org-babel-get-src-block-info))))
511+
495512
(defmacro jupyter-org-test (&rest body)
496513
(declare (debug (body)))
497514
`(progn
@@ -536,11 +553,12 @@ results instead of an equality match."
536553
(insert src-block)
537554
(let* ((info (org-babel-get-src-block-info)))
538555
(save-window-excursion
539-
(org-babel-execute-src-block nil info))
540-
(org-with-point-at (org-babel-where-is-src-block-result nil info)
556+
(org-babel-execute-src-block nil info)
541557
(when (equal (alist-get :async args) "yes")
542-
(jupyter-wait-until-idle
543-
(jupyter-last-sent-request jupyter-current-client)))
558+
(jupyter-idle-sync
559+
(jupyter-last-sent-request
560+
(jupyter-org-test-client-from-info info)))))
561+
(org-with-point-at (org-babel-where-is-src-block-result nil info)
544562
(let ((element (org-element-context)))
545563
;; Handle empty results with just a RESULTS keyword
546564
;;

0 commit comments

Comments
 (0)