Releases: DamianB-BitFlipper/algopytest
Releases · DamianB-BitFlipper/algopytest
AlgoPytest 2.0.0
[2.0.0] - 2023-02-04
New Features
- Function
application_local_state
to read the local state of an account relating to a deployed application - Function
group_transaction
to send group transactions - Removed
ProgramStore
class and replaced it withdeploy_smart_contract
which 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
Transaction
andLogicSigTransaction
- Support ASA operations with the following transaction operations
create_asset
,destroy_asset
,update_asset
,freeze_asset
,transfer_asset
,opt_in_asset
andclose_out_asset
. - Implemented asset related utility functions
asset_balance
andasset_info
. - Support multi-signature transaction with the
multisig_transaction
transaction operation. - Implemented a
SmartContractAccount
entity to hold the address of a smart contract as anAlgoUser
. - Utilize the
KMD
to access account private keys of the sandbox. - AlgoPytest user entities implement a
name
field for a more human-friendly debugging and logging experience - Implemented a
TxnElemsContext
context manager which alters all transaction operations to return an unsent transaction object rather than send the transaction. - Implemented a
TxnIDContext
context manager which alters all transaction operations to return thetxn_id
associated with the sent transaction. - Functions
create_app
andcreate_compiled_app
are int sub-classed context managers that may be used in awith
clause or cleaned up manually withdelete_app
. - Function
create_asset
returns an int sub-classed context manager that can handle clean up within awith
clause.
Bug Fixes
- Removed typing subscripts to be compatible with Python 3.8
- The
application_local_state
no longer fails when attempting to read a deleted local field.
Other Changes
- Inputs which accept
PyTEAL
directly take thepyteal.Expr
and not a function which generates apyteal.Expr
- Renamed the
group_elem
function to a more generictxn_name
since 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
AlgoUser
as a user input anywhere whenever an address is requested. - Sped up the
AlgoPytest
test suite runtime by caching the_initial_funds_account
. - Altered arguments of
smart_signature_transaction
to accept transaction tuple - Replaced simply
print
with a properlogging.logger
in thetransaction_boilerplate
decorator. - 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
SignerTxnPairT
to 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.rst
documentation page. - Replaced
mdash
html 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.