Fix auth-source-delete (Bug#26184)

* lisp/auth-source.el (auth-source-delete): Fix `auth-source-search'
call.
* test/lisp/auth-source-tests.el (auth-source-delete): New test.
This commit is contained in:
Noam Postavsky 2018-07-17 21:00:27 -04:00
parent a4767a662b
commit cb50077b1e
2 changed files with 21 additions and 1 deletions

View 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."

View file

@ -289,5 +289,25 @@
(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