From ba0dc8273e4f83bcd2d43baa5910aae34b93048c Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Mon, 1 Feb 2016 19:25:12 -0500
Subject: [PATCH] passphrase_cb is deprecated

https://bugs.gnupg.org/gnupg/issue767 indicates that
gpgme_set_passphrase_cb is a deprecated corner of the API and that
developers using gpgme should really rely on the gpg-agent to handle
this stuff.  This should actually simplify things for most
installations -- just strip out all passphrase handling from your
application entirely, relying on gpg to figure out how to find the
agent, and relying on the agent figuring out how to prompt the user
(if necessary).

However, if a developer really wants to use the passphrase callback
approach, they'll have to use loopback pinentry.  This sets up the
test suite to be able to make those tests.

Upstream-Status: Backport

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>

---
 tests/util.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tests/util.py b/tests/util.py
index cd803c2..86892ca 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys')
 
 class GpgHomeTestCase(unittest.TestCase):
 
-    gpg_conf_contents = ''
+    gpg_conf_contents = 'pinentry-mode loopback'
+    gpg_agent_conf_contents = 'allow-loopback-pinentry'
+
     import_keys = []
 
     def keyfile(self, key):
@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase):
         fp.write(self.gpg_conf_contents.encode('UTF-8'))
         fp.close()
 
+        fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb')
+        fp.write(self.gpg_agent_conf_contents.encode('UTF-8'))
+        fp.close()
+
         # import requested keys into the keyring
         ctx = gpgme.Context()
         for key in self.import_keys:
