debian-forge/test/run/test_noop.py
Christian Kellner 7ae4a7e785 test: use and require explicit exports
Require all the tests that compile a manifest to either specify
checkpoints or exports. Convert all the tests that were relying
on implicit exports with v1 manifests to use explicit exports.
2021-12-02 12:51:30 +00:00

72 lines
1.8 KiB
Python

#
# Runtime Tests for No-op Pipelines
#
import json
import tempfile
import pytest
from .. import test
@pytest.fixture(name="jsondata", scope="module")
def jsondata_fixture():
return json.dumps({
"version": "2",
"pipelines": [
{
"name": "noop",
"stages": [
{
"type": "org.osbuild.noop",
"options": {"zero": 0},
"inputs": {
"tree": {
"type": "org.osbuild.noop",
"origin": "org.osbuild.pipeline",
"references": {
"foo": {}
}
}
}
}
]
}
]
})
@pytest.fixture(name="tmpdir", scope="module")
def tmpdir_fixture():
with tempfile.TemporaryDirectory() as tmp:
yield tmp
@pytest.fixture(name="osb", scope="module")
def osbuild_fixture():
with test.OSBuild() as osb:
yield osb
#
# Run a noop Pipeline. Run twice to verify the cache does not affect
# the operation (we do not have checkpoints, nor any stages that could
# be checkpointed).
#
# Then run the entire thing again, to verify our own `osbuild` executor
# tears things down properly and allows to be executed multiple times.
#
def test_noop(osb):
osb.compile("{}", checkpoints=[])
osb.compile("{}", checkpoints=[])
def test_noop2(osb):
osb.compile("{}", checkpoints=[])
osb.compile("{}", checkpoints=[])
@pytest.mark.skipif(not test.TestBase.can_bind_mount(), reason="root-only")
def test_noop_v2(osb, tmpdir, jsondata):
osb.compile(jsondata, output_dir=tmpdir, exports=["noop"])