diff --git a/lang/python/tests/support.py b/lang/python/tests/support.py index fabd8180..efccf315 100644 --- a/lang/python/tests/support.py +++ b/lang/python/tests/support.py @@ -35,6 +35,12 @@ def assert_gpg_version(version=(2, 1, 0)): c.engine_info.version, '.'.join(map(str, version)))) sys.exit(77) +def have_tofu_support(ctx, some_uid): + keys = list(ctx.keylist(some_uid, + mode=(gpg.constants.keylist.mode.LOCAL + |gpg.constants.keylist.mode.WITH_TOFU))) + return len(keys) > 0 + # Skip the Python tests for GnuPG < 2.1.12. Prior versions do not # understand the command line flags that we assume exist. C.f. issue # 3008. diff --git a/lang/python/tests/t-quick-key-manipulation.py b/lang/python/tests/t-quick-key-manipulation.py index 0f47006f..37e05b35 100755 --- a/lang/python/tests/t-quick-key-manipulation.py +++ b/lang/python/tests/t-quick-key-manipulation.py @@ -22,6 +22,7 @@ del absolute_import, print_function, unicode_literals import os import gpg +import sys import support support.assert_gpg_version((2, 1, 14)) @@ -97,6 +98,10 @@ with support.EphemeralContext() as ctx: with open(os.path.join(ctx.home_dir, "gpg.conf"), "a") as handle: handle.write("trust-model tofu+pgp\n") + if not support.have_tofu_support(ctx, bravo): + print("GnuPG does not support TOFU, skipping TOFU tests.") + sys.exit() + for name, policy in [(name, getattr(gpg.constants.tofu.policy, name)) for name in filter(lambda x: not x.startswith('__'), dir(gpg.constants.tofu.policy))]: