Skip to content

Commit 943ae8a

Browse files
committed
Actually diff for content
1 parent d7e5b82 commit 943ae8a

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

test_changes.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,39 @@ def fetch_data(school_id):
1515
return response.json()
1616

1717

18-
def sort_dict(data):
19-
return {key: value for key, value in sorted(data.items(), key=lambda k: k[0])}
20-
21-
2218
def get_clean_item(data):
23-
return set(
24-
{
19+
return {
2520
key: value
2621
for key, value in data.items()
2722
if value is not None and key != "update_timestamp"
2823
}
29-
)
3024

3125

32-
def compare_schools(new_school, old_school):
33-
new_school = sort_dict(new_school)
34-
old_school = sort_dict(old_school)
26+
def dict_diff(dict1, dict2):
27+
all_keys = set(dict1.keys()) | set(dict2.keys())
28+
29+
differences = {}
30+
for key in all_keys:
31+
val1 = dict1.get(key, None)
32+
val2 = dict2.get(key, None)
3533

34+
if val1 != val2:
35+
differences[key] = (val1, val2)
36+
37+
return differences
38+
39+
40+
def compare_schools(new_school, old_school):
3641
new_values = get_clean_item(new_school)
3742
old_values = get_clean_item(old_school)
3843

39-
differences = new_values ^ old_values
40-
if not differences:
44+
differences = dict_diff(new_values, old_values)
45+
if len(differences) == 0:
4146
print(" no changes \n")
4247
return
4348

44-
print(f"Difference: {differences}")
45-
print(f"Old: {old_school}")
46-
print(f"New: {new_school}")
49+
print(f"Difference found:")
50+
print(json.dumps(differences, indent=2))
4751

4852

4953
def main():

0 commit comments

Comments
 (0)