Here we write upgrading notes for brands. It's a team effort to make them as straightforward as possible.
- 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.
- 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.
- 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
- 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.
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.py
includes functions which facilitate the creation, funding and defunding of an Algorand User within this framework - File
client_ops.py
includes 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.py
holds a class_ConfigParams
for reading environment variables to configure AlgoPytest - File
entities.py
holds a classAlgoUser
defining an Algorand User within this framework - File
fixtures.py
defines 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.py
holds a class_ProgramStore
which stores all of the necessary details required to deploy the smart contract to be tested - File
transaction_ops.py
includes functions which help send various transaction types such as Application call to Payment transaction into the network. - File
type_stubs.py
holds any custom types used in type annotating AlgoPytest