From 6b4bb850a77feade79d839d9ea075e29ca210ae9 Mon Sep 17 00:00:00 2001 From: Simon de Vlieger Date: Thu, 14 Mar 2024 14:47:54 +0100 Subject: [PATCH] meta: ensure caps always a set When loaded directly from JSON the caps are a list while they're expected to be a set. --- osbuild/meta.py | 2 +- test/mod/test_meta.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/osbuild/meta.py b/osbuild/meta.py index e8aaf52b..7605d454 100644 --- a/osbuild/meta.py +++ b/osbuild/meta.py @@ -514,7 +514,7 @@ class ModuleInfo: }, "desc": meta.get("summary", "no summary provided"), "info": long_description, - "caps": meta.get("capabilities", set()), + "caps": set(meta.get("capabilities", [])), } return cls(klass, name, path, info) diff --git a/test/mod/test_meta.py b/test/mod/test_meta.py index 8a26e58a..19935901 100644 --- a/test/mod/test_meta.py +++ b/test/mod/test_meta.py @@ -247,7 +247,7 @@ def test_load_from_json(tmp_path): modinfo = osbuild.meta.ModuleInfo.load(tmp_path, "Stage", "org.osbuild.noop") assert modinfo.desc == "some json summary" assert modinfo.info == "long text\nwith newlines" - assert modinfo.caps == ["CAP_MAC_ADMIN", "CAP_BIG_MAC"] + assert modinfo.caps == set(["CAP_MAC_ADMIN", "CAP_BIG_MAC"]) assert modinfo.opts == { "1": {"properties": {"json_filename": {"type": "string"}}}, "2": {}, @@ -304,7 +304,7 @@ def test_load_from_json_prefered(tmp_path): modinfo = osbuild.meta.ModuleInfo.load(tmp_path, "Stage", "org.osbuild.noop") assert modinfo.desc == "some json summary" assert modinfo.info == "long text\nwith newlines" - assert modinfo.caps == ["CAP_MAC_ADMIN", "CAP_BIG_MAC"] + assert modinfo.caps == set(["CAP_MAC_ADMIN", "CAP_BIG_MAC"]) assert modinfo.opts == { "1": {}, "2": {"json_devices": {"type": "object"}},