Skip to main content

Pawzok

Follow the trail. Verify what actually happened.

Pawzok is a Python testing library for verifying application state without repetitive connection, polling, request, and assertion code.

v0.2

Pawzok now supports both API and SQL validation:

  • assert_api() for HTTP status and JSON response validation
  • assert_sql() for concise database assertions
  • smart polling for eventually consistent database state
  • clear, pytest-friendly failure messages
  • SQLite support
  • Python 3.9 through 3.13

Installation

pip install pawzok

For development:

git clone https://github.com/karthik1029/Pawzok.git
cd Pawzok
python3 -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
python3 -m pip install -e ".[dev]"
python3 -m pytest

API validation

from pawzok import assert_api

result = assert_api(
    method="GET",
    url="https://api.example.com/orders/123",
    expected_status=200,
    expected={"status": "READY"},
)

Pawzok checks the HTTP status and the expected JSON fields. Extra fields in the response are allowed.

If the API returns the wrong state, Pawzok reports the difference clearly:

Pawzok API assertion failed.
Expected status: 200
Actual status:   200
Differences:
  status: expected 'READY', got 'PROCESSING'

SQL validation

from pawzok import assert_sql

assert_sql(
    connection="orders.db",
    query="""
        SELECT status
        FROM orders
        WHERE order_id = 123
    """,
    expected={"status": "CONFIRMED"},
)

For state that may take time to appear:

assert_sql(
    connection="orders.db",
    query="SELECT status FROM orders WHERE order_id = 123",
    expected={"status": "READY"},
    timeout=20,
    poll_every=2,
)

Pawzok keeps checking until the expected state appears or the timeout expires.

Roadmap

  • 0.1 — SQL assertions and smart polling ✅
  • 0.2 — API validation ✅
  • 0.3 — API + SQL workflow traces
  • 0.4 — event-stream validation
  • 0.5 — cross-system correlation

Why Pawzok?

A successful response does not always mean the system reached the correct state. Pawzok is being built to follow the trail of an operation and verify the state behind the response.

License

MIT

Metadata

Release files for pawzok 0.2.0

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

Source distribution (sdist)

Source distribution for pawzok 0.2.0
File Size Uploaded Provenance Actions
pawzok-0.2.0.tar.gz 6.8 kB With provenance Details for pawzok-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pawzok 0.2.0
File Interpreter ABI Platform Actions
pawzok-0.2.0-py3-none-any.whl Python 3 none any Details for pawzok-0.2.0-py3-none-any.whl

Total release size: 13.5 kB

Release files / pawzok-0.2.0.tar.gz

Download URL pawzok-0.2.0.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
be835fe26a0ba19f217168f71648f3e5bfe2551781307ad77bff81bad1d6a030
BLAKE2b-256 checksum
How to use checksums
ef227f9a9516d6b115fef51e9f15eb2585ccf372be8d49b45388057ae4d218a6
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 6, 2026.

Transparency log

Release files / pawzok-0.2.0-py3-none-any.whl

Download URL pawzok-0.2.0-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb8bf680cdb9c10c734f3478ccd6e70c6d04ef04dc2593d41139243df157e779
BLAKE2b-256 checksum
How to use checksums
3d6dbd722359e3bbc93123277d86ae92d2201cfb97221ad1630e4b1f84d958a0
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 6, 2026.

Transparency log

Security for pawzok 0.2.0

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pawzok-0.2.0.tar.gz

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 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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