diff options
Diffstat (limited to 'dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch')
-rw-r--r-- | dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch b/dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch new file mode 100644 index 000000000000..b5318ede0d87 --- /dev/null +++ b/dev-python/python-gnupg/files/python-gnupg-0.4.3-use_seperate_keys_directory.patch @@ -0,0 +1,58 @@ +# HG changeset patch +# User Michał Górny <mgorny@gentoo.org> +# Date 1533916222 -7200 +# Node ID 2c8991b1c9080adc61e63d00fe9415b88f3e6208 +# Parent 9cb2a856677237b528ead6fff68de7d488dbfeec +Use private temporary GPG-homes for tests to fix race conditions. + +Create unique temporary directories to use as GPG home in each test +instead of reusing a single hardcoded 'keys' directory. This is +necessary to fix race conditions between directory operations +and gpg-agent in GnuPG 2.0+. + +GnuPG 2.0 started using gpg-agent for all operations. It is +automatically spawned when GPG is called to do something, and it stops +automatically when its homedir is removed (e.g. as part of rmtree() +call). However, with the homedir being instantly recreated and next +test being run, it seems that gpg-agent sometimes failed to stop fully +before being started again and causes one of the tests to fail with +gpg-agent connection errors. + +With this change, I am finally able to successfully run all tests +in a single batch. + +diff --git a/test_gnupg.py b/test_gnupg.py +--- a/test_gnupg.py ++++ b/test_gnupg.py +@@ -173,11 +173,7 @@ + + class GPGTestCase(unittest.TestCase): + def setUp(self): +- hd = os.path.join(os.getcwd(), 'keys') +- if os.path.exists(hd): +- self.assertTrue(os.path.isdir(hd), +- "Not a directory: %s" % hd) +- shutil.rmtree(hd, ignore_errors=True) ++ hd = tempfile.mkdtemp() + prepare_homedir(hd) + self.homedir = hd + self.gpg = gpg = gnupg.GPG(gnupghome=hd, gpgbinary=GPGBINARY) +@@ -193,6 +189,9 @@ + data_file.write(os.urandom(5120 * 1024)) + data_file.close() + ++ def tearDown(self): ++ shutil.rmtree(self.homedir, ignore_errors=True) ++ + def test_environment(self): + "Test the environment by ensuring that setup worked" + hd = self.homedir +@@ -373,7 +372,7 @@ + # and the keyring file name has changed. + pkn = 'pubring.kbx' + skn = None +- hd = os.path.join(os.getcwd(), 'keys') ++ hd = self.homedir + if os.name == 'posix': + pkn = os.path.join(hd, pkn) + if skn: |