homebrew-fonts/tests/test_no_orphan_formulae.py

34 lines
1.3 KiB
Python

"""Global tests: no orphan formulae, no duplicate formula names."""
import pytest
from tests.conftest import FONT_FILES_DIR, FORMULA_DIR, get_font_dir_names
def test_every_formula_has_matching_font_folder():
"""Every Formula/font-*.rb has a matching font_files/font-<name>/ directory."""
formula_files = sorted(FORMULA_DIR.glob("font-*.rb"))
for formula_path in formula_files:
name = formula_path.stem # e.g. font-acrylic-hand
font_dir = FONT_FILES_DIR / name
assert font_dir.is_dir(), (
f"Orphan formula: {formula_path.name} has no matching font folder {font_dir}"
)
def test_no_duplicate_formula_names():
"""Only one formula file per font-<name> (no duplicate basenames)."""
formula_files = list(FORMULA_DIR.glob("font-*.rb"))
names = [p.stem for p in formula_files]
seen = set()
for n in names:
assert n not in seen, f"Duplicate formula name: {n}.rb"
seen.add(n)
def test_formula_count_matches_font_count():
"""Number of font-*.rb formulae equals number of font-* directories."""
font_names = get_font_dir_names()
formula_count = len(list(FORMULA_DIR.glob("font-*.rb")))
assert formula_count == len(font_names), (
f"Formula count ({formula_count}) != font dir count ({len(font_names)})"
)