commit:     fc6cace9fddfa3a2c5567e35156b2ee7ef39dce1
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  9 21:03:55 2024 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Feb  9 21:08:32 2024 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=fc6cace9

AuxdbTestCase: Add missing playground cleanup

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/tests/dbapi/test_auxdb.py | 67 ++++++++++++++++++++---------------
 1 file changed, 38 insertions(+), 29 deletions(-)

diff --git a/lib/portage/tests/dbapi/test_auxdb.py 
b/lib/portage/tests/dbapi/test_auxdb.py
index c11eed73e8..0de0123a5f 100644
--- a/lib/portage/tests/dbapi/test_auxdb.py
+++ b/lib/portage/tests/dbapi/test_auxdb.py
@@ -1,4 +1,4 @@
-# Copyright 2020-2023 Gentoo Authors
+# Copyright 2020-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 import functools
@@ -64,41 +64,50 @@ class AuxdbTestCase(TestCase):
             user_config={"modules": (f"portdbapi.auxdbmodule = 
{auxdbmodule}",)},
         )
 
-        portdb = playground.trees[playground.eroot]["porttree"].dbapi
-        metadata_keys = ["DEFINED_PHASES", "DEPEND", "EAPI", "INHERITED"]
-
-        test_func = functools.partial(
-            self._run_test_mod_async, ebuilds, metadata_keys, portdb
-        )
-
-        results = test_func()
-
-        self._compare_results(
-            ebuilds, eclass_defined_phases, eclass_depend, ebuild_inherited, 
results
-        )
+        try:
+            portdb = playground.trees[playground.eroot]["porttree"].dbapi
+            metadata_keys = ["DEFINED_PHASES", "DEPEND", "EAPI", "INHERITED"]
 
-        loop = asyncio._wrap_loop()
-        picklable_or_fork = picklable or multiprocessing.get_start_method == 
"fork"
-        if picklable_or_fork:
-            results = loop.run_until_complete(
-                loop.run_in_executor(ForkExecutor(), test_func)
+            test_func = functools.partial(
+                self._run_test_mod_async, ebuilds, metadata_keys, portdb
             )
 
+            results = test_func()
+
             self._compare_results(
                 ebuilds, eclass_defined_phases, eclass_depend, 
ebuild_inherited, results
             )
 
-        auxdb = portdb.auxdb[portdb.getRepositoryPath("test_repo")]
-        cpv = next(iter(ebuilds))
-
-        modify_auxdb = functools.partial(self._modify_auxdb, auxdb, cpv)
-
-        if multiproc and picklable_or_fork:
-            loop.run_until_complete(loop.run_in_executor(ForkExecutor(), 
modify_auxdb))
-        else:
-            modify_auxdb()
-
-        self.assertEqual(auxdb[cpv]["RESTRICT"], "test")
+            loop = asyncio._wrap_loop()
+            picklable_or_fork = picklable or multiprocessing.get_start_method 
== "fork"
+            if picklable_or_fork:
+                results = loop.run_until_complete(
+                    loop.run_in_executor(ForkExecutor(), test_func)
+                )
+
+                self._compare_results(
+                    ebuilds,
+                    eclass_defined_phases,
+                    eclass_depend,
+                    ebuild_inherited,
+                    results,
+                )
+
+            auxdb = portdb.auxdb[portdb.getRepositoryPath("test_repo")]
+            cpv = next(iter(ebuilds))
+
+            modify_auxdb = functools.partial(self._modify_auxdb, auxdb, cpv)
+
+            if multiproc and picklable_or_fork:
+                loop.run_until_complete(
+                    loop.run_in_executor(ForkExecutor(), modify_auxdb)
+                )
+            else:
+                modify_auxdb()
+
+            self.assertEqual(auxdb[cpv]["RESTRICT"], "test")
+        finally:
+            playground.cleanup()
 
     def _compare_results(
         self, ebuilds, eclass_defined_phases, eclass_depend, ebuild_inherited, 
results

Reply via email to