Files
timmy-config/tests/test_shebangs.py
2026-04-16 04:58:31 +00:00

54 lines
1.6 KiB
Python

"""
Tests for #681 — Python scripts have shebangs.
"""
import os
import unittest
from pathlib import Path
REPO_ROOT = Path(__file__).parent.parent
# Files mentioned in issue #681
ISSUE_FILES = [
"bin/glitch_patterns.py",
"bin/nostr-agent-demo.py",
"bin/soul_eval_gate.py",
"scripts/captcha_bypass_handler.py",
"scripts/diagram_meaning_extractor.py",
"scripts/visual_pr_reviewer.py",
]
class TestShebangs(unittest.TestCase):
def test_all_issue_files_have_shebangs(self):
"""All files listed in #681 have #!/usr/bin/env python3 shebang."""
for relpath in ISSUE_FILES:
filepath = REPO_ROOT / relpath
with self.subTest(file=relpath):
self.assertTrue(filepath.exists(), f"{relpath} not found")
with open(filepath) as f:
first_line = f.readline().strip()
self.assertEqual(
first_line, "#!/usr/bin/env python3",
f"{relpath} missing shebang, first line: {first_line}"
)
def test_bin_scripts_have_shebangs(self):
"""All .py files in bin/ have shebangs."""
bin_dir = REPO_ROOT / "bin"
if not bin_dir.exists():
self.skipTest("bin/ not found")
for filepath in bin_dir.glob("*.py"):
with self.subTest(file=filepath.name):
with open(filepath) as f:
first_line = f.readline().strip()
self.assertTrue(
first_line.startswith("#!"),
f"bin/{filepath.name} missing shebang"
)
if __name__ == "__main__":
unittest.main()