diff --git a/test/conftest.py b/test/conftest.py index 075f8d6..b8966e8 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -32,6 +32,7 @@ def build_fake_container_fixture(tmpdir_factory, build_container): # do this images may fail with "broken" pipe errors cat - >/dev/null + echo "osbuild-stdout-output" mkdir -p /output/qcow2 echo "fake-disk.qcow2" > /output/qcow2/disk.qcow2 diff --git a/test/test_container.py b/test/test_container.py index 28b6a57..dc7c7d0 100644 --- a/test/test_container.py +++ b/test/test_container.py @@ -72,3 +72,25 @@ def test_container_build_generates_manifest(tmp_path, build_container): fn = f"centos-9-minimal-raw-{arch}/centos-9-minimal-raw-{arch}.osbuild-manifest.json" image_manifest_path = output_dir / fn assert image_manifest_path.exists() + + +@pytest.mark.parametrize("progress,needle,forbidden", [ + ("verbose", "osbuild-stdout-output", "[|]"), + ("term", "[|]", "osbuild-stdout-output"), +]) +@pytest.mark.skipif(os.getuid() != 0, reason="needs root") +def test_container_with_progress(tmp_path, build_fake_container, progress, needle, forbidden): + output_dir = tmp_path / "output" + output_dir.mkdir() + output = subprocess.check_output([ + "podman", "run", "-t", + "--privileged", + "-v", f"{output_dir}:/output", + build_fake_container, + "build", + "minimal-raw", + "--distro", "centos-9", + f"--progress={progress}", + ], text=True) + assert needle in output + assert forbidden not in output