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.2.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.2.0
File
testscan-0.2.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
testscan-0.2.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
testscan-0.2.0-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
testscan-0.2.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 5.8 MB

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

Download URL testscan-0.2.0-py3-none-win_amd64.whl
Size 1.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
26f4f8fafd4b89ad6d18c3f9550c8c64dfd645ae7a9e2e9937e8e11429f9fc8e
BLAKE2b-256 checksum
How to use checksums
74be8a53573b265e2ea48c6287adf3487552ab0896c83ae3b5586a4c12555918
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 25, 2026.

Transparency log

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

Download URL testscan-0.2.0-py3-none-manylinux_2_17_x86_64.whl
Size 1.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
49cf460689c2189163567e99bb435c81353f587206580ea1cd853684fa633449
BLAKE2b-256 checksum
How to use checksums
82138fa4c01f77b427438e3b374547ddfcd3b26770c7644422f1e7b3a46939c5
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 25, 2026.

Transparency log

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

Download URL testscan-0.2.0-py3-none-macosx_11_0_x86_64.whl
Size 1.5 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
fbd793f92ddb510349be9e948d47044326e4fb8a079f04dd5069acf8cc22c34d
BLAKE2b-256 checksum
How to use checksums
8e5e3ee0924ae40b07c32c703850662449f91aba329e3673c5a454a0233d5e3a
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 25, 2026.

Transparency log

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

Download URL testscan-0.2.0-py3-none-macosx_11_0_arm64.whl
Size 1.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8b75581caa8f2160f2343c5b7472527f4280d6d689695b275dba4248030088d9
BLAKE2b-256 checksum
How to use checksums
b04e08ac8acf44d473fc9786bdbb7ffaf7a5ecfbb6ae140440f60ec8f07b4211
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 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

4 release files

0.1.0

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