aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/tests/support.py
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2017-03-14 10:08:08 +0000
committerJustus Winter <[email protected]>2017-03-14 11:20:24 +0000
commitac4849953860547b06a167ca9612c4de369d02b6 (patch)
treeecbc4ba246da2cf7b0b1b4795995ad7e61feda77 /lang/python/tests/support.py
parentpython: Improve build system integration. (diff)
downloadgpgme-ac4849953860547b06a167ca9612c4de369d02b6.tar.gz
gpgme-ac4849953860547b06a167ca9612c4de369d02b6.zip
python: Make tests more robust.
* lang/python/tests/support.py (TemporaryDirectory): Always use our own version even if 'tempfile.TemporaryDirectory' is provided, because we need to use 'shutil.rmtree(..., ignore_errors=True)' to avoid it tripping over gpg-agent deleting its own sockets. Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'lang/python/tests/support.py')
-rw-r--r--lang/python/tests/support.py21
1 files changed, 10 insertions, 11 deletions
diff --git a/lang/python/tests/support.py b/lang/python/tests/support.py
index a381270d..69aa7a40 100644
--- a/lang/python/tests/support.py
+++ b/lang/python/tests/support.py
@@ -78,17 +78,16 @@ def mark_key_trusted(ctx, key):
ctx.op_edit(key, Editor().edit, sink, sink)
-# Python2/3 compatibility
-if hasattr(tempfile, "TemporaryDirectory"):
- # Python3.2 and up
- TemporaryDirectory = tempfile.TemporaryDirectory
-else:
- class TemporaryDirectory(object):
- def __enter__(self):
- self.path = tempfile.mkdtemp()
- return self.path
- def __exit__(self, *args):
- shutil.rmtree(self.path)
+# Python3.2 and up has tempfile.TemporaryDirectory, but we cannot use
+# that, because there shutil.rmtree is used without
+# ignore_errors=True, and that races against gpg-agent deleting its
+# sockets.
+class TemporaryDirectory(object):
+ def __enter__(self):
+ self.path = tempfile.mkdtemp()
+ return self.path
+ def __exit__(self, *args):
+ shutil.rmtree(self.path, ignore_errors=True)
@contextlib.contextmanager
def EphemeralContext():