Contractual provides a method for verifying the function of mocks across modules and projects
Project description
Contractual
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 | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for contractual-0.4.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd7da2911f5d17a71b4a5ceee9278d756cc289b1ff9975110c97943429af5355 |
|
MD5 | 474c22330c48d55c040a03e32e1013f2 |
|
BLAKE2b-256 | 01807699c0eaef62c7e86fa3e890b45bea8c52d2f8690e815e77138ed731755d |