fix(ci): skip the pristine-template guard in test_setup_command on forks (#463)

TemplatesStillCarryThePlaceholders asserts 05-cv-templates.md and 06-cover-letter-templates.md still carry their [FIRST_NAME]/[YOUR_*] tokens. /setup's documented Step 3.5/3.6 personalisation replaces exactly those tokens, so python-tests failed permanently on any personalized fork. Same @unittest.skipIf on GITHUB_REPOSITORY (defaulting to upstream when unset) as test_placeholder_integrity.py received in #407; that fix landed three days before this guard, which did not pick up the pattern.

Co-authored-by: Nathan No-ot <244263078+Nnoot02@users.noreply.github.com>
This commit is contained in:
Nathan
2026-09-14 18:35:23 +02:00
committed by GitHub
co-authored by Nathan No-ot
parent 73d52e0991
commit 9484a61831
2 changed files with 18 additions and 0 deletions
+11
View File
@@ -47,6 +47,17 @@ per-file diff commands.
### Fixed ### Fixed
- **The template-placeholder guard in `test_setup_command.py` now skips on forks** -
`TemplatesStillCarryThePlaceholders` asserts that `05-cv-templates.md` and
`06-cover-letter-templates.md` still contain `[FIRST_NAME]`, `[LAST_NAME]`, `[YOUR_EMAIL]`,
`[YOUR_PHONE]`, `[YOUR_NAME]`, and `[YOUR_LINKEDIN_URL]`. Running `/setup` - the documented
path, and what Step 3.5/3.6 of that command exist to do - replaces exactly those tokens, so on
a personalized fork `python3 -m unittest discover -s tests` fails both checks permanently and
marks every push red. The class now uses the same `@unittest.skipIf` on `GITHUB_REPOSITORY`
(defaulting to upstream when unset, so local pristine-template runs still execute the guards)
that `test_placeholder_integrity.py` received in #407. The guard landed three days after that
fix and did not pick up the pattern; the `placeholder-integrity` CI job is upstream-gated and
does not cover the `05`/`06` tokens, so `python-tests` was their only check.
- **`verify_pdf.py --contains` now sees through LaTeX's typographic substitutions and - **`verify_pdf.py --contains` now sees through LaTeX's typographic substitutions and
the pdflatex text layer keeps accents precomposed** (Discussions #385, #384) - the the pdflatex text layer keeps accents precomposed** (Discussions #385, #384) - the
comparison folded whitespace only, but LaTeX ligatures `'` into U+2019 and `--` into comparison folded whitespace only, but LaTeX ligatures `'` into U+2019 and `--` into
+7
View File
@@ -9,9 +9,12 @@ were not, so a full Path B/C run left `[YOUR_NAME]`, `[YOUR_EMAIL]` and
on the drafter noticing. A real user (#420) ran `/setup` and then hand-edited both on the drafter noticing. A real user (#420) ran `/setup` and then hand-edited both
files to close the gap. files to close the gap.
""" """
import os
import unittest import unittest
from pathlib import Path from pathlib import Path
UPSTREAM = "MadsLorentzen/ai-job-search"
REPO = Path(__file__).resolve().parent.parent REPO = Path(__file__).resolve().parent.parent
COMMAND = REPO / ".claude" / "commands" / "setup.md" COMMAND = REPO / ".claude" / "commands" / "setup.md"
SKILL_DIR = REPO / ".claude" / "skills" / "job-application-assistant" SKILL_DIR = REPO / ".claude" / "skills" / "job-application-assistant"
@@ -67,6 +70,10 @@ class SetupStep3ContactBlocks(unittest.TestCase):
self.assertIn("06-cover-letter-templates.md", summary) self.assertIn("06-cover-letter-templates.md", summary)
@unittest.skipIf(
os.environ.get("GITHUB_REPOSITORY", UPSTREAM) != UPSTREAM,
"template-placeholder guard targets the pristine upstream template; forks personalize 05-cv-templates.md and 06-cover-letter-templates.md via /setup",
)
class TemplatesStillCarryThePlaceholders(unittest.TestCase): class TemplatesStillCarryThePlaceholders(unittest.TestCase):
"""The instructions above target real tokens; if a template renames them, """The instructions above target real tokens; if a template renames them,
the instruction and this test must move together.""" the instruction and this test must move together."""