Skip to main content

Example Consumer

Source Code#

Build Status

Pact Status (latest pact)

Pact Status (prod/prod pact)

This is an example of a Python consumer using Pact to create a consumer driven contract, and sharing it via Pactflow.

It is using a public tenant on Pactflow, which you can access here using the credentials dXfltyFMgNOFZAxr8io9wJ37iUpY42M/O5AIZWxelWbLvqMd8PkAVycBJh2Psyg1. The latest version of the Example Consumer/Example Provider pact is published here.

The project uses a Makefile to simulate a very simple build pipeline with two stages - test and deploy.

  • Test
    • Run tests (including the pact tests that generate the contract)
    • Publish pacts, tagging the consumer version with the name of the current branch
    • Check if we are safe to deploy to prod (ie. has the pact content been successfully verified)
  • Deploy (only from master)
    • Deploy app (just pretend for the purposes of this example!)
    • Tag the deployed consumer version as 'prod'


See the Pactflow CI/CD Workshop.

To run the tests locally, run:

make test

To run the "fake ci" task:

export PACT_BROKER_BASE_URL=https://test.pactflow.ioexport PACT_BROKER_USERNAME=dXfltyFMgNOFZAxr8io9wJ37iUpY42Mexport PACT_BROKER_PASSWORD=O5AIZWxelWbLvqMd8PkAVycBJh2Psyg1make fake_ci