tools/password-store: fix emacs 26 compatibility

This commit is contained in:
Henrik Lissner 2017-12-10 15:37:01 -05:00
parent 41751aca44
commit 3bc0b18184
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 30 additions and 18 deletions

View file

@ -10,14 +10,19 @@
(t (t
(pass)))) (pass))))
;;;###autoload
(defalias '+pass--get-entry
(if (featurep 'auth-store-pass)
#'auth-source-pass-parse-entry
#'auth-pass-parse-entry))
;;;###autoload ;;;###autoload
(defun +pass-get-field (entry fields) (defun +pass-get-field (entry fields)
(unless noninteractive (if-let* ((data (if (listp entry) entry (+pass--get-entry entry))))
(if-let* ((data (if (listp entry) entry (auth-pass-parse-entry entry))))
(cl-loop for key in (doom-enlist fields) (cl-loop for key in (doom-enlist fields)
when (assoc key data) when (assoc key data)
return (cdr it)) return (cdr it))
(error "Couldn't find entry: %s" entry)))) (error "Couldn't find entry: %s" entry)))
;;;###autoload ;;;###autoload
(defun +pass-get-user (entry) (defun +pass-get-user (entry)
@ -35,7 +40,7 @@
(error "Username not found."))) (error "Username not found.")))
(defun +pass-ivy-action--get-field (item) (defun +pass-ivy-action--get-field (item)
(let* ((data (auth-pass-parse-entry item)) (let* ((data (+pass--get-entry item))
(field (if data (completing-read "Field: " (mapcar #'car data) nil t)))) (field (if data (completing-read "Field: " (mapcar #'car data) nil t))))
(if data (if data
(progn (progn

View file

@ -1,10 +1,12 @@
;; -*- no-byte-compile: t; -*- ;; -*- no-byte-compile: t; -*-
;;; tools/password-store/test/autoload-pass.el ;;; tools/password-store/test/autoload-pass.el
(load! ../autoload)
(defmacro -with-passwords! (buffer-args &rest body) (defmacro -with-passwords! (buffer-args &rest body)
(declare (indent defun)) (declare (indent defun))
`(cl-letf `(cl-letf
(((symbol-function 'auth-pass-parse-entry) (((symbol-function '+pass--get-entry)
(lambda (entry) (lambda (entry)
(when (equal entry "fake/source") (when (equal entry "fake/source")
'((secret . "defuse-account-gad") '((secret . "defuse-account-gad")
@ -24,9 +26,14 @@
(should (equal (+pass-get-field "fake/source" '("alt-login" "email")) (should (equal (+pass-get-field "fake/source" '("alt-login" "email"))
"hlissner")) "hlissner"))
(should (equal (+pass-get-field "fake/source" '("username" "email")) (should (equal (+pass-get-field "fake/source" '("username" "email"))
"henrik@lissner.net")) "henrik@lissner.net"))))
(should-not (+pass-get-field "fake/source" '("x" "y" "z")))
(def-test! missing-fields-return-nil
(-with-passwords!
(should-not (+pass-get-field "fake/source" '("x" "y" "z")))))
(def-test! missing-entries-throw-error
(-with-passwords!
(should-error (+pass-get-field "nonexistent/source" "login")))) (should-error (+pass-get-field "nonexistent/source" "login"))))
(def-test! get-login (def-test! get-login