Extend the current ostree container test case to use the new bootiso manifest to build a bootable iso. This is done in the existing container test case in order to share the build root and ostree commit results and speed up testing. In the future, the test infrastructure should be extended so that the cache can be optionally shared between test cases.
42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
#
|
|
# Runtime / Integration Tests for ostree pipelines
|
|
#
|
|
|
|
import os
|
|
import tempfile
|
|
import unittest
|
|
|
|
from .. import test
|
|
|
|
|
|
@unittest.skipUnless(test.TestBase.have_test_data(), "no test-data access")
|
|
@unittest.skipUnless(test.TestBase.can_bind_mount(), "root-only")
|
|
class TestOSTree(test.TestBase):
|
|
def setUp(self):
|
|
self.osbuild = test.OSBuild(self)
|
|
|
|
def test_ostree(self):
|
|
with self.osbuild as osb:
|
|
with tempfile.TemporaryDirectory(dir="/var/tmp") as temp_dir:
|
|
|
|
# Build a container
|
|
manifest = os.path.join(self.locate_test_data(),
|
|
"manifests/fedora-ostree-container.json")
|
|
osb.compile_file(manifest,
|
|
output_dir=temp_dir,
|
|
checkpoints=["build", "ostree-tree", "ostree-commit"],
|
|
exports=["container"])
|
|
|
|
oci_archive = os.path.join(temp_dir, "container", "fedora-container.tar")
|
|
self.assertTrue(os.path.exists(oci_archive))
|
|
|
|
# build a bootable ISO
|
|
manifest = os.path.join(self.locate_test_data(),
|
|
"manifests/fedora-ostree-bootiso.json")
|
|
osb.compile_file(manifest,
|
|
output_dir=temp_dir,
|
|
checkpoints=["build", "ostree-tree", "ostree-commit"],
|
|
exports=["bootiso"])
|
|
|
|
bootiso = os.path.join(temp_dir, "bootiso", "fedora-ostree-boot.iso")
|
|
self.assertTrue(os.path.exists(bootiso))
|