From 32b80cf3c7d278ddf27117617a3e95e4a12c28c8 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 14 Jul 2020 14:46:58 +0200 Subject: python: Workaround for a regression in GnuPG 2.2.21 * lang/python/tests/support.py (is_gpg_version): New. * lang/python/tests/t-encrypt-sym.py: Add workaround. -- GnuPG-bug-id: 4991 Signed-off-by: Werner Koch --- lang/python/tests/t-encrypt-sym.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'lang/python/tests/t-encrypt-sym.py') diff --git a/lang/python/tests/t-encrypt-sym.py b/lang/python/tests/t-encrypt-sym.py index 4389a7d4..d22e0103 100755 --- a/lang/python/tests/t-encrypt-sym.py +++ b/lang/python/tests/t-encrypt-sym.py @@ -44,8 +44,16 @@ for passphrase in ("abc", b"abc"): c.set_passphrase_cb(passphrase_cb, None) c.op_encrypt([], 0, source, cipher) - assert passphrase_cb_called == 1, \ - "Callback called {} times".format(passphrase_cb_called) + # gpg 2.2.21 has a bug in that for a new passphrase the callback + # is called twice. This is fixed in 2.2.22 but a patch was also + # distributed so that we allow both. + if support.is_gpg_version((2,2,21)): + print("Enabling GnuPG 2.2.21 bug 4991 test workaround.") + assert passphrase_cb_called == 1 or passphrase_cb_called == 2, \ + "Callback called {} times".format(passphrase_cb_called) + else: + assert passphrase_cb_called == 1, \ + "Callback called {} times".format(passphrase_cb_called) support.print_data(cipher) c = gpg.Context() -- cgit v1.2.3