Subject: bug#64977: 29.1; `auth-source-macos-keychain-search' handles :user key incorrectly

From: Michael Albinus <[email-masked]>
Date: Sat, 12 Aug 2023 18:02:59 +0200

LdBeth <[email-masked]> writes:

Hi,

> I think it is possible to use cl-left to redefine
> `auth-source-macos-keychain-search-items' to avoid calling external
> security command and just check the argument passed to
> `call-process'.
>
> Something like:
>
> (cl-letf (((symbol-function 'call-process) (lambda (&rest r) (print r))))
>   (auth-source-search :user "ldb" :port "irc"))
>
> ("/usr/bin/security" nil t nil "find-internet-password" "-g" "-a" "ldb" "-r" "irc ")
>
> ("/usr/bin/security" nil t nil "find-generic-password" "-g" "-a" "ldb" "-s" "irc")

Yes, like this. And in the lambda function, you could check the expected
arguments of the "/usr/bin/security" call by `should' and friends.

Would you like to add such test(s)? This would give us more confidence
that nothing is or will be broken, because people using macOS would test
this by default when running "make check", even if they don't care the
macOS keychain.

> ldb

Best regards, Michael.