summaryrefslogtreecommitdiff
path: root/tests/testutil.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testutil.py')
-rw-r--r--tests/testutil.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/testutil.py b/tests/testutil.py
index cfc9879..3f7ac5f 100644
--- a/tests/testutil.py
+++ b/tests/testutil.py
@@ -23,6 +23,8 @@ else:
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from urlparse import urlparse, parse_qs
+import gemato.openpgp
+
class LoggingTestCase(unittest.TestCase):
def setUp(self):
@@ -123,3 +125,32 @@ class HKPServerTestCase(unittest.TestCase):
self.server.shutdown()
self.server.server_close()
self.server_thread.join()
+
+
+class MockedWKDOpenPGPEnvironment(gemato.openpgp.OpenPGPEnvironment):
+ """
+ A subclass of OpenPGPEnvironment that partially mocks spawning
+ OpenPGP in order to inject keys without having to implement
+ full HTTPS server with domain satisfactory to GnuPG.
+ """
+
+ def __init__(self, keys={}):
+ self.keys = keys
+ super(MockedWKDOpenPGPEnvironment, self).__init__()
+
+ def clone(self):
+ return MockedWKDOpenPGPEnvironment(self.keys)
+
+ def _spawn_gpg(self, args, stdin):
+ if '--locate-keys' in args:
+ args.remove('--locate-keys')
+ assert len(args) == 1
+ if args[0] in self.keys:
+ ret, sout, serr = super(MockedWKDOpenPGPEnvironment,
+ self)._spawn_gpg(['--import'], self.keys[args[0]])
+ else:
+ ret = 2
+ return (ret, '', '')
+
+ return super(MockedWKDOpenPGPEnvironment, self)._spawn_gpg(
+ args, stdin)