diff --git a/tests/testutils.py b/tests/testutils.py index 6fe711e7b8a043fb247abffa581804c896e06f20..e85584b8f051123a42bb0dbce730e30d123874f4 100644 --- a/tests/testutils.py +++ b/tests/testutils.py @@ -80,33 +80,56 @@ class BaseTest(unittest.TestCase): Base class with some useful test setup. """ - def setUp(self) -> None: - self.G_TEST_SRCDIR = os.getenv( + G_TEST_BUILDDIR = '' + G_TEST_SRCDIR = '' + artifacts = '' + tmpdir = None # type: tempfile.TemporaryDirectory + top_builddir = '' + top_srcdir = '' + + @classmethod + def setUpClass(cls) -> None: + cls.G_TEST_SRCDIR = os.getenv( 'G_TEST_SRCDIR', os.path.abspath(os.path.dirname(__file__)), ) - self.top_srcdir = os.path.dirname(self.G_TEST_SRCDIR) - self.G_TEST_BUILDDIR = os.getenv( + cls.top_srcdir = os.path.dirname(cls.G_TEST_SRCDIR) + cls.G_TEST_BUILDDIR = os.getenv( 'G_TEST_BUILDDIR', os.path.abspath( os.path.join(os.path.dirname(__file__), '..', '_build'), ), ) - self.top_builddir = os.path.dirname(self.G_TEST_BUILDDIR) + cls.top_builddir = os.path.dirname(cls.G_TEST_BUILDDIR) - self.tmpdir = tempfile.TemporaryDirectory() - self.addCleanup(self.tmpdir.cleanup) + cls.tmpdir = tempfile.TemporaryDirectory() artifacts = os.getenv('AUTOPKGTEST_ARTIFACTS') if artifacts is not None: - self.artifacts = os.path.abspath(artifacts) + cls.artifacts = os.path.abspath(artifacts) else: - self.artifacts = self.tmpdir.name + cls.artifacts = cls.tmpdir.name + + def setUp(self) -> None: + cls = self.__class__ + self.G_TEST_BUILDDIR = cls.G_TEST_BUILDDIR + self.G_TEST_SRCDIR = cls.G_TEST_SRCDIR + self.artifacts = cls.artifacts + self.top_builddir = cls.top_builddir + self.top_srcdir = cls.top_srcdir + + # Class and each test get separate temp directories + self.tmpdir = tempfile.TemporaryDirectory() + self.addCleanup(self.tmpdir.cleanup) def tearDown(self) -> None: pass + @classmethod + def tearDownClass(cls) -> None: + cls.tmpdir.cleanup() + def test_main(): logging.basicConfig(level=logging.DEBUG)