test/fmt_v2: add simple v2 format test

Check that module info and basic loading is working for format
version 2.
This commit is contained in:
Christian Kellner 2021-02-11 22:46:10 +00:00
parent 27a65caed3
commit a065df5654

109
test/mod/test_fmt_v2.py Normal file
View file

@ -0,0 +1,109 @@
#
# Tests specific for version 2 of the format
#
import os
import unittest
import osbuild
import osbuild.meta
BASIC_PIPELINE = {
"version": "2",
"sources": {
"org.osbuild.files": {
"items": {
"sha256:6eeebf21f245bf0d6f58962dc49b6dfb51f55acb6a595c6b9cbe9628806b80a4":
"https://internet/curl-7.69.1-1.fc32.x86_64.rpm",
}
},
"org.osbuild.ostree": {
"items": {
"439911411ce7868a7b058c2a660e421991eb2df10e2bdce1fa559bd4390105d1": {
"remote": {
"url": "file:///repo",
"gpgkeys": ["data"]
}
}
}
}
},
"pipelines": [
{
"name": "build",
"runner": "org.osbuild.linux",
"stages": [
{
"type": "org.osbuild.noop",
"options": {"zero": 0}
}
]
},
{
"name": "tree",
"build": "name:build",
"stages": [
{
"type": "org.osbuild.noop",
"options": {"one": 1}
}
]
},
{
"name": "assembler",
"build": "name:build",
"stages": [
{
"type": "org.osbuild.noop",
"options": {"one": 3}
}
]
}
]
}
class TestFormatV1(unittest.TestCase):
def setUp(self):
self.index = osbuild.meta.Index(os.curdir)
def test_load(self):
desc = BASIC_PIPELINE
info = self.index.detect_format_info(desc)
assert info, "Failed to detect format"
fmt = info.module
self.assertEqual(fmt.VERSION, "2")
manifest = fmt.load(desc, self.index)
self.assertIsNotNone(manifest)
self.assertTrue(manifest.pipelines)
self.assertTrue(len(manifest.pipelines) == 3)
build = manifest["build"]
self.assertIsNotNone(build)
tree = manifest["tree"]
self.assertIsNotNone(tree)
self.assertIsNotNone(tree.build)
self.assertEqual(tree.build, build.id)
self.assertEqual(tree.runner, "org.osbuild.linux")
assembler = manifest["assembler"]
self.assertIsNotNone(assembler)
self.assertIsNotNone(assembler.build)
self.assertEqual(assembler.build, build.id)
self.assertEqual(assembler.runner, "org.osbuild.linux")
def test_format_info(self):
index = self.index
lst = index.list_formats()
self.assertIn("osbuild.formats.v2", lst)
# the basic test manifest
info = index.detect_format_info(BASIC_PIPELINE)
self.assertEqual(info.version, "2")