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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a5d54e6bfca7854331e721aa84ddf27483843d1e6968932435f0918eccedba3 |
|
MD5 | 7e4ca0d9cba29aa71ebe24f0574121a7 |
|
BLAKE2b-256 | e2281d9d2de7ebbd2e56acd440295703d3734781a4e099a0827a6c8236dc23a0 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd7da2911f5d17a71b4a5ceee9278d756cc289b1ff9975110c97943429af5355 |
|
MD5 | 474c22330c48d55c040a03e32e1013f2 |
|
BLAKE2b-256 | 01807699c0eaef62c7e86fa3e890b45bea8c52d2f8690e815e77138ed731755d |