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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|