[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 24a0228 059/135: Added tests for actions
From: |
Ian Dunn |
Subject: |
[elpa] master 24a0228 059/135: Added tests for actions |
Date: |
Mon, 17 Feb 2020 10:52:53 -0500 (EST) |
branch: master
commit 24a022843df5825f654aacc8313368c9f22287a1
Author: Ian D <address@hidden>
Commit: Ian D <address@hidden>
Added tests for actions
* org-edna.el (org-edna-prompt-for-archive): New defcustom.
(org-edna-action/archive!): Use it.
(org-edna-action/delete-property!): New action.
* org-edna-tests.el: Added tests for the remaining actions.
* org-edna-tests.org: Added some more test headings.
---
org-edna-tests.el | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
org-edna-tests.org | 8 ++++++
org-edna.el | 13 +++++++++-
3 files changed, 93 insertions(+), 1 deletion(-)
diff --git a/org-edna-tests.el b/org-edna-tests.el
index 4698e52..27110b3 100644
--- a/org-edna-tests.el
+++ b/org-edna-tests.el
@@ -27,6 +27,7 @@
(require 'org-edna)
(require 'ert)
+(require 'org-id)
(defconst org-edna-test-dir
(expand-file-name (file-name-directory (or load-file-name
buffer-file-name))))
@@ -49,6 +50,7 @@
(defconst org-edna-test-id-heading-two
"b010cbad-60dc-46ef-a164-eb155e62cbb2")
(defconst org-edna-test-id-heading-three
"97e6b0f0-40c4-464f-b760-6e5ca9744eb5")
(defconst org-edna-test-id-heading-four
"7d4d564b-18b2-445c-a0c8-b1b3fb9ad29e")
+(defconst org-edna-test-archive-heading
"d7668277-f959-43ba-8e85-8a3c76996862")
(defun org-edna-find-test-heading (id)
"Find the test heading with id ID."
@@ -366,6 +368,77 @@
(should (string-equal (org-entry-get nil "SCHEDULED")
"<2000-01-15 Sat 00:00>")))))
+(ert-deftest org-edna-action-tag ()
+ (let ((pom (org-edna-find-test-heading org-edna-test-id-heading-one)))
+ (org-with-point-at pom
+ (org-edna-action/tag! nil "tag")
+ (should (equal (org-get-tags) '("tag")))
+ (org-edna-action/tag! nil "")
+ (should-not (org-get-tags)))))
+
+(ert-deftest org-edna-action-property ()
+ (let ((pom (org-edna-find-test-heading org-edna-test-id-heading-one)))
+ (org-with-point-at pom
+ (org-edna-action/set-property! nil "TEST" "1")
+ (should (equal (org-entry-get nil "TEST") "1"))
+ (org-edna-action/delete-property! nil "TEST")
+ (should-not (org-entry-get nil "TEST")))))
+
+(ert-deftest org-edna-action-clock ()
+ (let ((pom (org-edna-find-test-heading org-edna-test-id-heading-one)))
+ (org-with-point-at pom
+ (org-edna-action/clock-in! nil)
+ (should (org-clocking-p))
+ (should (equal org-clock-hd-marker pom))
+ (org-edna-action/clock-out! nil)
+ (should-not (org-clocking-p)))))
+
+(ert-deftest org-edna-action-priority ()
+ (let ((pom (org-edna-find-test-heading org-edna-test-id-heading-one))
+ (org-lowest-priority ?C)
+ (org-highest-priority ?A)
+ (org-default-priority ?B))
+ (org-with-point-at pom
+ (org-edna-action/set-priority! nil "A")
+ (should (equal (org-entry-get nil "PRIORITY") "A"))
+ (org-edna-action/set-priority! nil 'down)
+ (should (equal (org-entry-get nil "PRIORITY") "B"))
+ (org-edna-action/set-priority! nil 'up)
+ (should (equal (org-entry-get nil "PRIORITY") "A"))
+ (org-edna-action/set-priority! nil ?C)
+ (should (equal (org-entry-get nil "PRIORITY") "C"))
+ (org-edna-action/set-priority! nil 'remove)
+ (should (equal (org-entry-get nil "PRIORITY") "B")))))
+
+(ert-deftest org-edna-action-effort ()
+ (let ((pom (org-edna-find-test-heading org-edna-test-id-heading-one)))
+ (org-with-point-at pom
+ (org-edna-action/set-effort! nil "0:01")
+ (should (equal (org-entry-get nil "EFFORT") "0:01"))
+ (org-edna-action/set-effort! nil 'increment)
+ (should (equal (org-entry-get nil "EFFORT") "0:02"))
+ (org-entry-delete nil "EFFORT"))))
+
+(ert-deftest org-edna-action-archive ()
+ (let ((org-archive-save-context-info '(todo))
+ (pom (org-edna-find-test-heading org-edna-test-archive-heading))
+ ;; Archive it to the same location
+ (org-archive-location "::** Archive")
+ (org-edna-prompt-for-archive nil))
+ (org-with-point-at pom
+ (org-edna-action/archive! nil)
+ (should (equal (org-entry-get nil "ARCHIVE_TODO") "TODO"))
+ (org-entry-delete nil "ARCHIVE_TODO"))))
+
+(ert-deftest org-edna-action-chain ()
+ (let ((old-pom (org-edna-find-test-heading org-edna-test-id-heading-one))
+ (new-pom (org-edna-find-test-heading org-edna-test-id-heading-two)))
+ (org-entry-put old-pom "TEST" "1")
+ (org-with-point-at new-pom
+ (org-edna-action/chain! old-pom "TEST")
+ (should (equal (org-entry-get nil "TEST") "1")))
+ (org-entry-delete old-pom "TEST")))
+
;; Conditions
diff --git a/org-edna-tests.org b/org-edna-tests.org
index ca881df..0c2c24e 100644
--- a/org-edna-tests.org
+++ b/org-edna-tests.org
@@ -1,3 +1,6 @@
+#+STARTUP: nologdone
+#+PROPERTY: EFFORT_ALL 0:01 0:02 0:03
+
* COMMENT Copying
Copyright (C) 2017 Ian Dunn
@@ -64,6 +67,11 @@ SCHEDULED: <2017-01-01 Sun>
:PROPERTIES:
:ID: 06aca55e-ce09-46df-80d7-5b52e55d6505
:END:
+** Archive
+*** TODO Archive One
+:PROPERTIES:
+:ID: d7668277-f959-43ba-8e85-8a3c76996862
+:END:
* Finder Tests
** Match
*** TODO Blocking Test
diff --git a/org-edna.el b/org-edna.el
index bb99ec4..f980ba9 100644
--- a/org-edna.el
+++ b/org-edna.el
@@ -41,6 +41,11 @@ properties used during actions or conditions."
:group 'org-edna
:type 'boolean)
+(defcustom org-edna-prompt-for-archive t
+ "Whether Edna should prompt before archiving a target."
+ :group 'org-edna
+ :type 'boolean)
+
(defmacro org-edna--syntax-error (msg form pos)
`(signal 'invalid-read-syntax (list :msg ,msg :form ,form :pos ,pos)))
@@ -508,6 +513,10 @@ IDS are all UUIDs as understood by `org-id-find'."
(ignore last-entry)
(org-entry-put nil property value))
+(defun org-edna-action/delete-property! (last-entry property)
+ (ignore last-entry)
+ (org-entry-delete nil property))
+
(defun org-edna-action/clock-in! (last-entry)
(ignore last-entry)
(org-clock-in))
@@ -531,7 +540,9 @@ IDS are all UUIDs as understood by `org-id-find'."
(defun org-edna-action/archive! (last-entry)
(ignore last-entry)
- (org-archive-subtree-default-with-confirmation))
+ (if org-edna-prompt-for-archive
+ (org-archive-subtree-default-with-confirmation)
+ (org-archive-subtree-default)))
(defun org-edna-action/chain! (last-entry property)
(when-let ((old-prop (org-entry-get last-entry property)))
- [elpa] master 3b3625f 064/135: Cleaned up package header and added various docstrings, (continued)
- [elpa] master 3b3625f 064/135: Cleaned up package header and added various docstrings, Ian Dunn, 2020/02/17
- [elpa] master a71c519 068/135: Added docstrings to some finders, Ian Dunn, 2020/02/17
- [elpa] master 3ff308b 055/135: Updated to new syntax, Ian Dunn, 2020/02/17
- [elpa] master 7618794 066/135: Added in-buffer settings and new sections to Documentation, Ian Dunn, 2020/02/17
- [elpa] master 9a6ba17 071/135: Fixed up documentation, Ian Dunn, 2020/02/17
- [elpa] master d493232 077/135: Added support for interactive editing of blockers and triggers, Ian Dunn, 2020/02/17
- [elpa] master 0aa0bf8 082/135: Don't present variables for keyword completion, Ian Dunn, 2020/02/17
- [elpa] master f265a6b 102/135: Fixed error reporting, Ian Dunn, 2020/02/17
- [elpa] master 9a38d60 050/135: Fixed chain-find and planning actions, Ian Dunn, 2020/02/17
- [elpa] master 836feb4 062/135: Fixed actions and documentation, Ian Dunn, 2020/02/17
- [elpa] master 24a0228 059/135: Added tests for actions,
Ian Dunn <=
- [elpa] master 0b0cb67 063/135: Use org source blocks instead of example blocks in documentation, Ian Dunn, 2020/02/17
- [elpa] master e6f88e7 069/135: Silenced byte-compiler, Ian Dunn, 2020/02/17
- [elpa] master ef302af 070/135: Added more docstrings, Ian Dunn, 2020/02/17
- [elpa] master 00abd93 073/135: Fixed tests copyright string, Ian Dunn, 2020/02/17
- [elpa] master c442e77 076/135: Only require subr-x during compilation, Ian Dunn, 2020/02/17
- [elpa] master 311e980 065/135: Compile targets before running tests, Ian Dunn, 2020/02/17
- [elpa] master 9d26430 072/135: Fixed copyright strings., Ian Dunn, 2020/02/17
- [elpa] master f83f47b 074/135: Updated documentation for ELPA release, Ian Dunn, 2020/02/17
- [elpa] master 88b59b3 089/135: Added section to documentation for changes, Ian Dunn, 2020/02/17
- [elpa] master 7e6913b 091/135: Fixed "Setting the Properties" custom_id and title, Ian Dunn, 2020/02/17