Skip to content

Commit

Permalink
stages(kickstart): add test for schema validation
Browse files Browse the repository at this point in the history
  • Loading branch information
mvo5 committed Nov 7, 2023
1 parent 78238ba commit b34598b
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions stages/test/test_kickstart.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import pytest

import osbuild.meta
from osbuild.testutil.imports import import_module_from_path


Expand All @@ -30,3 +31,32 @@ def test_kickstart(tmp_path, test_input, expected):
with open(os.path.join(tmp_path, ks_path), encoding="utf-8") as fp:
ks_content = fp.read()
assert ks_content == expected + "\n"


@pytest.mark.parametrize("test_user,expected_err", [
("user;invalid", "'user;invalid' does not match any of the regexes:"),
])
def test_schema_validation_regression_user(test_user, expected_err):
name = "org.osbuild.kickstart"
root = os.path.join(os.path.dirname(__file__), "../..")
mod_info = osbuild.meta.ModuleInfo.load(root, "Stage", name)
schema = osbuild.meta.Schema(mod_info.get_schema(), name)

test_input = {
"name": "org.osbuild.kickstart",
"options": {
"path": "some-path",
"users": {
test_user: {
"uid": 1000,
}
}
}
}
res = schema.validate(test_input)

assert res.valid == False
assert len(res.errors) == 1
err_msgs = [e.as_dict()["message"] for e in res.errors]
assert expected_err in err_msgs[0]

0 comments on commit b34598b

Please sign in to comment.