from src.utils.collections import ( zip_rows_to_dicts, dedupe_list_preserve_order, ) class RowProxy: def __init__(self, data): self._data = data def keys(self): return list(self._data.keys()) def __getitem__(self, k): return self._data[k] def test_zip_rows_to_dicts(): rows = [RowProxy({"a": 1, "b": 2}), RowProxy({"a": 3, "b": 4})] out = zip_rows_to_dicts(rows) assert out == [{"a": 1, "b": 2}, {"a": 3, "b": 4}] def test_dedupe_list_preserve_order(): items = ["x", "y", "x", "z", "y"] out = dedupe_list_preserve_order(items) assert out == ["x", "y", "z"]