diff --git a/test/mod/test_api.py b/test/mod/test_api.py index eb175992..014c5c59 100644 --- a/test/mod/test_api.py +++ b/test/mod/test_api.py @@ -2,11 +2,15 @@ # 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 @@ -65,3 +69,27 @@ 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)