Skip to main content

testscan (Python launcher)

English | Русский

Thin wrapper: finds the Go binary and forwards argv / exit code.
Source of truth is the Go CLI (cmd/testscan). Python has no rules, parsing, or flag handling.

Package name on PyPI: testscan. Version comes from git tags (v*) via hatch-vcs.

Install (PyPI)

uvx testscan@latest tests/
# or: pipx run testscan tests/
# or: pip install testscan && testscan tests/

Release CI builds platform wheels (linux/amd64, darwin/arm64, windows/amd64) with the Go binary under testscan_py/bin/.

Local embed (contributors)

Binaries under src/testscan_py/bin/ are not committed (.gitignore). Embed before uvx --from ./python. pyproject.toml sets ignore-vcs = true and force-include for bin/*, otherwise hatchling can drop the binary because of gitignore.

powershell -ExecutionPolicy Bypass -File python/scripts/embed_bin.ps1
bash python/scripts/embed_bin.sh

Manual equivalent:

go build -o python/src/testscan_py/bin/testscan ./cmd/testscan
# Windows: .../bin/testscan.exe

Then:

uvx --from ./python testscan --help
uvx --from ./python testscan rules/testdata/empty --fail-on never

Without embed — via env (handy for debugging the wrapper):

go build -o /tmp/testscan ./cmd/testscan
TESTSCAN_BIN=/tmp/testscan uvx --from ./python testscan --help

Platform wheel (release / maintainers)

# from repo root; needs git tag history for hatch-vcs
bash python/scripts/build_platform_wheel.sh linux-amd64 manylinux_2_17_x86_64

Tag a release (v0.1.0) to trigger .github/workflows/release.yml → multi-OS wheels → PyPI + GitHub Release.

Before the first publish: create a PyPI project + Trusted Publisher for this repo (workflow Release, environment pypi), or the publish job will fail on OIDC.

Binary lookup (priority)

  1. TESTSCAN_BIN
  2. bundled: testscan_py/bin/testscan.exe (Windows) / testscan (unix)
  3. PATH (shutil.which("testscan"))

If not found → message on stderr, exit 2.

Manual check list

  • uvx testscan@latest --help (after PyPI publish) → usage (exit 0)
  • uvx --from ./python testscan --help after embed → usage (exit 0)
  • uvx --from ./python testscan rules/testdata/empty/hit --rule empty-test --fail-on error → exit 1
  • uvx --from ./python testscan rules/testdata/empty/clean --fail-on error → exit 0
  • bundled binary in wheel after embed + ignore-vcs / force-include
  • go test ./... green

Release files for testscan 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for testscan 0.1.0
File
testscan-0.1.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
testscan-0.1.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
testscan-0.1.0-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
testscan-0.1.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 4.8 MB

Release files / testscan-0.1.0-py3-none-win_amd64.whl

Download URL testscan-0.1.0-py3-none-win_amd64.whl
Size 1.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a600ec2f2a6f8666441be1a703ee175edc931289c656f64b5a90d07dbe01e20f
BLAKE2b-256 checksum
How to use checksums
6a07c14e6c788e5871ff33912c2073e93504cad89348b7cb7a89d78fe3e725fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / testscan-0.1.0-py3-none-manylinux_2_17_x86_64.whl

Download URL testscan-0.1.0-py3-none-manylinux_2_17_x86_64.whl
Size 1.2 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
f736cbe75ad42712d190dda5fe66c0c31c40d2bb389634c32f7d0b0232c37a08
BLAKE2b-256 checksum
How to use checksums
cb4a9334c6b8ef44a9b02009045a544ecf665b6a80a4cfa9198f2391816adc6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / testscan-0.1.0-py3-none-macosx_11_0_x86_64.whl

Download URL testscan-0.1.0-py3-none-macosx_11_0_x86_64.whl
Size 1.2 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
b047d26e4625bcfc360f88e01834d9ce1d5a3563d7ffee81d81f43a12a13869b
BLAKE2b-256 checksum
How to use checksums
dfd53ca749f9ad990aeaafff817585372097363566db52336f8ab18c4764dfc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / testscan-0.1.0-py3-none-macosx_11_0_arm64.whl

Download URL testscan-0.1.0-py3-none-macosx_11_0_arm64.whl
Size 1.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d649dfaf95ae7b437f768ff218476d7368fec0422459bf10196f8338a9924fd6
BLAKE2b-256 checksum
How to use checksums
8d7e6b74ae6b19a9ebea24cefc6c1ac28cadbf1b74433b15d4b315ed977dc137
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

4 release files

This release

0.1.0 This release

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page