feat(776): every hook reports that it fired, and the report is measured (#795)
Build ErsatzTV Image / Delimiter ban (release path) (push) Successful in 25s
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 9m14s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 6m37s
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (push) Successful in 6m16s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (push) Skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (push) Skipped
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 4m19s
Build ErsatzTV Image / Delimiter ban (release path) (push) Successful in 25s
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 9m14s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 6m37s
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (push) Successful in 6m16s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (push) Skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (push) Skipped
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 4m19s
Co-authored-by: Timothy <timothy@noreply.gitea.tblindustries.be>
This commit was merged in pull request #795.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
"""Keep the test suite out of the PRODUCTION hook-fire log (ersatztv#776).
|
||||
|
||||
Four suites here drive real hooks as subprocesses — `test_merge_consent_exemption.py`,
|
||||
`test_merge_consent_base_change.py`, `test_prepush_rebase_check_tag_exemption.py`,
|
||||
`test_pr_changed_files.py` — and they predate the instrumentation. Once every hook records its own
|
||||
execution, running `pytest scripts/tests` wrote its synthetic invocations into
|
||||
`$HOME/.cache/ersatztv/hook-fire/`: 96 `pretooluse-merge-consent` fires including two `deny`s, and
|
||||
12 `blocked` decisions from `prepush-rebase-check`, none of them a real session.
|
||||
|
||||
That is not untidiness, it is the defect the whole change exists to remove. `scripts/hook-fire-log.sh
|
||||
report` is meant to answer "what did the harness actually do", and a log carrying test artifacts
|
||||
answers a different question while looking identical — inference reintroduced one layer up. The
|
||||
record has no field distinguishing a test invocation from a real one, and adding one would only move
|
||||
the problem, so the fix is that tests never write to the real log at all.
|
||||
|
||||
Autouse and session-independent: a new suite that drives a hook is isolated by existing, without
|
||||
having to know this file is here.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def isolate_hook_fire_log(tmp_path_factory, monkeypatch):
|
||||
monkeypatch.setenv(
|
||||
"ETV_HOOK_FIRE_LOG_DIR", str(tmp_path_factory.mktemp("hook-fire-log"))
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user