1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Fri, 10 Oct 2025 18:11:18 -0400
Subject: tests: Skip gpg --export-secret-keys if gpg is gpg-sq
The Sequoia Chameleon project doesn't handle --export-secret-keys at
the moment. If gpg can't do --export-secret-keys, that shouldn't make
the test suite itself fail.
---
src/tests/cli_tests.py | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/tests/cli_tests.py b/src/tests/cli_tests.py
index 7a4301c..e13b99a 100755
--- a/src/tests/cli_tests.py
+++ b/src/tests/cli_tests.py
@@ -1202,18 +1202,25 @@ class Keystore(unittest.TestCase):
with open(pubpath, 'w+') as f:
f.write(out)
# Exporting generated secret key
+ # Sequoia's "Chameleon" does not currently implement --export-secret-keys
+ # (https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/issues/141)
+ skip_chameleon_seckey_export = False
ret, out, err = run_proc(
GPG, ['--batch', '--homedir', GPGHOME, '--armor', '--export-secret-key', keyfp])
- self.assertEqual(ret, 0, 'gpg : secret key export failed')
- secpath = os.path.join(RNPDIR, keyfp + '-sec.asc')
- with open(secpath, 'w+') as f:
- f.write(out)
+ if ret == 2 and re.search(r'chameleon', err, re.MULTILINE | re.IGNORECASE):
+ skip_chameleon_seckey_export = True
+ else:
+ self.assertEqual(ret, 0, 'gpg : secret key export failed')
+ secpath = os.path.join(RNPDIR, keyfp + '-sec.asc')
+ with open(secpath, 'w+') as f:
+ f.write(out)
# Importing public key to rnp
ret, out, err = run_proc(RNPK, ['--homedir', RNPDIR, '--import-key', pubpath])
self.assertEqual(ret, 0, 'rnp : public key import failed')
- # Importing secret key to rnp
- ret, out, err = run_proc(RNPK, ['--homedir', RNPDIR, '--import-key', secpath])
- self.assertEqual(ret, 0, 'rnp : secret key import failed')
+ if not skip_chameleon_seckey_export:
+ # Importing secret key to rnp
+ ret, out, err = run_proc(RNPK, ['--homedir', RNPDIR, '--import-key', secpath])
+ self.assertEqual(ret, 0, 'rnp : secret key import failed')
def test_generate_with_rnp_import_to_gpg(self):
'''
|