PyTest plugin for testing Smart Contracts for Ethereum blockchain.
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 Installation
pip install pytest-cobra Clone the repository and then run
pip install -e . -r requirements.txt 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]) == 10000pytest --cobra MetaCoin.sol solc provides path aliasing allow you to have more reusable project configurations.
pytest --cobra MetaCoin.sol --import_remappings ["zeppeling=/my-zeppelin-checkout-folder"] pytest --cobra MetaCoin.sol --allow_paths "/home/meheret,/user,/" 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 test: artifact_path: "./build/contracts/" test_paths: ["./tests"] contracts: [ contract: { artifact: "Contract.json", links: ["Contract.json"] } ]Go check out the PyTest.
- Meheret Tesfaye - Initial work - Cobra
This project is licensed under the MIT License - see the LICENSE file for details
