From 3becb2b06039eae157ac107c16e76bb7eb067376 Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 15 Aug 2026 15:45:32 +0800 Subject: [PATCH 1/6] Add one-time Python stub discovery patch script --- .../scripts/one-time-python-stub-discovery.py | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/scripts/one-time-python-stub-discovery.py diff --git a/.github/scripts/one-time-python-stub-discovery.py b/.github/scripts/one-time-python-stub-discovery.py new file mode 100644 index 0000000..d94b413 --- /dev/null +++ b/.github/scripts/one-time-python-stub-discovery.py @@ -0,0 +1,77 @@ +from pathlib import Path + + +def replace_once(file: str, before: str, after: str) -> None: + path = Path(file) + source = path.read_text() + count = source.count(before) + if count != 1: + raise RuntimeError(f"{file}: expected exactly one replacement target, found {count}") + path.write_text(source.replace(before, after, 1)) + + +replace_once( + "src/checks.ts", + ' if (entry.isFile() && /(?:^test_.*|.*_(?:test|spec))\\.pyi?$/.test(entry.name)) {', + ' if (entry.isFile() && /(?:^test_.*|.*_(?:test|spec))\\.py$/.test(entry.name)) {', +) + +anchor = 'test("stdlib unittest projects use unittest without requiring pytest", async (context) => {' +source = Path("tests/checks.test.ts").read_text() +if source.count(anchor) != 1: + raise RuntimeError("tests/checks.test.ts: insertion anchor missing or duplicated") +regression = '''test("Python stub files do not invent executable pytest or unittest checks", async (context) => { + const root = await initializeRepository({ + "tests/test_contract.pyi": "def test_contract() -> None: ...\\n", + "tests/test_legacy.pyi": "import unittest\\nclass Contract(unittest.TestCase): ...\\n", + }); + context.after(() => rm(root, { recursive: true, force: true })); + const { checks } = await discoverChecks(root); + assert.deepEqual(checks.filter((check) => check.kind === "test"), []); +}); + +''' +Path("tests/checks.test.ts").write_text(source.replace(anchor, regression + anchor, 1)) + +anchor = 'test("a passing filtered test script cannot imply that an unexecuted related test passed", async (context) => {' +source = Path("tests/analyze.test.ts").read_text() +if source.count(anchor) != 1: + raise RuntimeError("tests/analyze.test.ts: insertion anchor missing or duplicated") +regression = '''test("Python stubs remain static test relationships without inventing a runnable framework", async (context) => { + const root = await initializeRepository({ + "value.py": "def value():\\n return 1\\n", + "tests/test_value.pyi": "from value import value\\ndef test_value() -> None: ...\\n", + }); + context.after(() => rm(root, { recursive: true, force: true })); + await writeFiles(root, { "value.py": "def value():\\n return 2\\n" }); + + const report = await analyzeRepository({ repo: root, runChecks: true, timeoutMs: 20_000 }); + const assessment = report.assessments[0]; + assert.deepEqual(report.checks, []); + assert.deepEqual(assessment?.relatedTests, ["tests/test_value.pyi"]); + assert.deepEqual(assessment?.executedTests, []); + assert.equal(assessment?.status, "unknown"); + assert.equal(assessment?.evidenceBoundary?.stage, "runner-qualification"); + assert.equal(assessment?.evidenceBoundary?.reason, "runner-unqualified"); +}); + +''' +Path("tests/analyze.test.ts").write_text(source.replace(anchor, regression + anchor, 1)) + +replace_once( + "docs/verification-model.md", + "- Python namespace packages and dynamic imports may be missed.", + "- Python namespace packages and dynamic imports may be missed. `.pyi` stubs remain supported static-analysis and test-like relationship inputs, but they do not establish an executable pytest/`unittest` framework or qualify as Python runtime test targets.", +) + +replace_once( + "CHANGELOG.md", + "## [Unreleased]\\n\\n## [0.5.3] - 2026-08-15", + '''## [Unreleased] + +### Fixed + +- Stopped `.pyi` stub files with test-like names from inventing executable pytest or `unittest` checks. Stubs remain available to static Python analysis and relationship discovery, but framework discovery now requires an executable `.py` test file; this prevents `--run-checks` from launching a Python test runner merely because a repository contains test-shaped type stubs. + +## [0.5.3] - 2026-08-15''', +) From 6f39bf0f81cbe81cd1921733a416a5c3f4f89277 Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 15 Aug 2026 15:45:40 +0800 Subject: [PATCH 2/6] Add one-time Python stub discovery updater --- .../one-time-python-stub-discovery.yml | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/one-time-python-stub-discovery.yml diff --git a/.github/workflows/one-time-python-stub-discovery.yml b/.github/workflows/one-time-python-stub-discovery.yml new file mode 100644 index 0000000..e47dd11 --- /dev/null +++ b/.github/workflows/one-time-python-stub-discovery.yml @@ -0,0 +1,33 @@ +name: One-time Python stub discovery updater + +on: + push: + branches: [fix/python-stub-check-discovery] + +permissions: + contents: write + +jobs: + update: + if: github.actor != 'github-actions[bot]' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version: 24 + cache: npm + - run: npm ci + - name: Exclude Python stubs from executable framework discovery + run: python3 .github/scripts/one-time-python-stub-discovery.py + - run: npm test + - run: npm run clean && npm run build + - name: Commit source, regressions, docs, and generated dist + shell: bash + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add src tests docs/verification-model.md CHANGELOG.md dist + git diff --cached --check + git commit -m "Do not infer Python runners from stub-only tests" + git push From 2bea92267407431510243fe64b3315b7b3afbac5 Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 15 Aug 2026 15:46:37 +0800 Subject: [PATCH 3/6] Fix changelog patch target --- .github/scripts/one-time-python-stub-discovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/one-time-python-stub-discovery.py b/.github/scripts/one-time-python-stub-discovery.py index d94b413..5744ce7 100644 --- a/.github/scripts/one-time-python-stub-discovery.py +++ b/.github/scripts/one-time-python-stub-discovery.py @@ -66,7 +66,7 @@ def replace_once(file: str, before: str, after: str) -> None: replace_once( "CHANGELOG.md", - "## [Unreleased]\\n\\n## [0.5.3] - 2026-08-15", + "## [Unreleased]\n\n## [0.5.3] - 2026-08-15", '''## [Unreleased] ### Fixed From 138c345f682ab21228d245f3cbb4f2d140282f79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 15 Aug 2026 07:47:14 +0000 Subject: [PATCH 4/6] Do not infer Python runners from stub-only tests --- CHANGELOG.md | 4 ++++ dist/checks.js | 2 +- dist/checks.js.map | 2 +- docs/verification-model.md | 2 +- src/checks.ts | 2 +- tests/analyze.test.ts | 18 ++++++++++++++++++ tests/checks.test.ts | 10 ++++++++++ 7 files changed, 36 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51d4d71..470b960 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes are documented here. This project follows Semantic Versionin ## [Unreleased] +### Fixed + +- Stopped `.pyi` stub files with test-like names from inventing executable pytest or `unittest` checks. Stubs remain available to static Python analysis and relationship discovery, but framework discovery now requires an executable `.py` test file; this prevents `--run-checks` from launching a Python test runner merely because a repository contains test-shaped type stubs. + ## [0.5.3] - 2026-08-15 ### Fixed diff --git a/dist/checks.js b/dist/checks.js index 8b4a8f2..0a1e784 100644 --- a/dist/checks.js +++ b/dist/checks.js @@ -201,7 +201,7 @@ async function detectPythonTests(root, limit = 2_000) { if (entry.isDirectory() && !entry.isSymbolicLink() && !["node_modules", ".git", "__pycache__", ".venv", "venv", "dist", "build"].includes(entry.name)) { queue.push({ absolute: target, directory: current.directory === "." && (entry.name === "tests" || entry.name === "test") ? entry.name : current.directory }); } - if (entry.isFile() && /(?:^test_.*|.*_(?:test|spec))\.pyi?$/.test(entry.name)) { + if (entry.isFile() && /(?:^test_.*|.*_(?:test|spec))\.py$/.test(entry.name)) { const content = await readUtf8File(target, 200_000); const framework = content !== null && /(?:^|\n)\s*(?:from\s+unittest\b|import\s+unittest\b)|unittest\.TestCase/.test(content) ? "unittest" : "pytest"; if (framework === "pytest") diff --git a/dist/checks.js.map b/dist/checks.js.map index 1c7899a..686c65b 100644 --- a/dist/checks.js.map +++ b/dist/checks.js.map @@ -1 +1 @@ -{"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/verification-model.md b/docs/verification-model.md index e34bf0a..4d99219 100644 --- a/docs/verification-model.md +++ b/docs/verification-model.md @@ -77,7 +77,7 @@ Node, pytest, and unittest observer records travel over a separate bounded contr - Coverage ingestion is currently limited to explicitly supplied LCOV plus a user-declared commit that must resolve to the selected target. ProofDiff verifies that equality but does not independently attest artifact provenance. Changed-line reconstruction is capped at 50,000 current lines per file and otherwise remains unmeasured. ProofDiff does not run coverage tools, merge artifacts from different commits, remap source maps, guess CI workspace prefixes, or claim branch/assertion coverage. - Compiler resolution is intentionally partial: NodeNext-family extensionless paths, directory package metadata, non-default `moduleSuffixes`, Classic lookup, package or array `extends`, project references, standalone `baseUrl`, `${configDir}`, multiple-wildcard mappings, installed packages, and arbitrary bundler aliases are not resolved. - Package resolution is intentionally partial: only the importing package's exact self-exports under an explicit export-aware compiler mode are considered. Hidden package boundaries, versioned or unmodeled conditions, export patterns/arrays, package imports, workspace dependencies, third-party packages, and `node_modules` are not resolved. Compiler aliases also require bounded evidence that the selected config includes the importer. -- Python namespace packages and dynamic imports may be missed. +- Python namespace packages and dynamic imports may be missed. `.pyi` stubs remain supported static-analysis and test-like relationship inputs, but they do not establish an executable pytest/`unittest` framework or qualify as Python runtime test targets. - Root project scripts are discovered; monorepo package scripts are only noted. - Jest/Vitest exact-target support does not interpret shell substitution or chaining, duplicate or more than four environment assignments, `cross-env-shell`, `dotenv`, `concurrently`, arbitrary wrappers, custom runner options/config shapes, workspace package scripts, or package-manager layouts that do not expose the runner as a local `node_modules/` package. Those cases remain ordinary opaque checks rather than being guessed. A test-map declaration can name a relationship in these repositories, but it cannot make an unsupported runner command exact-target-capable. - Deleted symbols are inferred only from recognizable removed declarations. diff --git a/src/checks.ts b/src/checks.ts index d9ceb25..479b977 100644 --- a/src/checks.ts +++ b/src/checks.ts @@ -206,7 +206,7 @@ async function detectPythonTests(root: string, limit = 2_000): Promise { + const root = await initializeRepository({ + "value.py": "def value():\n return 1\n", + "tests/test_value.pyi": "from value import value\ndef test_value() -> None: ...\n", + }); + context.after(() => rm(root, { recursive: true, force: true })); + await writeFiles(root, { "value.py": "def value():\n return 2\n" }); + + const report = await analyzeRepository({ repo: root, runChecks: true, timeoutMs: 20_000 }); + const assessment = report.assessments[0]; + assert.deepEqual(report.checks, []); + assert.deepEqual(assessment?.relatedTests, ["tests/test_value.pyi"]); + assert.deepEqual(assessment?.executedTests, []); + assert.equal(assessment?.status, "unknown"); + assert.equal(assessment?.evidenceBoundary?.stage, "runner-qualification"); + assert.equal(assessment?.evidenceBoundary?.reason, "runner-unqualified"); +}); + test("a passing filtered test script cannot imply that an unexecuted related test passed", async (context) => { const root = await initializeRepository({ "package.json": JSON.stringify({ name: "filtered", private: true, type: "module", scripts: { test: "node --test test/unrelated.test.js" } }, null, 2), diff --git a/tests/checks.test.ts b/tests/checks.test.ts index d4f2336..59787ec 100644 --- a/tests/checks.test.ts +++ b/tests/checks.test.ts @@ -293,6 +293,16 @@ test("a conventional Python test file discovers pytest", async (context) => { assert.ok(checks.some((check) => check.id === "python:test:pytest")); }); +test("Python stub files do not invent executable pytest or unittest checks", async (context) => { + const root = await initializeRepository({ + "tests/test_contract.pyi": "def test_contract() -> None: ...\n", + "tests/test_legacy.pyi": "import unittest\nclass Contract(unittest.TestCase): ...\n", + }); + context.after(() => rm(root, { recursive: true, force: true })); + const { checks } = await discoverChecks(root); + assert.deepEqual(checks.filter((check) => check.kind === "test"), []); +}); + test("stdlib unittest projects use unittest without requiring pytest", async (context) => { const root = await initializeRepository({ "value.py": "def value():\n return 2\n", From ed11ed35334db6312688769bceb1cf6f3934ad03 Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 15 Aug 2026 15:48:03 +0800 Subject: [PATCH 5/6] Remove one-time Python stub discovery updater --- .../one-time-python-stub-discovery.yml | 33 ------------------- 1 file changed, 33 deletions(-) delete mode 100644 .github/workflows/one-time-python-stub-discovery.yml diff --git a/.github/workflows/one-time-python-stub-discovery.yml b/.github/workflows/one-time-python-stub-discovery.yml deleted file mode 100644 index e47dd11..0000000 --- a/.github/workflows/one-time-python-stub-discovery.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: One-time Python stub discovery updater - -on: - push: - branches: [fix/python-stub-check-discovery] - -permissions: - contents: write - -jobs: - update: - if: github.actor != 'github-actions[bot]' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v7 - - uses: actions/setup-node@v7 - with: - node-version: 24 - cache: npm - - run: npm ci - - name: Exclude Python stubs from executable framework discovery - run: python3 .github/scripts/one-time-python-stub-discovery.py - - run: npm test - - run: npm run clean && npm run build - - name: Commit source, regressions, docs, and generated dist - shell: bash - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - git add src tests docs/verification-model.md CHANGELOG.md dist - git diff --cached --check - git commit -m "Do not infer Python runners from stub-only tests" - git push From 913a4ec757741458fed75d5596d1c3f252a339d0 Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 15 Aug 2026 15:48:12 +0800 Subject: [PATCH 6/6] Remove one-time Python stub discovery patch script --- .../scripts/one-time-python-stub-discovery.py | 77 ------------------- 1 file changed, 77 deletions(-) delete mode 100644 .github/scripts/one-time-python-stub-discovery.py diff --git a/.github/scripts/one-time-python-stub-discovery.py b/.github/scripts/one-time-python-stub-discovery.py deleted file mode 100644 index 5744ce7..0000000 --- a/.github/scripts/one-time-python-stub-discovery.py +++ /dev/null @@ -1,77 +0,0 @@ -from pathlib import Path - - -def replace_once(file: str, before: str, after: str) -> None: - path = Path(file) - source = path.read_text() - count = source.count(before) - if count != 1: - raise RuntimeError(f"{file}: expected exactly one replacement target, found {count}") - path.write_text(source.replace(before, after, 1)) - - -replace_once( - "src/checks.ts", - ' if (entry.isFile() && /(?:^test_.*|.*_(?:test|spec))\\.pyi?$/.test(entry.name)) {', - ' if (entry.isFile() && /(?:^test_.*|.*_(?:test|spec))\\.py$/.test(entry.name)) {', -) - -anchor = 'test("stdlib unittest projects use unittest without requiring pytest", async (context) => {' -source = Path("tests/checks.test.ts").read_text() -if source.count(anchor) != 1: - raise RuntimeError("tests/checks.test.ts: insertion anchor missing or duplicated") -regression = '''test("Python stub files do not invent executable pytest or unittest checks", async (context) => { - const root = await initializeRepository({ - "tests/test_contract.pyi": "def test_contract() -> None: ...\\n", - "tests/test_legacy.pyi": "import unittest\\nclass Contract(unittest.TestCase): ...\\n", - }); - context.after(() => rm(root, { recursive: true, force: true })); - const { checks } = await discoverChecks(root); - assert.deepEqual(checks.filter((check) => check.kind === "test"), []); -}); - -''' -Path("tests/checks.test.ts").write_text(source.replace(anchor, regression + anchor, 1)) - -anchor = 'test("a passing filtered test script cannot imply that an unexecuted related test passed", async (context) => {' -source = Path("tests/analyze.test.ts").read_text() -if source.count(anchor) != 1: - raise RuntimeError("tests/analyze.test.ts: insertion anchor missing or duplicated") -regression = '''test("Python stubs remain static test relationships without inventing a runnable framework", async (context) => { - const root = await initializeRepository({ - "value.py": "def value():\\n return 1\\n", - "tests/test_value.pyi": "from value import value\\ndef test_value() -> None: ...\\n", - }); - context.after(() => rm(root, { recursive: true, force: true })); - await writeFiles(root, { "value.py": "def value():\\n return 2\\n" }); - - const report = await analyzeRepository({ repo: root, runChecks: true, timeoutMs: 20_000 }); - const assessment = report.assessments[0]; - assert.deepEqual(report.checks, []); - assert.deepEqual(assessment?.relatedTests, ["tests/test_value.pyi"]); - assert.deepEqual(assessment?.executedTests, []); - assert.equal(assessment?.status, "unknown"); - assert.equal(assessment?.evidenceBoundary?.stage, "runner-qualification"); - assert.equal(assessment?.evidenceBoundary?.reason, "runner-unqualified"); -}); - -''' -Path("tests/analyze.test.ts").write_text(source.replace(anchor, regression + anchor, 1)) - -replace_once( - "docs/verification-model.md", - "- Python namespace packages and dynamic imports may be missed.", - "- Python namespace packages and dynamic imports may be missed. `.pyi` stubs remain supported static-analysis and test-like relationship inputs, but they do not establish an executable pytest/`unittest` framework or qualify as Python runtime test targets.", -) - -replace_once( - "CHANGELOG.md", - "## [Unreleased]\n\n## [0.5.3] - 2026-08-15", - '''## [Unreleased] - -### Fixed - -- Stopped `.pyi` stub files with test-like names from inventing executable pytest or `unittest` checks. Stubs remain available to static Python analysis and relationship discovery, but framework discovery now requires an executable `.py` test file; this prevents `--run-checks` from launching a Python test runner merely because a repository contains test-shaped type stubs. - -## [0.5.3] - 2026-08-15''', -)