]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix auth-source-delete (Bug#26184)
authorNoam Postavsky <npostavs@gmail.com>
Wed, 18 Jul 2018 01:00:27 +0000 (21:00 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Wed, 18 Jul 2018 01:28:26 +0000 (21:28 -0400)
* lisp/auth-source.el (auth-source-delete): Fix `auth-source-search'
call.
* test/lisp/auth-source-tests.el (auth-source-delete): New test.

lisp/auth-source.el
test/lisp/auth-source-tests.el

index b733054ae5fdf3ab93c1203e606ed12137848098..374b7f1e86cac930ae6d31407d029896a7118f0f 100644 (file)
@@ -763,7 +763,7 @@ Calls `auth-source-search' with the :delete property in SPEC set to t.
 The backend may not actually delete the entries.
 
 Returns the deleted entries."
-  (auth-source-search (plist-put spec :delete t)))
+  (apply #'auth-source-search (plist-put spec :delete t)))
 
 (defun auth-source-search-collection (collection value)
   "Returns t is VALUE is t or COLLECTION is t or COLLECTION contains VALUE."
index eb93f7488e4c1b8f62a3c76c3a15ef26b524939d..c1ee9093744068f559125f8d00566f2dd9dc2196 100644 (file)
         (should (equal found-as-string (concat testname ": " needed)))))
     (delete-file netrc-file)))
 
+(ert-deftest auth-source-delete ()
+  (let* ((netrc-file (make-temp-file "auth-source-test" nil nil "\
+machine a1 port a2 user a3 password a4
+machine b1 port b2 user b3 password b4
+machine c1 port c2 user c3 password c4\n"))
+         (auth-sources (list netrc-file))
+         (auth-source-do-cache nil)
+         (expected '((:host "a1" :port "a2" :user "a3" :secret "a4")))
+         (parameters '(:max 1 :host t)))
+    (unwind-protect
+        (let ((found (apply #'auth-source-delete parameters)))
+          (dolist (f found)
+            (let ((s (plist-get f :secret)))
+              (setf f (plist-put f :secret
+                                 (if (functionp s) (funcall s) s)))))
+          ;; Note: The netrc backend doesn't delete anything, so
+          ;; this is actually the same as `auth-source-search'.
+          (should (equal found expected)))
+      (delete-file netrc-file))))
+
 (provide 'auth-source-tests)
 ;;; auth-source-tests.el ends here