From 28cea491bddffb1770675d7e335b71567e65e651 Mon Sep 17 00:00:00 2001 From: Christian Kellner Date: Wed, 12 Aug 2020 13:05:21 +0200 Subject: [PATCH] test: move api buildroot test to test_buildroot.py Create a new test suite for BuildRoot related test and move the the combined api and buildroot check there. --- test/mod/test_api.py | 28 ---------------------- test/mod/test_buildroot.py | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 28 deletions(-) create mode 100644 test/mod/test_buildroot.py diff --git a/test/mod/test_api.py b/test/mod/test_api.py index 004a5f62..df1bc8c4 100644 --- a/test/mod/test_api.py +++ b/test/mod/test_api.py @@ -2,15 +2,11 @@ # Test for API infrastructure # -import pathlib import os -import sys import tempfile import unittest import osbuild -from osbuild.buildroot import BuildRoot -from osbuild.monitor import NullMonitor from osbuild.util import jsoncomm @@ -69,27 +65,3 @@ class TestAPI(unittest.TestCase): with self.assertRaises(AssertionError): with api: pass - - def test_buildroot(self): - # Check API and BuildRoot integration: the runner will call - # api.setup_stdio and thus check that connecting to the api - # works correctly - runner = "org.osbuild.linux" - libdir = os.path.abspath(os.curdir) - var = pathlib.Path(self.tmp.name, "var") - var.mkdir() - - monitor = NullMonitor(sys.stderr.fileno()) - with BuildRoot("/", runner, libdir=libdir, var=var) as root: - api = osbuild.api.API({}, monitor) - root.register_api(api) - - r = root.run(["/usr/bin/true"]) - self.assertEqual(r.returncode, 0) - - # Test we can use `.run` multiple times - r = root.run(["/usr/bin/true"]) - self.assertEqual(r.returncode, 0) - - r = root.run(["/usr/bin/false"]) - self.assertNotEqual(r.returncode, 0) diff --git a/test/mod/test_buildroot.py b/test/mod/test_buildroot.py new file mode 100644 index 00000000..80a9bde2 --- /dev/null +++ b/test/mod/test_buildroot.py @@ -0,0 +1,48 @@ +# +# Test for the build root +# + +import pathlib +import os +import sys +import tempfile +import unittest + +import osbuild +from osbuild.buildroot import BuildRoot +from osbuild.monitor import NullMonitor +from .. import test + + +@unittest.skipUnless(test.TestBase.can_bind_mount(), "root-only") +class TestBuildRoot(test.TestBase): + """Check BuildRoot""" + def setUp(self): + self.tmp = tempfile.TemporaryDirectory() + + def tearDown(self): + self.tmp.cleanup() + + def test_basic(self): + # This also checks the API and BuildRoot integration: + # the runner will call api.setup_stdio and thus check + # that connecting to the api works correctly + runner = "org.osbuild.linux" + libdir = os.path.abspath(os.curdir) + var = pathlib.Path(self.tmp.name, "var") + var.mkdir() + + monitor = NullMonitor(sys.stderr.fileno()) + with BuildRoot("/", runner, libdir=libdir, var=var) as root: + api = osbuild.api.API({}, monitor) + root.register_api(api) + + r = root.run(["/usr/bin/true"]) + self.assertEqual(r.returncode, 0) + + # Test we can use `.run` multiple times + r = root.run(["/usr/bin/true"]) + self.assertEqual(r.returncode, 0) + + r = root.run(["/usr/bin/false"]) + self.assertNotEqual(r.returncode, 0)