File: test_merger.py

package info (click to toggle)
python-deepmerge 0.0.5-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 188 kB
  • sloc: python: 370; makefile: 195
file content (34 lines) | stat: -rw-r--r-- 728 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import pytest
from deepmerge import Merger


@pytest.fixture
def custom_merger():
    def merge_sets(merger, path, base, nxt):
        base |= nxt
        return base

    def merge_list(merger, path, base, nxt):
        if len(nxt) > 0:
            base.append(nxt[-1])
            return base

    return Merger(
        [
            (list, merge_list),
            (dict, "merge"),
            (set, merge_sets)
        ],
        [],
        [],
    )


def test_custom_merger_applied(custom_merger):
    result = custom_merger.merge({"foo"}, {"bar"})
    assert result == {"foo", "bar"}


def test_custom_merger_list(custom_merger):
    result = custom_merger.merge([1, 2, 3], [4, 5, 6])
    assert result == [1, 2, 3, 6]