From 38b2f0ca0f6147b17e2151704e040bff72f75e46 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Fri, 23 May 2025 21:43:09 +0200 Subject: [PATCH] test(persist/util): add test for adding empty submodules --- pkgs/clan-cli/clan_lib/persist/util_test.py | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pkgs/clan-cli/clan_lib/persist/util_test.py b/pkgs/clan-cli/clan_lib/persist/util_test.py index 9ccec35cc..e642d9982 100644 --- a/pkgs/clan-cli/clan_lib/persist/util_test.py +++ b/pkgs/clan-cli/clan_lib/persist/util_test.py @@ -1,4 +1,5 @@ # Functions to test +from copy import deepcopy from typing import Any import pytest @@ -253,6 +254,31 @@ def test_update_simple() -> None: assert patchset == {"foo.bar": "new value"} +def test_update_add_empty_dict() -> None: + prios = { + "foo": { + "__prio": 100, # <- writeable: "foo" + "nix": {"__prio": 100}, # <- non writeable: "foo.nix" (defined in nix) + }, + } + + data_eval: dict = {"foo": {"nix": {}}} + + data_disk: dict = {} + + writeables = determine_writeability(prios, data_eval, data_disk) + + update = deepcopy(data_eval) + + apply_patch(update, "foo.mimi", {}) + + patchset, _ = calc_patches( + data_disk, update, all_values=data_eval, writeables=writeables + ) + + assert patchset == {"foo.mimi": {}} # this is what gets persisted + + def test_update_many() -> None: prios = { "foo": {