Skip to main content

PyTest plugin for testing Smart Contracts for Ethereum blockchain.

Project description

PyTest-Cobra PyPI - Python Version

PyTest plugin for testing Smart Contracts for Ethereum blockchain.

Build Status PyPI Version GitHub License Github Date PyPI Wheel Donate with Ethereum


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



pip install pytest-cobra


Clone the repository and then run

pip install -e . -r requirements.txt


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


Go check out the PyTest.

Author ✒️

  • Meheret Tesfaye - Initial work - Cobra


This project is licensed under the MIT License - see the LICENSE file for details

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytest-cobra, version 1.0.4
Filename, size File type Python version Upload date Hashes
Filename, size pytest_cobra-1.0.4-py3-none-any.whl (8.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pytest-cobra-1.0.4.tar.gz (50.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page