Skip to content

Releases: algorandfoundation/algorand-python-testing

v0.3.0

22 Aug 15:24
Compare
Choose a tag to compare

v0.3.0 (2024-08-22)

Introducing initial stable release of algorand-python-testing πŸŽ‰

  1. The context manager now interface exposes three main properties:
  • ledger: An instance of LedgerContext for interacting with and querying the emulated Algorand ledger state.
  • txn: An instance of TransactionContext for creating and managing transaction groups, submitting transactions, and accessing transaction results.
  • any: An instance of AlgopyValueGenerator for generating randomized test data.
  1. Introducing a mechanism for deferred execution of an application call to control transaction ordering for any abi/baremethod prefixed methods in contract instances.
  2. Adding explicit context for setting the scope for execution of a specific transaction group and active transaction within it.
  3. Revamped and detailed documentation, refer here to catch up with latest capabilities of algorand-python-testing package.

Release notes

New Features

  • Introduced ARC4 results in logs, with support for more than 15 ARC4 arguments (#18)
  • Added ARC4 factory for easier creation of ARC4 types
  • Implemented deferred app calls and modular test context
  • Refined access to value generators
  • Added support for ARC4 structs

Improvements

  • Renamed txn_op_fields to active_txn_overrides for clarity
  • Enhanced handling of mutable types (ARC4 tuple, array, and structs)
  • Improved equality implementation for Account
  • Refined handling of application and asset-related state operations
  • Simplified transaction and inner transaction implementations

Bug Fixes

  • Fixed propagation of changes in mutable types back to container-like types
  • Ensured new Account instances have field defaults populated
  • Corrected behavior of Global.current_application* properties to match AVM
  • Fixed generation of app/asset IDs to avoid conflicts

Documentation

  • Added comprehensive documentation for the initial stable release
  • Integrated pydoclint and improved overall documentation formatting

v0.3.0-beta.9

22 Aug 13:28
Compare
Choose a tag to compare
v0.3.0-beta.9 Pre-release
Pre-release

v0.3.0-beta.9 (2024-08-22)

v0.3.0-beta.8

22 Aug 08:33
Compare
Choose a tag to compare
v0.3.0-beta.8 Pre-release
Pre-release

v0.3.0-beta.8 (2024-08-22)

Feature

  • include ARC4 results in log, and handle > 15 ARC4 arguments (#18) (fd83ee8)

v0.3.0-beta.10

22 Aug 15:18
Compare
Choose a tag to compare
v0.3.0-beta.10 Pre-release
Pre-release

v0.3.0-beta.10 (2024-08-22)

v0.3.0-beta.7

21 Aug 18:55
Compare
Choose a tag to compare
v0.3.0-beta.7 Pre-release
Pre-release

v0.3.0-beta.7 (2024-08-21)

v0.3.0-beta.6

21 Aug 13:22
Compare
Choose a tag to compare
v0.3.0-beta.6 Pre-release
Pre-release

v0.3.0-beta.6 (2024-08-21)

Documentation

  • documentation for initial stable release of algorand-python-testing (#8) (9d97d0d)

    • docs: wip

    • chore: refresh pyproject

    • docs: refining docs (wip)

    • chore: integrating doctests

    • docs: revamping docs with latest features

    • docs: minor consistency with main readme; patching doctests

    • docs: removing the box from examples

    • docs: refine op codes section

    • chore: merge conflicts

    • chore: apply suggestions from code review

    Co-authored-by: Daniel McGregor <[email protected]>

    • docs: addressing docs pr comments

v0.3.0-beta.5

21 Aug 10:25
Compare
Choose a tag to compare
v0.3.0-beta.5 Pre-release
Pre-release

v0.3.0-beta.5 (2024-08-21)

Fix

  • ensure mutable types (ARC4 tuple, array and structs) have their changes propagated back to container-like types (global/local state, boxes, ARC4 mutable types) (#14) (1f1f2ea)

    • fix: add default eq implementation for ARC4 types

    • fix: ensure mutable types (ARC4 tuple, array and structs) have their changes propagated back to container-like types (global/local state, boxes, ARC4 mutable types)

    • feat: add str and repr implementations for ARC4 types

    • refactor: make ARC4 type_info private

    • refactor: make ARC4 struct inherit _ABIEncoded

    • refactor: removing get_app_for_contract; expanding get_app; parsing on_complete

v0.3.0-beta.4

21 Aug 09:06
Compare
Choose a tag to compare
v0.3.0-beta.4 Pre-release
Pre-release

v0.3.0-beta.4 (2024-08-21)

Feature

  • rename txn_op_fields to active_txn_overrides to better reflect purpose, add additional checks to ensure crate_group parameters are used correctly (973fc28)

Fix

  • fix equality implementation for Account, to allow comparison with arc4.Address (6ec2dd4)

  • ensure new Account's have field defaults populated (54432b0)

  • ensure Global.current_application* properties match AVM (ae84ae2)

  • when generating app/asset id's skip any that might already be reserved (0bb5eba)

Documentation

  • integrating pydoclint; formatting docs; removing docs from stub implementation (d729bf9)

v0.3.0-beta.3

16 Aug 13:34
Compare
Choose a tag to compare
v0.3.0-beta.3 Pre-release
Pre-release

v0.3.0-beta.3 (2024-08-16)

Refactor

  • refactor: move box storage onto ApplicationContextData (#12)

  • refactor: move box storage onto ApplicationContextData

Require app reference when interacting with boxes

  • refactor: moving getters setters of global local state to ledger context

  • refactor: more laconic names for methods/vars referencing application -> app


Co-authored-by: Altynbek Orumbayev <[email protected]> (57a8f13)

v0.3.0-beta.2

16 Aug 08:59
Compare
Choose a tag to compare
v0.3.0-beta.2 Pre-release
Pre-release

v0.3.0-beta.2 (2024-08-16)

Chore

  • chore: refreshing todos (#11)

[skip ci] (6df2567)

Refactor

  • refactor: moving scratch slots and app logs to TransactionBase (#10)

  • refactor: moving scratch slots and app logs to TransactionBase

  • build: updated to latest puyapy

  • refactor: minor refactors

  • refactor: refactor txn group initialization

  • refactor: add additional gtxn properties from 2.0 stubs

  • refactor: consolidate log and scratch space implementation.

logs can be mocked on the underlying application, or for specific transactions
active txn can append logs

  • refactor: defer some imports to reduce circular imports

  • chore: add some TODO's for future work

  • test: tweak test for mocking abi_call, by ensuring mocked function is in algopy namespace

  • feat: implement gaid op

  • fix: added mock implementations for new algopy functions, add util for raising consistent mockable method errors

  • chore: add TODO for asset property


Co-authored-by: Daniel McGregor <[email protected]> (71801f0)