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.
This commit is contained in:
Christian Kellner 2020-08-12 13:05:21 +02:00
parent 41cf4bf2d3
commit 28cea491bd
2 changed files with 48 additions and 28 deletions

View file

@ -2,15 +2,11 @@
# Test for API infrastructure # Test for API infrastructure
# #
import pathlib
import os import os
import sys
import tempfile import tempfile
import unittest import unittest
import osbuild import osbuild
from osbuild.buildroot import BuildRoot
from osbuild.monitor import NullMonitor
from osbuild.util import jsoncomm from osbuild.util import jsoncomm
@ -69,27 +65,3 @@ class TestAPI(unittest.TestCase):
with self.assertRaises(AssertionError): with self.assertRaises(AssertionError):
with api: with api:
pass 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)

View file

@ -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)