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:
parent
27a65caed3
commit
a065df5654
1 changed files with 109 additions and 0 deletions
109
test/mod/test_fmt_v2.py
Normal file
109
test/mod/test_fmt_v2.py
Normal 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")
|
||||
Loading…
Add table
Add a link
Reference in a new issue