TestSuite is a framework designed to simplify development and testing of Everscale contracts. It contains lightweight blockchain emulator making it easy to develop contracts in a TDD-friendly style.
- Speed - perform dozens of tests in just seconds.
- Complex test scenarios - using Python as a scripting language allows you to create testing scenarios of varying complexity.
- Deep Integration - access all internal messages, measure gas and control time.
- Easy installation - use
pip install tonos-ts4
to install TestSuite on your local Windows, Linux or macOS. You can also easily compile it from source if needed.
See tutorials
for self-documented examples of framework usage or visit TestSuite's documentation.
- tutorial01_getters.py - Working with getters of various types.
- tutorial02_methods.py - Working with external methods.
- tutorial03_constructors.py - Working with constructors.
- tutorial04_messages.py - Dispatching messages between contracts and catching events.
- tutorial05_deploy.py - Deploying a contract from a contract and working with it through wrappers.
- tutorial06_signatures.py - Working with singed external calls and handling exceptions raised by a contract.
- tutorial07_time.py - Fast-forwarding time however you need to.
- tutorial08_balance.py - Fetching contract balance.
- tutorial09_send_money.py - Send money and watch it travel within the virtual blockchain.
- tutorial10_encode_call.py - Encode the payload for use in the
transfer()
call. - tutorial11_set_code.py - Using the contract code update functionality.
python
and pip
with python3
and pip3
if you are running Linux or macOS.
If you have Python 3.6-3.10
, pip
and git
installed on your system, you can proceed with the following steps.
- Install
tonos-ts4
package:
pip install tonos-ts4
- Download tutorials from GitHub:
git clone git@github.com:EverscaleGuild/TestSuite.git
- ... and run the tutorials:
cd TestSuite/tutorials
python tutorial01_getters.py
For more information, visit TestSuite's documentation.
- Python 3.6-3.10
- Latest version of Rust
- Cargo tool
cd linker_lib && cargo update && ./build_release.sh && cd -
cd linker_lib && cargo update && build_release.sh && cd -
python setup.py develop
python3 setup.py develop --uninstall
cd tutorials
python tutorial01_getters.py
Inspired by TON Labs / TestSuite4