Skip to content

Commit 385852c

Browse files
committed
fix empty state in diff
resolves simonw#18 (amended to force workflow run)
1 parent 26903b7 commit 385852c

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

csv_diff/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ def compare(previous, current, show_unchanged=False):
6161
"columns_removed": [],
6262
}
6363
# Have the columns changed?
64-
previous_columns = set(next(iter(previous.values())).keys())
65-
current_columns = set(next(iter(current.values())).keys())
64+
previous_columns = set(next(iter(previous.values())).keys()) if previous else set()
65+
current_columns = set(next(iter(current.values())).keys()) if current else set()
6666
ignore_columns = None
6767
if previous_columns != current_columns:
6868
result["columns_added"] = [

tests/test_csv_diff.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from csv_diff import load_csv, compare
1+
from csv_diff import load_csv, compare, load_json
22
import io
33

44
ONE = """id,name,age
@@ -115,3 +115,16 @@ def test_tsv():
115115
"columns_added": [],
116116
"columns_removed": [],
117117
} == diff
118+
119+
120+
def test_empty():
121+
diff = compare(
122+
load_json(io.StringIO("[]"), key="id"), load_csv(io.StringIO(TWO_TSV), key="id")
123+
)
124+
assert {
125+
"added": [{"age": "5", "id": "1", "name": "Cleo"}, {"age": "2", "id": "2", "name": "Pancakes"}],
126+
"removed": [],
127+
"changed": [],
128+
"columns_added": ["age", "id", "name"],
129+
"columns_removed": [],
130+
} == diff

0 commit comments

Comments
 (0)