Received several excellent suggestions for how to improve testing in python. This seemed like the best place to write it up:
[ ] A simplified "happy path" API that simply assumes that everything will go well, and raises an exception when it doesn't. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).
[ ] A code coverage tool for solidity that is useable from python, https://github.com/sc-forks/solidity-coverage only works on truffle. Lack of a good code coverage tool impacts the security of the whole ecosystem. (this doesn't belong in pytest-ethereum, but... not sure where to put it until a project is started)
[ ] Ability to mine blocks with valid PoW on demand (in practice: at minimum difficulty)
[ ] (are there enough users to make this worth it?) A guide for people switching from pyethereum to pytest-ethereum/eth-tester/etc
[ ] TODO: Validate these ideas, and break each one out into separate issues
[ ] TODO: go through the following links looking for patterns that could be added to the previous doc, or APIs that could be added to improve pytest-ethereum.
The conversation originally started with: pyethereum is still better than web3/eth-tester at things, so they preferred it when building these tests (by increasing complexity):
Received several excellent suggestions for how to improve testing in python. This seemed like the best place to write it up:
receipt = ethtest.mine_txn(txn)
overtxn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash)
.The conversation originally started with: pyethereum is still better than web3/eth-tester at things, so they preferred it when building these tests (by increasing complexity):