Here we write upgrading notes for brands. It's a team effort to make them as straightforward as possible.
- Function
application_local_stateto read the local state of an account relating to a deployed application - Function
group_transactionto send group transactions - Removed
ProgramStoreclass and replaced it withdeploy_smart_contractwhich the user would call directly in a user-defined fixture to retrieve the smart contract app ID for testing - Implemented support for group transactions to hold both
TransactionandLogicSigTransaction - Support ASA operations with the following transaction operations
create_asset,destroy_asset,update_asset,freeze_asset,transfer_asset,opt_in_assetandclose_out_asset. - Implemented asset related utility functions
asset_balanceandasset_info. - Support multi-signature transaction with the
multisig_transactiontransaction operation. - Implemented a
SmartContractAccountentity to hold the address of a smart contract as anAlgoUser. - Utilize the
KMDto access account private keys of the sandbox. - AlgoPytest user entities implement a
namefield for a more human-friendly debugging and logging experience - Implemented a
TxnElemsContextcontext manager which alters all transaction operations to return an unsent transaction object rather than send the transaction. - Implemented a
TxnIDContextcontext manager which alters all transaction operations to return thetxn_idassociated with the sent transaction. - Functions
create_appandcreate_compiled_appare int sub-classed context managers that may be used in awithclause or cleaned up manually withdelete_app. - Function
create_assetreturns an int sub-classed context manager that can handle clean up within awithclause.
- Removed typing subscripts to be compatible with Python 3.8
- The
application_local_stateno longer fails when attempting to read a deleted local field.
- Inputs which accept
PyTEALdirectly take thepyteal.Exprand not a function which generates apyteal.Expr - Renamed the
group_elemfunction to a more generictxn_namesince this function applies also to smart signatures and multi-signature transactions, not solely group transactions. - All transaction operations take all possible parameters, even the less commonly used ones.
- The AlgoPytest API accepts
AlgoUseras a user input anywhere whenever an address is requested. - Sped up the
AlgoPytesttest suite runtime by caching the_initial_funds_account. - Altered arguments of
smart_signature_transactionto accept transaction tuple - Replaced simply
printwith a properlogging.loggerin thetransaction_boilerplatedecorator. - Migrated code to support py-algorand-sdk v2.0.0
- Completed the docstrings for every exported function and class.
- Introduced the type alias
SignerTxnPairTto make the output of transaction operations less confusing. - Divided the API documentation into subsections for easier referencing.
- Expanded list of demo projects in the
demos.rstdocumentation page. - Replaced
mdashhtml code in README.md with UTF8 mdash so that sphinx displays it correctly - Organize subsection in documentation linking to key Pytest topics essential to AlgoPytest.
- Removed non-working search and index links at the bottom of the sphinx index page.
The first release of AlgoPytest. Includes many functions to write usable tests as well as a good foundation to expand this library
- File
account_ops.pyincludes functions which facilitate the creation, funding and defunding of an Algorand User within this framework - File
client_ops.pyincludes all sorts of functions which ultimately interact with either algod or the indexer. Functions include sending transaction, reading the applications' global state, compiling PyTEAL source, etc. - File
config_params.pyholds a class_ConfigParamsfor reading environment variables to configure AlgoPytest - File
entities.pyholds a classAlgoUserdefining an Algorand User within this framework - File
fixtures.pydefines a few fixtures which automatically are available in a Pytest test suite when AlgoPytest is installed. They mainly focus on creating test users and a fresh smart contract - File
program_store.pyholds a class_ProgramStorewhich stores all of the necessary details required to deploy the smart contract to be tested - File
transaction_ops.pyincludes functions which help send various transaction types such as Application call to Payment transaction into the network. - File
type_stubs.pyholds any custom types used in type annotating AlgoPytest