]> code.ossystems Code Review - openembedded-core.git/commitdiff
selftest/cases/signing: ignore removal errors when cleaning temporary gpg directory
authorLeonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Tue, 26 Sep 2017 19:36:03 +0000 (12:36 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 10 Oct 2017 16:26:58 +0000 (17:26 +0100)
The high-level method tempfile.TemporaryDirectory give us no way to
ignore erros on removal thus use tempfile.mkdtemp instead. Ignoring possible issues
on removal is neccesary because it contains gpg sockets that are automatically removed
by the system once the process terminates, otherwise the following log is observed:

  ..
  ..
  File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
    os.unlink(name, dir_fd=topfd)
  FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.browser'

[YOCTO #11821]

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/lib/oeqa/selftest/signing.py

index 606bfd3e99ebe07aa422e7155e267bbedd15d4b7..3b5c2da0e0f7dc3d5cf8a974513b21b1e68751a3 100644 (file)
@@ -21,14 +21,17 @@ class Signing(oeSelfTest):
         if not shutil.which("gpg"):
             raise AssertionError("This test needs GnuPG")
 
-        cls.gpg_home_dir = tempfile.TemporaryDirectory(prefix="oeqa-signing-")
-        cls.gpg_dir = cls.gpg_home_dir.name
+        cls.gpg_dir = tempfile.mkdtemp(prefix="oeqa-signing-")
 
         cls.pub_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.pub")
         cls.secret_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.secret")
 
         runCmd('gpg --homedir %s --import %s %s' % (cls.gpg_dir, cls.pub_key_path, cls.secret_key_path))
 
+    @classmethod
+    def tearDownClass(cls):
+        shutil.rmtree(cls.gpg_dir, ignore_errors=True)
+
     @testcase(1362)
     def test_signing_packages(self):
         """