File: 0011-tests-Skip-gpg-export-secret-keys-if-gpg-is-gpg-sq.patch

package info (click to toggle)
rnp 0.18.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,656 kB
  • sloc: cpp: 74,613; python: 5,272; ansic: 5,035; sh: 1,661; makefile: 25
file content (48 lines) | stat: -rw-r--r-- 2,345 bytes parent folder | download
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):
         '''