aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/gnupg.scm3
-rw-r--r--gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch69
2 files changed, 71 insertions, 1 deletions
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 5f6215b854..dc801a6a4f 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -434,7 +434,8 @@ distributed separately.")
;; Unfortunately, we have to disable some tests due to some gpg-agent
;; goofiness... see:
;; https://bugs.launchpad.net/pygpgme/+bug/999949
- (patches (search-patches "pygpgme-disable-problematic-tests.patch"))))
+ (patches (search-patches "pygpgme-disable-problematic-tests.patch"
+ "python-pygpgme-fix-pinentry-tests.patch"))))
(arguments
`(#:phases
(modify-phases %standard-phases
diff --git a/gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch b/gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch
new file mode 100644
index 0000000000..1f7a4cadb7
--- /dev/null
+++ b/gnu/packages/patches/python-pygpgme-fix-pinentry-tests.patch
@@ -0,0 +1,69 @@
+Fix test failure of test_XXX caused by upgrade of gpgme from 1.6.0 to
+1.8.0:
+
+======================================================================
+FAIL: test_encrypt_to_signonly (tests.test_encrypt_decrypt.EncryptDecryptTestCase)
+----------------------------------------------------------------------
+Traceback (most recent call last):
+ File "/tmp/guix-build-python2-pygpgme-0.3.drv-0/pygpgme-0.3/tests/test_encrypt_decrypt.py", line 185, in test_encrypt_to_signonly
+ self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_UNKNOWN)
+AssertionError: 7 != 0
+
+----------------------------------------------------------------------
+
+Patch copied from the Debian package pygpgme-0.3-1.2:
+
+https://sources.debian.net/src/pygpgme/0.3-1.2/debian/patches/0005-Fix-test-failures-with-pinentry.patch/
+
+From: "Dr. Tobias Quathamer" <toddy@debian.org>
+Date: Thu, 24 Nov 2016 12:20:54 +0100
+Subject: Fix test failures with pinentry
+
+---
+ tests/test_encrypt_decrypt.py | 5 +++--
+ tests/test_passphrase.py | 2 ++
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test_encrypt_decrypt.py b/tests/test_encrypt_decrypt.py
+index 21ae83e..05707e1 100644
+--- a/tests/test_encrypt_decrypt.py
++++ b/tests/test_encrypt_decrypt.py
+@@ -132,6 +132,7 @@ class EncryptDecryptTestCase(GpgHomeTestCase):
+ os.write(fd, b'Symmetric passphrase\n')
+ ctx = gpgme.Context()
+ ctx.armor = True
++ ctx.pinentry_mode = gpgme.PINENTRY_MODE_LOOPBACK
+ ctx.passphrase_cb = passphrase
+ ctx.encrypt(None, 0, plaintext, ciphertext)
+ self.assertTrue(
+@@ -182,8 +183,8 @@ class EncryptDecryptTestCase(GpgHomeTestCase):
+ ctx.encrypt([recipient], gpgme.ENCRYPT_ALWAYS_TRUST,
+ plaintext, ciphertext)
+ except gpgme.GpgmeError as exc:
+- self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_UNKNOWN)
+- self.assertEqual(exc.args[1], gpgme.ERR_GENERAL)
++ self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME)
++ self.assertEqual(exc.args[1], gpgme.ERR_UNUSABLE_PUBKEY)
+ else:
+ self.fail('gpgme.GpgmeError not raised')
+
+diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py
+index 35b3c59..05e6811 100644
+--- a/tests/test_passphrase.py
++++ b/tests/test_passphrase.py
+@@ -34,6 +34,7 @@ class PassphraseTestCase(GpgHomeTestCase):
+ ctx = gpgme.Context()
+ key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3')
+ ctx.signers = [key]
++ ctx.pinentry_mode = gpgme.PINENTRY_MODE_LOOPBACK
+ plaintext = BytesIO(b'Hello World\n')
+ signature = BytesIO()
+
+@@ -55,6 +56,7 @@ class PassphraseTestCase(GpgHomeTestCase):
+ ctx = gpgme.Context()
+ key = ctx.get_key('EFB052B4230BBBC51914BCBB54DCBBC8DBFB9EB3')
+ ctx.signers = [key]
++ ctx.pinentry_mode = gpgme.PINENTRY_MODE_LOOPBACK
+ ctx.passphrase_cb = self.passphrase_cb
+ plaintext = BytesIO(b'Hello World\n')
+ signature = BytesIO()