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


Download files

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

Source Distribution

contractual-0.4.6.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

contractual-0.4.6-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file contractual-0.4.6.tar.gz.

File metadata

  • Download URL: contractual-0.4.6.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for contractual-0.4.6.tar.gz
Algorithm Hash digest
SHA256 8a5d54e6bfca7854331e721aa84ddf27483843d1e6968932435f0918eccedba3
MD5 7e4ca0d9cba29aa71ebe24f0574121a7
BLAKE2b-256 e2281d9d2de7ebbd2e56acd440295703d3734781a4e099a0827a6c8236dc23a0

See more details on using hashes here.

File details

Details for the file contractual-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: contractual-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 3.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for contractual-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 dd7da2911f5d17a71b4a5ceee9278d756cc289b1ff9975110c97943429af5355
MD5 474c22330c48d55c040a03e32e1013f2
BLAKE2b-256 01807699c0eaef62c7e86fa3e890b45bea8c52d2f8690e815e77138ed731755d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page