1
0
Fork 0
ynh-apps_tools/readme_generator/tests/test_make_readme.py
2024-03-13 21:52:25 +01:00

47 lines
1.3 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()