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. The backend may not actually delete the entries.
Returns the deleted 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) (defun auth-source-search-collection (collection value)
"Returns t is VALUE is t or COLLECTION is t or COLLECTION contains 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))))) (should (equal found-as-string (concat testname ": " needed)))))
(delete-file netrc-file))) (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) (provide 'auth-source-tests)
;;; auth-source-tests.el ends here ;;; auth-source-tests.el ends here