Skip to main content

Contractual provides a method for verifying the function of mocks across modules and projects

Project description

Contractual

Code style: black pipeline status coverage report

Installation

pip install contractual

Use

how to use-

Contract Files

Contract files comply with the Pact file format seen at https://github.com/pact-foundation/pact-specification/tree/version-2 There is a key difference though-

Contractual supports mocking out arbitrary interfaces, while Pact limits itself to http requests. As such, a Contractual file can only be used with a Pact verifier if you limit the unchecked mocks to HttpContractMock. In the files themselves, you will see a list of interactions having the form

{
    "description": "get all users for max",
    "request": {},
    "response": {},
    "providerState": "a user with an id named 'u:ser' exists"
}

That is a valid HTTP contract. A more general ContractMock contract would have the form

{
    "description": "get all users for max",
    "contractMock": {
        "contractName": "Name",
        "args": []
    },
    "response": {},
    "providerState": "a user with an id named 'user' exists"
}

Development

Development Environment

Poetry is used to manage the project and dependencies. Once you have poetry installed pip install --user poetry, you can run poetry install to setup a virtaulenv for your project. Dependencies can be updated using poetry add or poetry remove and committing the updated pyproject.toml and poetry.lock files.

Release

CI is handled on Gitlab at https://gitlab.com/pjbecotte/contractual. There is a make target to create a new release by tagging a new version and then incrementing to the next beta version. (This requires permissions to push to master)

Project details


Release history Release notifications

Download files

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

Files for contractual, version 0.4.6
Filename, size & hash File type Python version Upload date
contractual-0.4.6-py3-none-any.whl (3.3 kB) View hashes Wheel py3
contractual-0.4.6.tar.gz (6.4 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page