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
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 |