Skip to main content

Unofficial, capability-adaptive conformance runner for the Universal Commerce Protocol (UCP)

Project description

spck-conformance

Unofficial, capability-adaptive conformance runner for the Universal Commerce Protocol (UCP). Point it at any UCP server and get an honest, capability-scoped report — it runs only the checks that apply to what the server declares, and every check is kill-rate-validated (proven to catch its own defects) before it ships.

Independent project. Not affiliated with, endorsed by, or a substitute for the official UCP conformance suite. It reports only the checks it actually runs.

Install

pip install spck-conformance

No third-party dependencies (Python ≥ 3.9, stdlib only).

Use

spck-conformance --server https://api.example.com \
    [--config merchant.json] [--json] [--junit report.xml]

Quickstart (30 seconds)

# 1. point it at your server — no config needed for the discovery + structure checks
spck-conformance --server https://api.example.com

# 2. scaffold a config tailored to YOUR server's declared capabilities
spck-conformance --server https://api.example.com --init merchant.json
#    -> fill in the FILL_ME placeholders (a product id, discount code, payment token…)

# 3. re-run with the config to unlock the data-dependent checks
spck-conformance --server https://api.example.com --config merchant.json

On a deviation the report shows expected (the requirement) vs observed (your actual response) so you can fix it directly, and the footer's Next steps tells you how to unlock any not-tested checks.

Use in CI (GitHub Action)

# .github/workflows/ucp.yml
jobs:
  conformance:
    runs-on: ubuntu-latest
    steps:
      - uses: vishkaty/ucp-conformance@main
        with:
          server: https://api.example.com
          config: merchant.json        # optional
          # fail-on-deviation: false   # report-only mode

The job fails on any MUST deviation and writes a JUnit report (ucp-conformance.xml) your CI can display as a test run.

  • --config — optional JSON supplying data-dependent inputs (product id, discount codes, a succeeding/failing payment, an out-of-stock id). Without it, those checks are honestly not-tested rather than silently passed.
  • --json — full machine-readable report; each check cites its normative clause (id, verbatim text, spec source).
  • --junit FILE — JUnit XML for CI (deviation → <failure>, not-applicable / not-tested → <skipped>).
  • Exit code2 if any MUST deviates, else 0 (partial coverage is not a failure).

What it checks

Discovery + profile structure, checkout lifecycle, idempotency, validation, fulfillment, order completion, payment-credential handling, discounts, catalog (search/lookup), and cart — scoped to the capabilities the target declares. The profile-schema check requires the native ucp-schema validator (not shipped in the wheel), so it reports not-tested here; run it from the source repo for full fidelity.

Source, methodology, and the self-validating CI harness: https://github.com/vishkaty/ucp-conformance.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spck_conformance-0.1.0.tar.gz (145.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spck_conformance-0.1.0-py3-none-any.whl (168.9 kB view details)

Uploaded Python 3

File details

Details for the file spck_conformance-0.1.0.tar.gz.

File metadata

  • Download URL: spck_conformance-0.1.0.tar.gz
  • Upload date:
  • Size: 145.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for spck_conformance-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8d7efb7aec71d4623f17ea6f943d39c2dbb111a99f04d40ed29b532e8b88bd8f
MD5 17285b3a7827f936666745294aad0cbc
BLAKE2b-256 3bc07e34263f38f3b95e0189a3f4e9b4a80180543ebb70f35bd70f3c790fe5c4

See more details on using hashes here.

File details

Details for the file spck_conformance-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spck_conformance-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5be93c3a0939791262ca80a0a159bf85b02cc7885f9d9422ae94a318c7f85de0
MD5 e10d1a82b8f51f0f742abfc1283d5d26
BLAKE2b-256 ef9548073fc5418442c56e048c2e38ba91d4f4508957e555301cd79259b7d602

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page