Releases: DamianB-BitFlipper/algopytest
Releases · DamianB-BitFlipper/algopytest
AlgoPytest 2.0.0
[2.0.0] - 2023-02-04
New Features
- 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.
Bug Fixes
- Removed typing subscripts to be compatible with Python 3.8
- The
application_local_stateno longer fails when attempting to read a deleted local field.
Other Changes
- 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
Documentation Changes
- 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.