from frozendict import frozendict from personal_data.data import DeduplicateMode from personal_data.main import deduplicate_dicts LIST = [ frozendict({'a': 1, 'b': 2, 't': 300}), frozendict({'a': 1, 'b': 2, 't': 301}), frozendict({'a': 1, 'b': 2, 't': 302}), frozendict({'a': 1, 'b': 2, 't': 303}), ] def test_no_deduplicate(): ls, fields = deduplicate_dicts(LIST, DeduplicateMode.NONE, []) assert fields == ['a', 'b', 't'] assert ls == LIST def test_only_latest_no_fields(): ls, fields = deduplicate_dicts(LIST, DeduplicateMode.ONLY_LATEST, []) assert fields == ['a', 'b', 't'] assert ls == LIST def test_only_latest(): ls, fields = deduplicate_dicts(LIST, DeduplicateMode.ONLY_LATEST, ['t']) assert fields == ['a', 'b', 't'] assert ls == [frozendict({'a': 1, 'b': 2, 't': 300})]