branch: externals/persist commit 5b832595f448189572e8886baaa260e164bba543 Author: Phillip Lord <phillip.l...@russet.org.uk> Commit: Phillip Lord <phillip.l...@russet.org.uk>
perist can now work with values other than numbers No longer compare arbitrary values with `=` in persist-save. --- persist.el | 4 +-- test/persist-tests.el | 76 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 53 insertions(+), 27 deletions(-) diff --git a/persist.el b/persist.el index a741b6d..223f239 100644 --- a/persist.el +++ b/persist.el @@ -132,8 +132,8 @@ variables persist automatically when Emacs exits." (unless (persist--persistant-p symbol) (error (format "Symbol %s is not persistant" symbol))) - (when (not (= (symbol-value symbol) - (persist-default symbol))) + (unless (equal (symbol-value symbol) + (persist-default symbol)) (let ((dir-loc (file-name-directory (persist--file-location symbol)))) diff --git a/test/persist-tests.el b/test/persist-tests.el index 2e06dc6..9fa406f 100644 --- a/test/persist-tests.el +++ b/test/persist-tests.el @@ -21,11 +21,15 @@ ;; do not save not persist variables (should-error (with-local-temp-persist - (persist-save (cl-gensym))))) + (persist-save (cl-gensym))) + :type 'error + :exclude-subtypes t)) (ert-deftest test-persist-save () (with-local-temp-persist (let ((sym (cl-gensym))) + ;; precondition + (should-not (file-exists-p (persist--file-location sym))) (set sym 10) (persist-symbol sym 10) (persist-save sym) @@ -43,6 +47,27 @@ (should-error (persist-save 'fred))))) +(ert-deftest test-persist-save-non-number () + "Test saving something that is not a number. + +`test-persist-save' missed " + (with-local-temp-persist + (let ((sym (cl-gensym))) + (set sym "fred") + (persist-symbol sym "fred") + (persist-save sym) + (should t) + (should-not (file-exists-p (persist--file-location sym))) + (set sym "george") + (persist-save sym) + (should (file-exists-p (persist--file-location sym))) + (should + (string-match-p + "george" + (with-temp-buffer + (insert-file-contents (persist--file-location sym)) + (buffer-string))))))) + (ert-deftest test-persist-load () (with-local-temp-persist (let ((sym (cl-gensym))) @@ -75,27 +100,28 @@ (persist-default 'test-persist-variable))))) (ert-deftest test-persist-location () - (let ((sym (cl-gensym))) - (set sym 10) - (persist-symbol sym 10) - (persist-location sym "./persist-defined-location") - (should - (equal (expand-file-name - (symbol-name sym) - "./persist-defined-location/") - (persist--file-location sym))) - (persist-save sym) - (should t) - (should-not (file-exists-p (persist--file-location sym))) - (set sym 20) - (persist-save sym) - (should (file-exists-p (persist--file-location sym))) - (should - (string-match-p - "20" - (with-temp-buffer - (insert-file-contents (persist--file-location sym)) - (buffer-string)))) - (should-error - (persist-save 'fred)) - (delete-directory "./persist-defined-location" t))) + (unwind-protect + (let ((sym (cl-gensym))) + (delete-directory "./persist-defined-location" t) + (set sym 10) + (persist-symbol sym 10) + (persist-location sym "./persist-defined-location") + (should + (equal (expand-file-name + (symbol-name sym) + "./persist-defined-location/") + (persist--file-location sym))) + (persist-save sym) + (should-not (file-exists-p (persist--file-location sym))) + (set sym 20) + (persist-save sym) + (should (file-exists-p (persist--file-location sym))) + (should + (string-match-p + "20" + (with-temp-buffer + (insert-file-contents (persist--file-location sym)) + (buffer-string)))) + (should-error + (persist-save 'fred))) + (delete-directory "./persist-defined-location" t)))