PyTest plugin for testing Smart Contracts for Ethereum blockchain.
Project description
PyTest-Cobra 
PyTest plugin for testing Smart Contracts for Ethereum blockchain.
Dependency
This library requires the solc executable to be present.
Only versions >=0.4.2 are supported and tested though this library may work
with other versions.
solc installation instructions
Install Solidity compiler (solc) using Node Package Manager(npm)
npm install -g solc
or for Ubuntu(Linux)
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
Quickstart
Installation
pip install pytest-cobra
Development
Clone the repository and then run
pip install -e . -r requirements.txt
Usage
Execute your test suite
Example MetaCoin picture
# MetaCoin Testing
# cobra is pytest fixture
def test_metacoin(cobra):
# Getting Contract Factory by name
metacoin = cobra.contract('MetaCoin')
# Getting Contract Instance of MetaCoin
metacoin = metacoin.deploy()
assert metacoin.getBalance(cobra.accounts[0]) == 10000
Running test from Solidity file (.sol)
pytest --cobra MetaCoin.sol
Optional commands
Import path remappings
solc provides path aliasing allow you to have more reusable project configurations.
pytest --cobra MetaCoin.sol --import_remappings ["zeppeling=/my-zeppelin-checkout-folder"]
Allow paths
pytest --cobra MetaCoin.sol --allow_paths "/home/meheret,/user,/"
Running test from compiled Contracts Json file (.json)
Compile your contracts into a package (soon to be ethPM-compliant)
solc --combined-json abi,bin,bin-runtime contracts/ > MetaCoin.json
Testing Contracts.json
pytest --cobra MetaCoin.json
Running test from Yaml file (.yaml)
Comming Soon with Cobra Framework
Further help
PyTest
Go check out the PyTest.
Author ✒️
- Meheret Tesfaye - Initial work - Cobra
License
This project is licensed under the MIT License - see the LICENSE file for details
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 pytest-cobra-1.0.4.tar.gz.
File metadata
- Download URL: pytest-cobra-1.0.4.tar.gz
- Upload date:
- Size: 50.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2825ff4591d963b8ae7281591356b97fdc5f1235a38f2db2bbd4bdabd366e71
|
|
| MD5 |
5d5f6dcc0a6684b14c3a41082a7dceb7
|
|
| BLAKE2b-256 |
4b67886082ff8c6ef6ea23a193f386e211d65de6ee9ab67ed5fb3ebd4fe11b7f
|
File details
Details for the file pytest_cobra-1.0.4-py3-none-any.whl.
File metadata
- Download URL: pytest_cobra-1.0.4-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
431c4409f7ee1b5f835a56c31968b8a13e824c7dce8396d6c93d30e20af220f5
|
|
| MD5 |
56bd4bc9bbdfdb93f1cb256cc65f9e5d
|
|
| BLAKE2b-256 |
823b5b97503e929174476f3c2bb01cc92502daa42c1c1f351f41dc3e966b0f48
|