Skip to content

Commit d254d0f

Browse files
committed
last step (json format name)
1 parent 005628e commit d254d0f

File tree

4 files changed

+119
-0
lines changed

4 files changed

+119
-0
lines changed

gendiff/gen_diff.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import json
22

3+
from gendiff.gen_diff_json import gen_diff_json
34
from gendiff.gen_diff_plain import gen_diff_plain
45
from gendiff.gen_diff_stylish import gen_diff_stylish
56
from gendiff.pars_yaml import open_ymlf
@@ -46,3 +47,5 @@ def generate_diff(file1, file2, format_name='stylish'):
4647
return gen_diff_stylish(diff)
4748
case 'plain':
4849
return gen_diff_plain(diff)
50+
case 'json':
51+
return gen_diff_json(diff)

gendiff/gen_diff_json.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import json
2+
3+
4+
def gen_diff_json(value):
5+
result = json.dumps(value, sort_keys=True, indent=2)
6+
return result

tests/test_data/result_json.json

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"common": [
3+
"nested",
4+
{
5+
"follow": [
6+
"added",
7+
false
8+
],
9+
"setting1": [
10+
"unchanged",
11+
"Value 1"
12+
],
13+
"setting2": [
14+
"removed",
15+
200
16+
],
17+
"setting3": [
18+
"changed",
19+
true,
20+
null
21+
],
22+
"setting4": [
23+
"added",
24+
"blah blah"
25+
],
26+
"setting5": [
27+
"added",
28+
{
29+
"key5": "value5"
30+
}
31+
],
32+
"setting6": [
33+
"nested",
34+
{
35+
"doge": [
36+
"nested",
37+
{
38+
"wow": [
39+
"changed",
40+
"",
41+
"so much"
42+
]
43+
}
44+
],
45+
"key": [
46+
"unchanged",
47+
"value"
48+
],
49+
"ops": [
50+
"added",
51+
"vops"
52+
]
53+
}
54+
]
55+
}
56+
],
57+
"group1": [
58+
"nested",
59+
{
60+
"baz": [
61+
"changed",
62+
"bas",
63+
"bars"
64+
],
65+
"foo": [
66+
"unchanged",
67+
"bar"
68+
],
69+
"nest": [
70+
"changed",
71+
{
72+
"key": "value"
73+
},
74+
"str"
75+
]
76+
}
77+
],
78+
"group2": [
79+
"removed",
80+
{
81+
"abc": 12345,
82+
"deep": {
83+
"id": 45
84+
}
85+
}
86+
],
87+
"group3": [
88+
"added",
89+
{
90+
"deep": {
91+
"id": {
92+
"number": 45
93+
}
94+
},
95+
"fee": 100500
96+
}
97+
]
98+
}

tests/test_generate_diff_json.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from gendiff.gen_diff import generate_diff
2+
from tests.test_generate_diff import get_test_data_path, read_file
3+
4+
5+
def test_generate_diff():
6+
result = read_file('result_json.json')
7+
actual = generate_diff(str(get_test_data_path('file11.json')),
8+
str(get_test_data_path('file22.json')), 'json')
9+
yam_act = generate_diff(str(get_test_data_path('file11.yml')),
10+
str(get_test_data_path('file22.yml')), 'json')
11+
assert actual == result
12+
assert yam_act == result

0 commit comments

Comments
 (0)