stricttest v0.2.0 /python.src.stricttest.sandbox
On this page

Two startup guards: the bare-run threshold that pushes full-suite runs through the sandbox runner, and refusal of a temp root inside the project root.

#python.src.stricttest.sandbox

#python.src.stricttest.sandbox

Bare-run refusal and the TMPDIR-inside-repo refusal.

Two independent startup guards:

  • Bare-run threshold. A run collecting MORE than the threshold is treated

as a full-ish run and must go through the sandbox runner (which exports the sandbox env var). Small targeted runs stay bare-runnable so the inner development loop is fast -- the always-on env floor plus the push/chdir/socket guards still protect those.

  • TMPDIR-inside-repo refusal. Fixture temp directories inside the repo let

unanchored git commands walk UP into the real repo and commit junk. Both the pytest --basetemp and the TMPDIR environment variable are checked against the repository root, which is derived from pytest's rootpath.

#enforce_threshold

python
def enforce_threshold(settings: Settings, count: int) -> None

Raise UsageError if a bare run of count tests is too large.

No-op when the project declared stricttest_sandbox_required = false, when the run is already inside the sandbox, or when the run is a small targeted slice.

#enforce_tmp_outside_repo

python
def enforce_tmp_outside_repo(repo_root: Path, basetemp) -> None

Refuse to run if the temp root is inside the repository.

Junk-commit incidents happen because a TMPDIR (or pytest basetemp) points inside the repo: fixtures create non-git directories there, and unanchored git commands walk UP into the real repo and commit junk. Fail loudly at startup rather than let that recur.

More tools from this site

Search