]> 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>
Thu, 7 Sep 2017 20:52:54 +0000 (15:52 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 12 Sep 2017 22:51:36 +0000 (23:51 +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: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/selftest/cases/signing.py

index edb5f653f201d1434cc2bc59787f972ea539bc60..b3d1a8292ecb2a937bb67243305c074d2bd5259f 100644 (file)
@@ -22,14 +22,17 @@ class Signing(OESelftestTestCase):
         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 --batch --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)
+
     @OETestID(1362)
     def test_signing_packages(self):
         """