Skip to content

Commit d223767

Browse files
committed
test: add unit tests for merge_dicts and reverse_dict
1 parent becd5d7 commit d223767

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

  • python_modules/dagster/dagster_tests/general_tests/utils_tests
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from dagster._utils.merger import merge_dicts, reverse_dict
2+
3+
4+
def test_merge_dicts_combines_keys():
5+
assert merge_dicts({"a": 1}, {"b": 2}) == {"a": 1, "b": 2}
6+
7+
8+
def test_merge_dicts_later_values_win():
9+
# When a key appears in more than one input, the last one takes priority.
10+
assert merge_dicts({"a": 1, "b": 2}, {"a": 3}) == {"a": 3, "b": 2}
11+
12+
13+
def test_merge_dicts_single_dict():
14+
assert merge_dicts({"a": 1}) == {"a": 1}
15+
16+
17+
def test_merge_dicts_ignores_empty_dicts():
18+
assert merge_dicts({"a": 1}, {}, {"c": 3}) == {"a": 1, "c": 3}
19+
20+
21+
def test_merge_dicts_does_not_mutate_inputs():
22+
first = {"a": 1}
23+
second = {"b": 2}
24+
merge_dicts(first, second)
25+
assert first == {"a": 1}
26+
assert second == {"b": 2}
27+
28+
29+
def test_reverse_dict_swaps_keys_and_values():
30+
assert reverse_dict({"a": 1, "b": 2}) == {1: "a", 2: "b"}
31+
32+
33+
def test_reverse_dict_empty():
34+
assert reverse_dict({}) == {}
35+
36+
37+
def test_reverse_dict_duplicate_values_keep_last_key():
38+
# Two keys map to the same value: the last key encountered wins.
39+
assert reverse_dict({"a": 1, "b": 1}) == {1: "b"}

0 commit comments

Comments
 (0)