Metadata-Version: 2.5
Name: pytest-obligation
Version: 0.13.1
Summary: A pytest plugin, a library for writing tests, a test generator, and a harness test runner for finding lost work, duplicate effects, and recovery bugs with your application's ObligationContract.
Project-URL: Homepage, https://github.com/gigaverse-app/pytest-obligation
Project-URL: Documentation, https://github.com/gigaverse-app/pytest-obligation/blob/main/package/docs/pytest-plugin.md
Project-URL: Source, https://github.com/gigaverse-app/pytest-obligation
Project-URL: Changelog, https://github.com/gigaverse-app/pytest-obligation/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/gigaverse-app/pytest-obligation/issues
Author: Gigaverse
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: ObligationContract,background jobs,celery,crash testing,django,duplicate processing,durable execution,fault injection,generated tests,idempotency,kafka,lost tasks,mongodb,postgresql,prefect,pytest,pytest plugin,recovery testing,redis,rq,task queue,transactional outbox
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: pydantic>=2.11
Requires-Dist: pytest>=8
Provides-Extra: aiokafka
Requires-Dist: aiokafka<0.15,>=0.12; extra == 'aiokafka'
Provides-Extra: celery
Requires-Dist: celery>=5.3; extra == 'celery'
Provides-Extra: dbos
Requires-Dist: dbos>=2.0; extra == 'dbos'
Provides-Extra: debt
Requires-Dist: pyyaml>=6; extra == 'debt'
Provides-Extra: django
Requires-Dist: django>=4.2; extra == 'django'
Requires-Dist: psycopg[binary]>=3.1; extra == 'django'
Requires-Dist: pytest-django>=4.8; extra == 'django'
Requires-Dist: time-machine>=2.10; extra == 'django'
Provides-Extra: exploration
Requires-Dist: hypothesis>=6.112; extra == 'exploration'
Provides-Extra: mongodb
Requires-Dist: motor<4,>=3.7; extra == 'mongodb'
Requires-Dist: pymongo<4.18,>=4.9; extra == 'mongodb'
Provides-Extra: prefect
Requires-Dist: prefect<3.8,>=3.7; extra == 'prefect'
Provides-Extra: procrastinate
Requires-Dist: procrastinate>=3.0; extra == 'procrastinate'
Provides-Extra: redis
Requires-Dist: redis>=5.0; extra == 'redis'
Requires-Dist: time-machine>=2.10; extra == 'redis'
Provides-Extra: rq
Requires-Dist: redis>=5.0; extra == 'rq'
Requires-Dist: rq>=2.6; extra == 'rq'
Requires-Dist: time-machine>=2.10; extra == 'rq'
Provides-Extra: selftest
Requires-Dist: pytest-xdist>=3.6; extra == 'selftest'
Requires-Dist: pyyaml>=6; extra == 'selftest'
Description-Content-Type: text/markdown

# pytest-obligation

Executable contracts for durable work: bind real selection, execution and independent observations to reusable failure/recovery proofs. This directory is the editable library imported by application repositories.

- [Adoption guide](docs/adopting.md)
- [Architecture and guarantees](docs/architecture.md)
- [Pytest plugin](docs/pytest-plugin.md)
- [Writing bindings](docs/harness-guide.md)
- [Interpreting a green result](docs/what-a-green-result-means.md)
- [Public applications and demos](https://github.com/gigaverse-app/pytest-obligation#readme)

The [full repository](https://github.com/gigaverse-app/pytest-obligation) owns demo dependencies, integration tests and release workflows. The library source, controls and maintenance documentation live here.

[Local development, package tests and bidirectional subtree sync](docs/development.md).
