when running csv-diff on two csv files that contain only headers
and no data rows, the tool crashes with stopiteration instead of
returning "no differences" or an empty diff.
steps to reproduce:
echo "id,name,age" > a.csv
echo "id,name,age" > b.csv
csv-diff a.csv b.csv --key=id
expected behavior:
should exit cleanly with no output or "0 rows changed" message.
actual behavior:
crashes with stopiteration:
traceback (most recent call last):
file "/home/sohan/projects/csv-diff/venv/bin/csv-diff", line 8, in <module>
sys.exit(cli())
...
file "/home/sohan/projects/csv-diff/csv_diff/__init__.py", line 64, in compare
previous_columns = set(next(iter(previous.values())).keys())
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
stopiteration
root cause:
in csv_diff/__init__.py lines 64-65:
previous_columns = set(next(iter(previous.values())).keys())
current_columns = set(next(iter(current.values())).keys())
when both files have no data rows, load_csv returns {},
and next(iter({}.values())) raises stopiteration.
when running csv-diff on two csv files that contain only headers
and no data rows, the tool crashes with stopiteration instead of
returning "no differences" or an empty diff.
steps to reproduce: