test: add minimal test for container based building of images
This commit adds a smoke test that builds the ibcli container and runs a fedora-41 raw-minimal build to double check that the container based building actually works. Thanks to Ondrej for suggesting this.
This commit is contained in:
parent
fad02336b3
commit
e7d8a39fcf
6 changed files with 62 additions and 10 deletions
23
test/containerbuild.py
Normal file
23
test/containerbuild.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import os
|
||||
import platform
|
||||
import random
|
||||
import string
|
||||
import subprocess
|
||||
import textwrap
|
||||
from contextlib import contextmanager
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
# XXX: copied from bib
|
||||
@pytest.fixture(name="build_container", scope="session")
|
||||
def build_container_fixture():
|
||||
"""Build a container from the Containerfile and returns the name"""
|
||||
|
||||
container_tag = "image-builder-cli-test"
|
||||
subprocess.check_call([
|
||||
"podman", "build",
|
||||
"-f", "Containerfile",
|
||||
"-t", container_tag,
|
||||
])
|
||||
return container_tag
|
||||
27
test/test_container.py
Normal file
27
test/test_container.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import os
|
||||
import subprocess
|
||||
|
||||
import pytest
|
||||
|
||||
from containerbuild import build_container_fixture
|
||||
|
||||
|
||||
@pytest.mark.skipif(os.getuid() != 0, reason="needs root")
|
||||
def test_container_builds_image(tmp_path, build_container):
|
||||
output_dir = tmp_path / "output"
|
||||
output_dir.mkdir()
|
||||
subprocess.check_call([
|
||||
"podman", "run",
|
||||
"--privileged",
|
||||
"-v", f"{output_dir}:/output",
|
||||
build_container,
|
||||
"build",
|
||||
"minimal-raw",
|
||||
"--distro", "fedora-41"
|
||||
])
|
||||
arch = "x86_64"
|
||||
assert (output_dir / f"fedora-41-minimal-raw-{arch}/xz/disk.raw.xz").exists()
|
||||
# XXX: ensure no other leftover dirs
|
||||
dents = os.listdir(output_dir)
|
||||
assert len(dents) == 1, f"too many dentries in output dir: {dents}"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue