branch: elpa/org-drill
commit 11abbd27472d032f0f272cd45206f5af855aafea
Author: Phillip Lord <[email protected]>
Commit: Phillip Lord <[email protected]>
Add robotized test
---
Makefile | 5 +++++
robot/main-test-copy.org | 48 ++++++++++++++++++++++++++++++++++++++++++++++
robot/main-test.org | 12 ++++++++++++
robot/org-drill-launch.el | 31 ++++++++++++++++++++++++++++++
robot/robot-test.sh | 49 +++++++++++++++++++++++++++++++++++++++++++++++
test/org-drill-test.el | 1 +
6 files changed, 146 insertions(+)
diff --git a/Makefile b/Makefile
index 68a9ccf44b..345710f3ca 100644
--- a/Makefile
+++ b/Makefile
@@ -14,6 +14,8 @@ install:
test: install just-test
+robot-and-test: robot-test just-test
+
just-test:
$(EMACS_ENV) $(CASK) emacs --batch -q \
--directory=. \
@@ -33,4 +35,7 @@ docker-test:
$(MAKE) test-git DOCKER_TAG=25.3
$(MAKE) test-cp DOCKER_TAG=25.3
+robot-test:
+ $(EMACS_ENV) ./robot/robot-test.sh
+
.PHONY: test
diff --git a/robot/main-test-copy.org b/robot/main-test-copy.org
new file mode 100644
index 0000000000..e57adcc480
--- /dev/null
+++ b/robot/main-test-copy.org
@@ -0,0 +1,48 @@
+
+* One :drill:
+ SCHEDULED: <2019-06-16 Sun>
+ :PROPERTIES:
+ :ID: 8ac0c150-4bda-4d52-aadf-c09b6568076e
+ :DRILL_LAST_INTERVAL: 3.56
+ :DRILL_REPEATS_SINCE_FAIL: 2
+ :DRILL_TOTAL_REPEATS: 1
+ :DRILL_FAILURE_COUNT: 0
+ :DRILL_AVERAGE_QUALITY: 5.0
+ :DRILL_EASE: 2.6
+ :DRILL_LAST_QUALITY: 5
+ :DRILL_LAST_REVIEWED: [2019-06-12 Wed 22:27]
+ :END:
+
+One body
+
+* Two :drill:
+ SCHEDULED: <2019-06-16 Sun>
+ :PROPERTIES:
+ :ID: 20b11d4a-68f4-4afa-b7b4-93aef89de9d4
+ :DRILL_LAST_INTERVAL: 3.56
+ :DRILL_REPEATS_SINCE_FAIL: 2
+ :DRILL_TOTAL_REPEATS: 1
+ :DRILL_FAILURE_COUNT: 0
+ :DRILL_AVERAGE_QUALITY: 5.0
+ :DRILL_EASE: 2.6
+ :DRILL_LAST_QUALITY: 5
+ :DRILL_LAST_REVIEWED: [2019-06-12 Wed 22:27]
+ :END:
+
+Two body
+
+* Three :drill:
+ SCHEDULED: <2019-06-16 Sun>
+ :PROPERTIES:
+ :ID: 253358dc-ce97-4c01-bdbb-ad97f7b16d3a
+ :DRILL_LAST_INTERVAL: 3.56
+ :DRILL_REPEATS_SINCE_FAIL: 2
+ :DRILL_TOTAL_REPEATS: 1
+ :DRILL_FAILURE_COUNT: 0
+ :DRILL_AVERAGE_QUALITY: 5.0
+ :DRILL_EASE: 2.6
+ :DRILL_LAST_QUALITY: 5
+ :DRILL_LAST_REVIEWED: [2019-06-12 Wed 22:26]
+ :END:
+
+Three body
diff --git a/robot/main-test.org b/robot/main-test.org
new file mode 100644
index 0000000000..28a3efb7ff
--- /dev/null
+++ b/robot/main-test.org
@@ -0,0 +1,12 @@
+
+* One :drill:
+
+One body
+
+* Two :drill:
+
+Two body
+
+* Three :drill:
+
+Three body
diff --git a/robot/org-drill-launch.el b/robot/org-drill-launch.el
new file mode 100644
index 0000000000..bab57ecfba
--- /dev/null
+++ b/robot/org-drill-launch.el
@@ -0,0 +1,31 @@
+;; Shutup
+(setq make-backup-files nil)
+(setq auto-save-default nil)
+
+;; Clean up
+(delete-file "./robot/failure.txt")
+
+(set-frame-name "emacs-bot")
+
+(condition-case e
+ (progn (load-file "org-learn.el")
+ (load-file "org-drill.el"))
+ (error
+ (with-temp-buffer
+ (insert (format "%s" (error-message-string e)))
+ (write-region (point-min) (point-max) "./robot/failure.txt"))
+ (let ((kill-emacs-hook nil))
+ (kill-emacs))))
+
+(copy-file "robot/main-test.org" "robot/main-test-copy.org" t)
+(find-file "robot/main-test-copy.org")
+
+(condition-case e
+ (org-drill)
+ (error
+ (with-temp-buffer
+ (insert (format "%s" (error-message-string e)))
+ ;; write to ./ now because we have changed directory
+ (write-region (point-min) (point-max) "./failure.txt"))
+ (let ((kill-emacs-hook nil))
+ (kill-emacs))))
diff --git a/robot/robot-test.sh b/robot/robot-test.sh
new file mode 100755
index 0000000000..31a6f09a93
--- /dev/null
+++ b/robot/robot-test.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+set -e
+
+$EMACS -Q -l ./robot/org-drill-launch.el &
+
+sleep 1
+
+window_id=`xdotool search --name "emacs-bot"`
+if [ -z "$window_id" ]
+then
+ echo "Could not find window ID for Emacs-bot"
+ exit 1
+fi
+
+## Org-drill should be running at this point, so give three answers
+## with a score of file
+echo answer one
+xdotool key --window $window_id KP_Enter
+sleep 0.25
+xdotool key --window $window_id 5
+sleep 0.25
+
+
+echo answer two
+xdotool key --window $window_id KP_Enter
+sleep 0.25
+xdotool key --window $window_id 5
+sleep 0.25
+
+echo answer three
+xdotool key --window $window_id KP_Enter
+sleep 0.25
+xdotool key --window $window_id 5
+sleep 0.25
+
+# ## Press any key to continue
+echo press any key to continue
+xdotool key --window $window_id KP_Enter
+sleep 0.25
+
+echo Save file
+xdotool key --window $window_id y
+sleep 0.25
+
+echo Goodnight Emacs
+xdotool key --window $window_id alt+x
+xdotool type --window $window_id kill-emacs
+xdotool key --window $window_id KP_Enter
diff --git a/test/org-drill-test.el b/test/org-drill-test.el
index 26e60c0aa4..a469ab215a 100644
--- a/test/org-drill-test.el
+++ b/test/org-drill-test.el
@@ -43,3 +43,4 @@
(assess-make-related-file
(concat this-directory "one-two-three.org"))
(org-map-drill-entries (lambda () (point)) 'file nil)))))
+