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 <justus@g10code.com>
This commit is contained in:
parent
a4201035fd
commit
ac48499538
@ -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):
|
||||
# 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)
|
||||
shutil.rmtree(self.path, ignore_errors=True)
|
||||
|
||||
@contextlib.contextmanager
|
||||
def EphemeralContext():
|
||||
|
Loading…
Reference in New Issue
Block a user