From 82f22046bd89d14a88b14e3de37a881e6ea47047 Mon Sep 17 00:00:00 2001 From: Bartok9 Date: Wed, 22 Jul 2026 19:05:05 -0400 Subject: [PATCH] test(utils): cover dicts.remove_none_values Lock in filtering of None values while preserving other falsey entries and confirming the helper does not mutate its input. Signed-off-by: Bartok9 --- tests/_utils/test_dicts.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/_utils/test_dicts.py diff --git a/tests/_utils/test_dicts.py b/tests/_utils/test_dicts.py new file mode 100644 index 00000000000..dc5ebd78aca --- /dev/null +++ b/tests/_utils/test_dicts.py @@ -0,0 +1,30 @@ +# Copyright 2026 Marimo. All rights reserved. +from __future__ import annotations + +from marimo._utils.dicts import remove_none_values + + +def test_remove_none_values_drops_nones() -> None: + assert remove_none_values({"a": 1, "b": None, "c": "x"}) == { + "a": 1, + "c": "x", + } + + +def test_remove_none_values_keeps_falsey_non_none() -> None: + assert remove_none_values({"z": 0, "f": False, "s": "", "n": None}) == { + "z": 0, + "f": False, + "s": "", + } + + +def test_remove_none_values_empty() -> None: + assert remove_none_values({}) == {} + + +def test_remove_none_values_does_not_mutate_input() -> None: + original = {"a": None, "b": 2} + result = remove_none_values(original) + assert result == {"b": 2} + assert original == {"a": None, "b": 2}