Add test case to test diffing function
diff --git a/tests/pretty_format_json_test.py b/tests/pretty_format_json_test.py
index 3b7b9a2..bd84431 100644
--- a/tests/pretty_format_json_test.py
+++ b/tests/pretty_format_json_test.py
@@ -3,6 +3,7 @@
import pytest
from six import PY2
+from pre_commit_hooks.pretty_format_json import get_diff
from pre_commit_hooks.pretty_format_json import main
from pre_commit_hooks.pretty_format_json import parse_num_to_int
from testing.util import get_resource_path
@@ -105,3 +106,78 @@
def test_badfile_main():
ret = main([get_resource_path('ok_yaml.yaml')])
assert ret == 1
+
+
+def test_diffing_output():
+ table_tests = [
+ {
+ 'name': 'diff_test_1',
+ 'source': """
+{
+ "key1": "val1",
+ "key2": 2,
+"array_key": [1, 2, 3],
+ "object":{
+ "bool_key": true
+ }
+}
+""",
+ 'target': """
+{
+ "array_key": [
+ 1,
+ 2,
+ 3
+ ],
+ "key1": "val1",
+ "key2": 2,
+ "object": {
+ "bool_key": true
+ }
+}
+""",
+ 'expected': """
+{
++ "array_key": [
++ 1,
++ 2,
++ 3
++ ],
+- "key1": "val1",
+? --
+
++ "key1": "val1",
+- "key2": 2,
+? -- --
+
++ "key2": 2,
+- "array_key": [1, 2, 3],
+- "object":{
+? ------
+
++ "object": {
+? +
+
+- "bool_key": true
+? ----
+
++ "bool_key": true
+- }
++ }
+ }
+""",
+ },
+ {
+ 'name': 'diff_test_2',
+ 'source': '',
+ 'target': '',
+ 'expected': '',
+ },
+
+ ]
+ for test in table_tests:
+ s = list(test['source'])
+ t = list(test['target'])
+ expected = test['expected'].strip()
+ actual = get_diff(s, t).strip()
+ assert actual == expected