bat/tests/syntax-tests/compare_highlighted_versions.py

66 lines
1.7 KiB
Python
Raw Normal View History

2020-08-03 11:34:21 +00:00
#!/usr/bin/env python3
import glob
import sys
import os.path as path
import difflib
import argparse
def compare_highlighted_versions(root_old, root_new):
print("Comparing the following directories:")
print(" -", root_old)
print(" -", root_new)
has_changes = False
for path_old in glob.glob(path.join(root_old, "*", "*")):
filename = path.basename(path_old)
dirname = path.basename(path.dirname(path_old))
path_new = path.join(root_new, dirname, filename)
print("\n========== {}/{}".format(dirname, filename))
with open(path_old) as file_old:
lines_old = file_old.readlines()
with open(path_new) as file_new:
lines_new = file_new.readlines()
diff = difflib.unified_diff(
lines_old, lines_new, fromfile=path_old, tofile=path_new
)
file_has_changes = False
for line in diff:
print(line, end="")
file_has_changes = True
if file_has_changes:
has_changes = True
else:
print("No changes")
print()
return has_changes
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="This script compares two directories that were created "
"by 'create_highlighted_versions.py'."
)
parser.add_argument(
"OLD", help="Path to the old (stored) version of the highlighted output",
)
parser.add_argument(
"NEW", help="Path to the new version of the highlighted output",
)
args = parser.parse_args()
if compare_highlighted_versions(args.OLD, args.NEW):
print("Error: files with changes have been found")
sys.exit(1)
else:
print("Directories are the same")