"""Global tests: no orphan casks, no duplicate cask names.""" from tests.conftest import CASKS_DIR, FONT_FILES_DIR, get_font_dir_names def test_every_cask_has_matching_font_folder(): """Every Casks/font-*.rb has a matching font_files/font-/ directory.""" cask_files = sorted(CASKS_DIR.glob("font-*.rb")) for cask_path in cask_files: name = cask_path.stem # e.g. font-acrylic-hand font_dir = FONT_FILES_DIR / name assert font_dir.is_dir(), ( f"Orphan cask: {cask_path.name} has no matching font folder {font_dir}" ) def test_no_duplicate_cask_names(): """Only one cask file per font- (no duplicate basenames).""" cask_files = list(CASKS_DIR.glob("font-*.rb")) names = [p.stem for p in cask_files] seen = set() for n in names: assert n not in seen, f"Duplicate cask name: {n}.rb" seen.add(n) def test_cask_count_matches_font_count(): """Number of font-*.rb casks equals number of font-* directories with TTF/OTF files.""" font_names = get_font_dir_names() # Only count fonts that have TTF or OTF files (casks skip fonts with no installable files) fonts_with_files = [] for name in font_names: font_dir = FONT_FILES_DIR / name has_ttf = any((font_dir / "ttf").glob("*.ttf")) or any((font_dir / "ttf").glob("*.ttc")) has_otf = any((font_dir / "otf").glob("*.otf")) if has_ttf or has_otf: fonts_with_files.append(name) cask_count = len(list(CASKS_DIR.glob("font-*.rb"))) assert cask_count == len(fonts_with_files), ( f"Cask count ({cask_count}) != font dir count with TTF/OTF ({len(fonts_with_files)})" )