back to home

pact-foundation / pact-python

Python version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.

View on GitHub
662 stars
144 forks
19 issues
PythonMakefileDockerfile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing pact-foundation/pact-python in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/pact-foundation/pact-python)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Pact Python Fast, easy and reliable testing for your APIs and microservices. Package CI/CD Meta Community Pact is the de-facto API contract testing tool. Replace expensive and brittle end-to-end integration tests with fast, reliable and easy to debug unit tests. ⚑ Lightning fast 🎈 Effortless full-stack integration testing - from the front-end to the back-end πŸ”Œ Supports HTTP/REST and event-driven systems πŸ› οΈ Configurable mock server 😌 Powerful matching rules prevents brittle tests 🀝 Integrates with Pact Broker / PactFlow for powerful CI/CD workflows πŸ”‘ Supports 12+ languages Why use Pact? Contract testing with Pact lets you: ⚑ Test locally πŸš€ Deploy faster ⬇️ Reduce the lead time for change πŸ’° Reduce the cost of API integration testing πŸ’₯ Prevent breaking changes πŸ”Ž Understand your system usage πŸ“ƒ Document your APIs for free πŸ—„ Remove the need for complex data fixtures πŸ€·β€β™‚οΈ Reduce the reliance on complex test environments Watch our series on the problems with end-to-end integrated tests, and how contract testing can help. Documentation This readme provides a high-level overview of the Pact Python library. For detailed documentation, please refer to the full Pact Python documentation. For a more general overview of Pact and the rest of the ecosystem, please refer to the Pact documentation. β€’ Installation β€’ Consumer testing β€’ Provider testing β€’ Examples Documentation for the API is generated from the docstrings in the code which you can view at . Need Help β€’ Join our community [slack workspace][Pact Foundation Slack]. β€’ Stack Overflow is a great place to ask questions. β€’ Say πŸ‘‹ on Twitter: @pact_up β€’ Join a discussion πŸ’¬ on [GitHub Discussions] β€’ [Raise an issue][GitHub Issues] on GitHub [Pact Foundation Slack]: https://pact-foundation.slack.com/ [GitHub Discussions]: https://github.com/pact-foundation/pact-python/discussions [GitHub Issues]: https://github.com/pact-foundation/pact-python/issues Installation The latest version of Pact Python can be installed from PyPi: Requirements Pact Python tries to support all versions of Python that are still supported by the Python Software Foundation. Older version of Python may work, but are not officially supported. In order to support the broadest range of use cases, Pact Python tries to impose the least restrictions on the versions of libraries that it uses. Telemetry In order to get better statistics as to who is using Pact, we collect some anonymous telemetry. The only things we record are your type of OS, and the version information for the package. No personally identifiable information is sent as part of this request. You can disable telemetry by setting the environment variable : Contributing We welcome contributions to the Pact Python library in many forms. There are many ways to help, from writing code, to providing new examples, to writing documentation, to testing the library and providing feedback. For more information, see the contributing guide.