|
1 | 1 | from click.testing import CliRunner
|
2 | 2 | from csv_diff import cli
|
3 |
| -from .test_csv_diff import ONE, TWO, THREE, FIVE |
| 3 | +import pytest |
| 4 | +from .test_csv_diff import ONE, ONE_TSV, TWO, TWO_TSV, THREE, FIVE |
4 | 5 | import json
|
5 | 6 | from textwrap import dedent
|
6 | 7 |
|
7 | 8 |
|
| 9 | +@pytest.fixture |
| 10 | +def tsv_files(tmpdir): |
| 11 | + one = tmpdir / "one.tsv" |
| 12 | + one.write(ONE_TSV) |
| 13 | + two = tmpdir / "two.tsv" |
| 14 | + two.write(TWO_TSV) |
| 15 | + return str(one), str(two) |
| 16 | + |
| 17 | + |
8 | 18 | def test_human_cli(tmpdir):
|
9 | 19 | one = tmpdir / "one.csv"
|
10 | 20 | one.write(ONE)
|
@@ -74,3 +84,39 @@ def test_human_cli_json(tmpdir):
|
74 | 84 | "columns_added": [],
|
75 | 85 | "columns_removed": [],
|
76 | 86 | } == json.loads(result.output.strip())
|
| 87 | + |
| 88 | + |
| 89 | +def test_tsv_files(tsv_files): |
| 90 | + one, two = tsv_files |
| 91 | + result = CliRunner().invoke( |
| 92 | + cli.cli, [one, two, "--key", "id", "--json", "--format", "tsv"] |
| 93 | + ) |
| 94 | + assert 0 == result.exit_code |
| 95 | + assert { |
| 96 | + "added": [], |
| 97 | + "removed": [], |
| 98 | + "changed": [{"key": "1", "changes": {"age": ["4", "5"]}}], |
| 99 | + "columns_added": [], |
| 100 | + "columns_removed": [], |
| 101 | + } == json.loads(result.output.strip()) |
| 102 | + |
| 103 | + |
| 104 | +def test_sniff_format(tsv_files): |
| 105 | + one, two = tsv_files |
| 106 | + result = CliRunner().invoke(cli.cli, [one, two, "--key", "id", "--json"]) |
| 107 | + assert 0 == result.exit_code |
| 108 | + assert { |
| 109 | + "added": [], |
| 110 | + "removed": [], |
| 111 | + "changed": [{"key": "1", "changes": {"age": ["4", "5"]}}], |
| 112 | + "columns_added": [], |
| 113 | + "columns_removed": [], |
| 114 | + } == json.loads(result.output.strip()) |
| 115 | + |
| 116 | + |
| 117 | +def test_format_overrides_sniff(tsv_files): |
| 118 | + one, two = tsv_files |
| 119 | + result = CliRunner().invoke( |
| 120 | + cli.cli, [one, two, "--key", "id", "--json", "--format", "csv"] |
| 121 | + ) |
| 122 | + assert 1 == result.exit_code |
0 commit comments