1
0
Fork 0
ynh-apps_tools/readme_generator/tests/test_make_readme.py
Félix Piédallu 7fe984b0d2 Rework a bit make_readme.py and test_make_readme.py
* Use pathlib.Path

* Use difflib to show actual diffs between new and old readmes
2024-03-13 20:37:43 +01:00

40 lines
1.2 KiB
Python
Executable file

#!/usr/bin/env python3
import difflib
import tempfile
import subprocess
from pathlib import Path
CWD = Path(__file__).resolve().parent
TEST_APP_NAME = "gotosocial_ynh"
TEST_APP_REPO = "https://github.com/yunohost-apps/gotosocial_ynh"
TEST_APP_COMMIT_ID = "8f788213b363a46a5b6faa8f844d86d4adac9446"
def diff_files(file_a: Path, file_b: Path) -> bool:
lines_a = file_a.open(encoding="utf-8").readlines()
lines_b = file_b.open(encoding="utf-8").readlines()
diffs = list(difflib.unified_diff(lines_a, lines_b, fromfile='README.before.md', tofile='README.after.md'))
print("".join(diffs))
return len(diffs) == 0
def test_running_make_readme():
with tempfile.TemporaryDirectory() as tempdir:
tempdir = Path(tempdir)
DIRECTORY = tempdir / TEST_APP_NAME
subprocess.check_call(["git", "clone", "-q", TEST_APP_REPO, DIRECTORY])
subprocess.check_call(["git", "checkout", "-q", TEST_APP_COMMIT_ID], cwd=DIRECTORY)
# Now run test...
subprocess.check_call([CWD.parent / "make_readme.py", DIRECTORY])
assert diff_files(CWD / "README.md", DIRECTORY / "README.md")
assert diff_files(CWD / "README_fr.md", DIRECTORY / "README_fr.md")
if __name__ == "__main__":
test_running_make_readme()