Metadata-Version: 2.1
Name: sharedincc-test-fabric-journey
Version: 0.1.0
Summary: Canonical Python backend-journey reporter for Sharedincc Test Fabric
Author: Sharedincc
License: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: pytest

# Sharedincc Test Fabric Journey Reporter for Python

Zero-runtime-dependency Python reporter for the canonical Test Fabric backend-journey event and result protocols.

```python
from sharedincc_test_fabric_journey import JourneyReporter

reporter = JourneyReporter(
    run_id="run-one",
    project_id="example-project",
    journey_id="password-reset",
    journey_version=1,
    attempt_id="attempt-one",
    attempt_ordinal=1,
)
reporter.action_started("request-reset", "Request password reset.")
reporter.assertion(
    assertion_id="single-use-token",
    description="A reset token can be consumed only once.",
    semantic_class="replay-resistance",
    authority="mandatory",
    result="passed",
    expected_summary="A second use is rejected.",
    observed_summary="The second use returned the consumer-owned rejection.",
    evidence_refs=["reset-proof"],
)
reporter.finish(status="passed", stability="stable", required_evidence_refs=["reset-proof"])
```

The reporter writes one canonical JSON object per line. Consumer assertions, fixtures, commands, and business meaning remain consumer-owned.

The optional pytest plugin exposes `test_fabric_journey_reporter`. Configure identity through pytest markers or environment variables documented in the package API. Native Python commands remain independently runnable.
