diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-28 09:16:39 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-28 09:16:39 -0500 |
| commit | 5c0c7a6f213609f5be8258f07b763201ad182876 (patch) | |
| tree | 9d7c0d54cde859607fb1910b57395f4408900906 /scripts/tests | |
| parent | bdf755d33aa6a207a538c85f18e38cc03f14e529 (diff) | |
| download | rulesets-5c0c7a6f213609f5be8258f07b763201ad182876.tar.gz rulesets-5c0c7a6f213609f5be8258f07b763201ad182876.zip | |
fix(sync-check): ignore generated python and elisp artifacts
Pre-commit caught a false-positive on its first real-world run. The
.ai/scripts/__pycache__ directory created by make test (pytest writes
.pyc and .pytest_cache, emacs writes .elc) was flagged as drift
against the canonical's clean tree.
Added matching --exclude patterns to the diff -rq check and the --fix
rsync calls. Patterns: __pycache__, *.pyc, *.pyo, .pytest_cache, *.elc.
The --fix excludes prevent rsync's --delete from wiping the mirror's
__pycache__ when the canonical has none.
Four new bats tests cover the exclusions. All 12 pass.
Diffstat (limited to 'scripts/tests')
| -rw-r--r-- | scripts/tests/sync-check.bats | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/tests/sync-check.bats b/scripts/tests/sync-check.bats index df775b3..17c9189 100644 --- a/scripts/tests/sync-check.bats +++ b/scripts/tests/sync-check.bats @@ -84,3 +84,33 @@ setup() { [ "$status" -eq 2 ] [[ "$output" == *"not inside a git checkout"* ]] } + +@test "generated Python artifacts in mirror don't count as drift" { + mkdir -p .ai/scripts/__pycache__ + touch .ai/scripts/__pycache__/foo.cpython-314.pyc + touch .ai/scripts/some.pyc + run scripts/sync-check.sh + [ "$status" -eq 0 ] +} + +@test "compiled elisp artifacts in mirror don't count as drift" { + touch .ai/scripts/foo.elc + run scripts/sync-check.sh + [ "$status" -eq 0 ] +} + +@test "pytest cache in mirror doesn't count as drift" { + mkdir -p .ai/scripts/.pytest_cache + touch .ai/scripts/.pytest_cache/CACHEDIR.TAG + run scripts/sync-check.sh + [ "$status" -eq 0 ] +} + +@test "--fix preserves generated artifacts in mirror" { + mkdir -p .ai/scripts/__pycache__ + touch .ai/scripts/__pycache__/foo.cpython-314.pyc + echo "drift" > .ai/protocols.org + run scripts/sync-check.sh --fix + [ "$status" -eq 0 ] + [ -f .ai/scripts/__pycache__/foo.cpython-314.pyc ] +} |
