algorand-python-testing 0.5.0b1__tar.gz → 0.6.0b2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.vscode/settings.json +1 -2
- algorand_python_testing-0.6.0b2/CHANGELOG.md +426 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/PKG-INFO +1 -1
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/coverage.md +2 -1
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/pyproject.toml +1 -1
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/arc4.py +52 -11
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/state/box.py +41 -1
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/utilities/__init__.py +2 -1
- algorand_python_testing-0.6.0b2/src/_algopy_testing/utilities/size_of.py +9 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/utils.py +20 -2
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy/__init__.py +2 -1
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/templates/.macros.j2 +1 -1
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_arc4_method_signature.py +8 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_box.py +139 -0
- algorand_python_testing-0.6.0b2/tests/utilities/test_size_of.py +65 -0
- algorand_python_testing-0.5.0b1/CHANGELOG.md +0 -96
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.coveragerc +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.editorconfig +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/dependabot.yml +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/pull_request_template.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/workflows/cd.yaml +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/workflows/ci.yaml +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.github/workflows/gh-pages.yaml +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.gitignore +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.pre-commit-config.yaml +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.vscode/extensions.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/.vscode/launch.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/CONTRIBUTING.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/LICENSE +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/README.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/Makefile +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/_static/custom.css +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/algopy.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/api.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/conf.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/examples.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/faq.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/index.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/make.bat +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/arc4-types.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/avm-types.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/concepts.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/contract-testing.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/index.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/opcodes.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/signature-testing.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/state-management.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/subroutines.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/docs/testing-guide/transactions.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/README.md +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/auction/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/auction/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/auction/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/htlc_logicsig/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/htlc_logicsig/signature.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/htlc_logicsig/test_signature.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/marketplace/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/marketplace/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/marketplace/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/proof_of_attendance/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/proof_of_attendance/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/proof_of_attendance/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/scratch_storage/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/scratch_storage/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/scratch_storage/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/simple_voting/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/simple_voting/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/simple_voting/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/zk_whitelist/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/zk_whitelist/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/examples/zk_whitelist/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/scripts/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/scripts/check_stubs_cov.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/scripts/refresh_test_artifacts.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/scripts/validate_examples.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/compiled.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/constants.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/context.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/context_helpers/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/context_helpers/txn_context.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/decorators/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/decorators/arc4.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/decorators/subroutine.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/enums.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/gtxn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/itxn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/itxn_loader.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/account.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/application.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/asset.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/logicsig.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/template_variable.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/txn_fields.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/mutable.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/block.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/constants.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/crypto.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/global_values.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/itxn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/misc.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/pure.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/op/txn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/primitives/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/primitives/array.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/primitives/biguint.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/primitives/bytes.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/primitives/string.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/primitives/uint64.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/protocols.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/serialize.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/state/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/state/global_state.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/state/local_state.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/state/utils.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/utilities/budget.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/utilities/log.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/value_generators/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/value_generators/arc4.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/value_generators/avm.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/value_generators/txn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy/arc4.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy/gtxn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy/itxn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy/op.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy/py.typed +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/templates/.release_notes.md.j2 +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/templates/CHANGELOG.md.j2 +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/conftest.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_abi_call.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_address.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_bool.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_dynamic_array.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_dynamic_bytes.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_emit.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_static_array.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_string.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_struct.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_tuple.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_ufixednxm.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/arc4/test_uintn.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/Contract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/Contract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/immutable.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/static_size.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Arrays/uint64.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/BoxContract/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/BoxContract/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Contains/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Contains/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Contains/data/MyContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CreatedAppAsset/other.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CryptoOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CryptoOps/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/GlobalStateValidator/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/MiscellaneousOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateMutations/statemutations.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/artifacts/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/common.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/conftest.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/contexts/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_asset.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_box_map.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_box_ref.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_contract.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_uenumerate.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/models/test_urange.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/primitives/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/primitives/conftest.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/primitives/test_biguint.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/primitives/test_bytes.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/primitives/test_string.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/primitives/test_uint64.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/state/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/state/conftest.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/state/test_global_state.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/state/test_local_state.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/state/test_mutations.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/test_array.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/test_context.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/test_miscellaneous_op.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/test_op.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/util.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/utilities/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/utilities/conftest.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/utilities/test_log.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/value_generators/__init__.py +0 -0
- {algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/tests/value_generators/test_avm.py +0 -0
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
"python.analysis.typeCheckingMode": "off",
|
|
18
18
|
|
|
19
19
|
"ruff.enable": true,
|
|
20
|
-
"ruff.
|
|
21
|
-
"ruff.lint.args": ["--config=pyproject.toml"],
|
|
20
|
+
"ruff.configuration": "pyproject.toml",
|
|
22
21
|
"ruff.importStrategy": "fromEnvironment",
|
|
23
22
|
"ruff.fixAll": true, //lint and fix all files in workspace
|
|
24
23
|
"ruff.organizeImports": true, //organize imports on save
|
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
## v0.6.0-beta.2 (2025-05-15)
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* add stubs for box create function ([`1fe6fe5`](https://github.com/algorandfoundation/algorand-python-testing/commit/1fe6fe55358630a6abea2f69406821cb6031a4d5))
|
|
7
|
+
|
|
8
|
+
## v0.6.0-beta.1 (2025-05-09)
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* add stub implementation of algopy.size_of function for calculating static storage size of types ([`98e6816`](https://github.com/algorandfoundation/algorand-python-testing/commit/98e6816a48f1cff206f2c99d1384af1855d352c2))
|
|
13
|
+
|
|
14
|
+
### Bug fixes
|
|
15
|
+
|
|
16
|
+
* ensure size_of is exported from algopy module ([`01c055a`](https://github.com/algorandfoundation/algorand-python-testing/commit/01c055a4d2bd1fe17324bd91f7a83810900baa4e))
|
|
17
|
+
|
|
18
|
+
### Documentation
|
|
19
|
+
|
|
20
|
+
* include size_of in coverage doc ([`2c73646`](https://github.com/algorandfoundation/algorand-python-testing/commit/2c7364626357844437fd80b6039c112a87b277bb))
|
|
21
|
+
|
|
22
|
+
## v0.5.0 (2025-02-20)
|
|
23
|
+
|
|
24
|
+
## v0.5.0-beta.1 (2025-02-19)
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
* support `algopy.Array` and `algopy.ImmutableArray` from algorand-python 2.7 ([`fd8d19f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fd8d19f25b9f8e0a48f58ae8f45e4d546b965f83))
|
|
29
|
+
|
|
30
|
+
* support mocking new `algopy.op` functions `falcon_verify`, `mimc`, `online_stake`, `sumhash512` and `VoterParamsGet` ([`83ddcbb`](https://github.com/algorandfoundation/algorand-python-testing/commit/83ddcbb8f83f72a5e0bc247c14e250c55496febf))
|
|
31
|
+
|
|
32
|
+
* update `algopy.op.Block` with fields added in AVM 11 ([`90d857d`](https://github.com/algorandfoundation/algorand-python-testing/commit/90d857d248d7b1b5a4b3791ccb0e10c20c478325))
|
|
33
|
+
|
|
34
|
+
* update `algopy.op.AcctParamsGet` with fields added in AVM 11 ([`059b669`](https://github.com/algorandfoundation/algorand-python-testing/commit/059b6690441e99a709fc47691bcb0e4f2453cd26))
|
|
35
|
+
|
|
36
|
+
* add `avm_version` to `algopy.Contract` class options ([`fc53b0f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fc53b0fda5f0d22b6dbb99abf1ba024284fa52a4))
|
|
37
|
+
|
|
38
|
+
* update `algopy.op.Global` with fields added in AVM 11 ([`0cc9807`](https://github.com/algorandfoundation/algorand-python-testing/commit/0cc9807bbfc7084d54425c40889065ae2fd7d856))
|
|
39
|
+
|
|
40
|
+
* add `algopy.arc4.Struct._replace` introduced in algorand-python 2.5.0 ([`75d6847`](https://github.com/algorandfoundation/algorand-python-testing/commit/75d6847b80498d637c7f0b0e3915afd7af6f132c))
|
|
41
|
+
|
|
42
|
+
* add inline option to subroutine decorator ([`2cc15b3`](https://github.com/algorandfoundation/algorand-python-testing/commit/2cc15b3dc706eb8585b9658bf67b38da215e2e38))
|
|
43
|
+
|
|
44
|
+
### Bug fixes
|
|
45
|
+
|
|
46
|
+
* add missing mappings for `algopy.op.Txn` members ([`fddfe6f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fddfe6f7ff9d6d4e0434f65e19dd0b0cf2aef6bd))
|
|
47
|
+
|
|
48
|
+
* include `ARC4Contract` in `algopy.arc4` namespace ([`f19d46f`](https://github.com/algorandfoundation/algorand-python-testing/commit/f19d46f5663c9fbe4e9b2e8c3bd1e2f7ddc89c3a))
|
|
49
|
+
|
|
50
|
+
* update `algopy.CompiledContract` and `algopy.CompiledLogicSig` to be NamedTuples ([`84be408`](https://github.com/algorandfoundation/algorand-python-testing/commit/84be4082348e3d89b40a65a69b599594a5531828))
|
|
51
|
+
|
|
52
|
+
* added missing __contains__ implementation for `algopy.Bytes` ([`8b2efa2`](https://github.com/algorandfoundation/algorand-python-testing/commit/8b2efa20b37e3043ac6a228d6706da4203373a7e))
|
|
53
|
+
|
|
54
|
+
### Documentation
|
|
55
|
+
|
|
56
|
+
* fix doctest example for `algopy.EllipticCurve` ([`7d0bb0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/7d0bb0dfe9a5ea2d67b130fa300fb80cef52fda5))
|
|
57
|
+
|
|
58
|
+
## v0.4.1 (2024-09-03)
|
|
59
|
+
|
|
60
|
+
## v0.4.1-beta.1 (2024-09-03)
|
|
61
|
+
|
|
62
|
+
### Bug fixes
|
|
63
|
+
|
|
64
|
+
* ability to pass kw_only flag to dataclass when defining struct subclass (#23) ([`24bcf9d`](https://github.com/algorandfoundation/algorand-python-testing/commit/24bcf9d8af34eb2675ddf85ce9d71802f82f2d6a))
|
|
65
|
+
|
|
66
|
+
* fix: ability to pass kw_only flag to dataclass when defining struct subclass
|
|
67
|
+
|
|
68
|
+
* chore: add dependabot yaml
|
|
69
|
+
|
|
70
|
+
* chore: adding ability to pass args to struct init subclass
|
|
71
|
+
|
|
72
|
+
## v0.4.0 (2024-08-27)
|
|
73
|
+
|
|
74
|
+
## v0.4.0-beta.2 (2024-08-27)
|
|
75
|
+
|
|
76
|
+
## v0.4.0-beta.1 (2024-08-27)
|
|
77
|
+
|
|
78
|
+
### Features
|
|
79
|
+
|
|
80
|
+
* add support for frozen on asset holdings, including a new ledger function `update_asset_holdings` for setting asset holding balances and frozen states ([`d777ca0`](https://github.com/algorandfoundation/algorand-python-testing/commit/d777ca0a318a8ade7a20363c9ce77fe8a8bf5d68))
|
|
81
|
+
|
|
82
|
+
* expand accepted types when interacting with accounts, applications and assets ([`f448a97`](https://github.com/algorandfoundation/algorand-python-testing/commit/f448a97cb154c9f90ecf42c599b240f12928af20))
|
|
83
|
+
|
|
84
|
+
wip
|
|
85
|
+
|
|
86
|
+
* replaced `account_exists` with `account_is_funded` as the later is more useful ([`4d08690`](https://github.com/algorandfoundation/algorand-python-testing/commit/4d086903eb93a70ce1d485cdd7b12d8472ef16db))
|
|
87
|
+
|
|
88
|
+
### Bug fixes
|
|
89
|
+
|
|
90
|
+
* use correct type for Globals.caller_application_id ([`a30d85a`](https://github.com/algorandfoundation/algorand-python-testing/commit/a30d85a4416dfc2c5d901f3ace2265384ef60c01))
|
|
91
|
+
|
|
92
|
+
* do not allow specifying `address` for applications, it is derived from the app_id ([`00fe1bc`](https://github.com/algorandfoundation/algorand-python-testing/commit/00fe1bc8ea247dcc36b01154db36b984b151e396))
|
|
93
|
+
|
|
94
|
+
* do not treat asset and application ids as possible foreign array indexes ([`94a989f`](https://github.com/algorandfoundation/algorand-python-testing/commit/94a989f77169da2ae437c629cd5f4d8a872263f6))
|
|
95
|
+
|
|
96
|
+
* removed incorrect deduction in `algopy.op.balance` ([`76e67c5`](https://github.com/algorandfoundation/algorand-python-testing/commit/76e67c5e3dd1cda388a2a948d452ba89805add6a))
|
|
97
|
+
|
|
98
|
+
* ensure all comparable types return `NotImplemented` when a comparison is not possible ([`b055fa6`](https://github.com/algorandfoundation/algorand-python-testing/commit/b055fa68531e0b7923773ec10c2097a3d64b9dbe))
|
|
99
|
+
|
|
100
|
+
* `arc4_prefix` annotated to also accept `algopy.Bytes` ([`40328ca`](https://github.com/algorandfoundation/algorand-python-testing/commit/40328ca3701b3e255193e206e8a7b1bdb441a346))
|
|
101
|
+
|
|
102
|
+
### Documentation
|
|
103
|
+
|
|
104
|
+
* include usage of `algopy_testing_context` in README.md quick start ([`4702f60`](https://github.com/algorandfoundation/algorand-python-testing/commit/4702f60cfe7d09956a5ae6dbdcd72da29fdda808))
|
|
105
|
+
|
|
106
|
+
## v0.3.0 (2024-08-22)
|
|
107
|
+
|
|
108
|
+
## v0.3.0-beta.10 (2024-08-22)
|
|
109
|
+
|
|
110
|
+
## v0.3.0-beta.9 (2024-08-22)
|
|
111
|
+
|
|
112
|
+
## v0.3.0-beta.8 (2024-08-22)
|
|
113
|
+
|
|
114
|
+
### Features
|
|
115
|
+
|
|
116
|
+
* include ARC4 results in log, and handle > 15 ARC4 arguments (#18) ([`fd83ee8`](https://github.com/algorandfoundation/algorand-python-testing/commit/fd83ee8525a393d4a1a66f20acdb661906d84b51))
|
|
117
|
+
|
|
118
|
+
## v0.3.0-beta.7 (2024-08-21)
|
|
119
|
+
|
|
120
|
+
## v0.3.0-beta.6 (2024-08-21)
|
|
121
|
+
|
|
122
|
+
### Documentation
|
|
123
|
+
|
|
124
|
+
* documentation for initial stable release of `algorand-python-testing` (#8) ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
125
|
+
|
|
126
|
+
* docs: wip
|
|
127
|
+
|
|
128
|
+
* chore: refresh pyproject
|
|
129
|
+
|
|
130
|
+
* docs: refining docs (wip)
|
|
131
|
+
|
|
132
|
+
* chore: integrating doctests
|
|
133
|
+
|
|
134
|
+
* docs: revamping docs with latest features
|
|
135
|
+
|
|
136
|
+
* docs: minor consistency with main readme; patching doctests
|
|
137
|
+
|
|
138
|
+
* docs: removing the box from examples
|
|
139
|
+
|
|
140
|
+
* docs: refine op codes section
|
|
141
|
+
|
|
142
|
+
* chore: merge conflicts
|
|
143
|
+
|
|
144
|
+
* chore: apply suggestions from code review
|
|
145
|
+
|
|
146
|
+
Co-authored-by: Daniel McGregor <daniel.mcgregor@makerx.com.au>
|
|
147
|
+
|
|
148
|
+
* docs: addressing docs pr comments
|
|
149
|
+
|
|
150
|
+
## v0.3.0-beta.5 (2024-08-21)
|
|
151
|
+
|
|
152
|
+
### Bug fixes
|
|
153
|
+
|
|
154
|
+
* 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`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
155
|
+
|
|
156
|
+
* fix: add default __eq__ implementation for ARC4 types
|
|
157
|
+
|
|
158
|
+
* 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)
|
|
159
|
+
|
|
160
|
+
* feat: add __str__ and __repr__ implementations for ARC4 types
|
|
161
|
+
|
|
162
|
+
* refactor: make ARC4 type_info private
|
|
163
|
+
|
|
164
|
+
* refactor: make ARC4 struct inherit _ABIEncoded
|
|
165
|
+
|
|
166
|
+
* refactor: removing get_app_for_contract; expanding get_app; parsing on_complete
|
|
167
|
+
|
|
168
|
+
## v0.3.0-beta.4 (2024-08-21)
|
|
169
|
+
|
|
170
|
+
### Features
|
|
171
|
+
|
|
172
|
+
* rename txn_op_fields to active_txn_overrides to better reflect purpose, add additional checks to ensure crate_group parameters are used correctly ([`973fc28`](https://github.com/algorandfoundation/algorand-python-testing/commit/973fc288836d09ba4657642c980ca9f916d38823))
|
|
173
|
+
|
|
174
|
+
### Bug fixes
|
|
175
|
+
|
|
176
|
+
* fix equality implementation for Account, to allow comparison with arc4.Address ([`6ec2dd4`](https://github.com/algorandfoundation/algorand-python-testing/commit/6ec2dd4f2b4119987a5ea7c3c670bdd554c4fe30))
|
|
177
|
+
|
|
178
|
+
* ensure new Account's have field defaults populated ([`54432b0`](https://github.com/algorandfoundation/algorand-python-testing/commit/54432b03cef13008b16fab84dcc250824e2e2da1))
|
|
179
|
+
|
|
180
|
+
* ensure Global.current_application* properties match AVM ([`ae84ae2`](https://github.com/algorandfoundation/algorand-python-testing/commit/ae84ae27e49ef977babe7abb10d8994446d6b5f7))
|
|
181
|
+
|
|
182
|
+
* when generating app/asset id's skip any that might already be reserved ([`0bb5eba`](https://github.com/algorandfoundation/algorand-python-testing/commit/0bb5eba3ec75ffdb16cfbac5b3c4837f64f8a58a))
|
|
183
|
+
|
|
184
|
+
### Documentation
|
|
185
|
+
|
|
186
|
+
* integrating pydoclint; formatting docs; removing docs from stub implementation ([`d729bf9`](https://github.com/algorandfoundation/algorand-python-testing/commit/d729bf9b70ef885cd1b2ef705c4f5e2582d853ab))
|
|
187
|
+
|
|
188
|
+
## v0.3.0-beta.3 (2024-08-16)
|
|
189
|
+
|
|
190
|
+
## v0.3.0-beta.2 (2024-08-16)
|
|
191
|
+
|
|
192
|
+
## v0.3.0-beta.1 (2024-08-14)
|
|
193
|
+
|
|
194
|
+
### Features
|
|
195
|
+
|
|
196
|
+
* deferred app calls, modular test context, refined access to value generators, numerous fixes/improvements (#4) ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
197
|
+
|
|
198
|
+
* feat: work in progress on asset, application related state ops
|
|
199
|
+
|
|
200
|
+
* test: adding extra tests
|
|
201
|
+
|
|
202
|
+
* feat: extra tests and implementation wrappers around AppLocal
|
|
203
|
+
|
|
204
|
+
* chore: wip
|
|
205
|
+
|
|
206
|
+
* chore: update src/algopy_testing/op.py
|
|
207
|
+
|
|
208
|
+
Co-authored-by: Daniel McGregor <daniel.mcgregor@makerx.com.au>
|
|
209
|
+
|
|
210
|
+
* feat: adding acctparamsget; extra tests; pr comments
|
|
211
|
+
|
|
212
|
+
* refactor: adding final bits around AcctParamsGet; unit tests and fixes
|
|
213
|
+
|
|
214
|
+
* refactor: adding lookup by index to acct/app/asset get ops; tweaking ci
|
|
215
|
+
|
|
216
|
+
* refactor: addressing pr comments
|
|
217
|
+
|
|
218
|
+
* chore: fixing failing test
|
|
219
|
+
|
|
220
|
+
* refactor: simplifying test_context validation
|
|
221
|
+
|
|
222
|
+
* use specific enum types in box example with latest puya version
|
|
223
|
+
|
|
224
|
+
* include box types in algopy_testing
|
|
225
|
+
|
|
226
|
+
* fix inconsistent usage of field names on application fields use state total overrides when determining state totals reduce usage of `import algopy` in implementations
|
|
227
|
+
|
|
228
|
+
* expose fields property on application to aid debugging
|
|
229
|
+
|
|
230
|
+
* added section to CONTRIBUTING.md describing relationship between `algopy` and `algopy_testing`
|
|
231
|
+
|
|
232
|
+
* remove lazy algopy imports from utils remove some unnecessary ignores add TODO
|
|
233
|
+
|
|
234
|
+
* simplify abimethod and add TODO's
|
|
235
|
+
|
|
236
|
+
* add TODO for state totals
|
|
237
|
+
|
|
238
|
+
* add some tests (including currently failing ones) for app transactions
|
|
239
|
+
|
|
240
|
+
* feat: add arc4factory
|
|
241
|
+
|
|
242
|
+
* refactor: ensuring underlying _key is properly reflected on local/global states
|
|
243
|
+
|
|
244
|
+
* refactor: change guards for setting keys to explicitly check for None
|
|
245
|
+
|
|
246
|
+
* refactor: use implementation types in internal mappings
|
|
247
|
+
|
|
248
|
+
* refactor: remove usages of `import algopy` from op.py, remove explicit imports from typing module add TODO's
|
|
249
|
+
|
|
250
|
+
* test: use non-abstract contract base
|
|
251
|
+
|
|
252
|
+
* allow empty box prefix
|
|
253
|
+
|
|
254
|
+
* refactor
|
|
255
|
+
|
|
256
|
+
* use immutable param defaults
|
|
257
|
+
|
|
258
|
+
* fix: handle populating foreign arrays correctly for abi method calls
|
|
259
|
+
|
|
260
|
+
* refactor: remove lazy import algopy
|
|
261
|
+
|
|
262
|
+
* remove irrelevant comment
|
|
263
|
+
|
|
264
|
+
* initialize accounts correctly
|
|
265
|
+
|
|
266
|
+
* build: adding post install command into examples venv in hatch settings
|
|
267
|
+
|
|
268
|
+
* refactor: refine arc4 factory; add corresponding tests
|
|
269
|
+
|
|
270
|
+
* chore: adding the missing clear methods
|
|
271
|
+
|
|
272
|
+
* chore: merging everything from docs branch except docs changes
|
|
273
|
+
|
|
274
|
+
* chore: merge conflicts
|
|
275
|
+
|
|
276
|
+
* refactor: simplify txn implementations provide default values for unspecified txn fields
|
|
277
|
+
|
|
278
|
+
* docs: adding pep257 formatter; using reST docstrings style for context.py
|
|
279
|
+
|
|
280
|
+
* test: adding tests for scratch slots
|
|
281
|
+
|
|
282
|
+
* refactor: renaming set_txn_fields -> scoped_txn_fields
|
|
283
|
+
|
|
284
|
+
* chore: adding `amount` field and open question under TODO;
|
|
285
|
+
|
|
286
|
+
also adding adding get_box_map that reuses get_box but appends the bytes box_map prefix
|
|
287
|
+
|
|
288
|
+
* chore: bumping ruff
|
|
289
|
+
|
|
290
|
+
* refactor: adding context manager for lsig args setup (similar to algopy.Txn)
|
|
291
|
+
|
|
292
|
+
also running latest ruff - some rules are updated
|
|
293
|
+
|
|
294
|
+
* refactor: move helper classes into their own file
|
|
295
|
+
|
|
296
|
+
* refactor: simplify itxn loader
|
|
297
|
+
|
|
298
|
+
* refactor: isolate get_test_context to reduce circular imports
|
|
299
|
+
|
|
300
|
+
* chore: using multiprocessing in refresh test artifacts script
|
|
301
|
+
|
|
302
|
+
* refactor: adding tests for ITxn, ITxnCreate and GITxn, fixing related bugs
|
|
303
|
+
|
|
304
|
+
* refactor: default_creator -> default_sender; setting creator as default_sender
|
|
305
|
+
|
|
306
|
+
* chore: parsing name to op name in ITxn
|
|
307
|
+
|
|
308
|
+
* chore: updating default extension for mypy to use ms-python
|
|
309
|
+
|
|
310
|
+
* test: remove incorrect test and replace with TODO
|
|
311
|
+
|
|
312
|
+
* chore: add TODO about subroutine support
|
|
313
|
+
|
|
314
|
+
* add stricter type checks for primitives
|
|
315
|
+
|
|
316
|
+
* track when contracts are in a "creating" state or not
|
|
317
|
+
|
|
318
|
+
* todos
|
|
319
|
+
|
|
320
|
+
* refactor: moving GITxn class to itxn.py
|
|
321
|
+
|
|
322
|
+
* refactor: generate arc4 signatures from types added more robust system for tracking arc4 types removed unneeded functions on StaticArray
|
|
323
|
+
|
|
324
|
+
* only support native tuples when handling generic aliases in arc4 tuples
|
|
325
|
+
|
|
326
|
+
* refactor: 1/2 adding paged access to clear state program in txn fields
|
|
327
|
+
|
|
328
|
+
* refactor: consolidating txn and itxn related context attributes/methods
|
|
329
|
+
|
|
330
|
+
* minor refactors
|
|
331
|
+
|
|
332
|
+
* support arc4 structs
|
|
333
|
+
|
|
334
|
+
* refactor: simplify logic sig implementation, and remove mapping
|
|
335
|
+
|
|
336
|
+
* refactor: fix itxn op behaviour with program pages, and other array like fields
|
|
337
|
+
|
|
338
|
+
* refactor: simplify account properties
|
|
339
|
+
|
|
340
|
+
* refactor: move crypto ops into their own module
|
|
341
|
+
|
|
342
|
+
* refactor: move pure ops into their own module
|
|
343
|
+
|
|
344
|
+
* refactor: move other misc ops
|
|
345
|
+
|
|
346
|
+
* refactor: consolidating value generators; ledger and txn contexts;
|
|
347
|
+
|
|
348
|
+
* refactor: add active group/txn properties change local/global state storage to store values against the app, not the contract instance add UInt64Backed type to simplify serialization to/from int/bytes
|
|
349
|
+
|
|
350
|
+
* refactor: remove nested private modules, replace usages of get_test_context with lazy_context
|
|
351
|
+
|
|
352
|
+
* refactor: move inner transactions onto transaction group
|
|
353
|
+
|
|
354
|
+
* refactor: remove scoped_lsig_args
|
|
355
|
+
|
|
356
|
+
* refactor: remove maybe_active_app_id
|
|
357
|
+
|
|
358
|
+
* refactor: include bool in test for uint64
|
|
359
|
+
|
|
360
|
+
* refactor: ensure arc4 values always have fully parametrized types
|
|
361
|
+
|
|
362
|
+
* refactor: use _paramatize_type
|
|
363
|
+
|
|
364
|
+
* refactor: addressing TODOs
|
|
365
|
+
|
|
366
|
+
refactor: removing txn from method names inside txn context manager prop
|
|
367
|
+
|
|
368
|
+
chore: restoring initial pre-commit
|
|
369
|
+
|
|
370
|
+
refactor: expanding scoped_execution
|
|
371
|
+
|
|
372
|
+
chore: remove redundant fields
|
|
373
|
+
|
|
374
|
+
chore: addressing minor todos and removing the ones already addressed
|
|
375
|
+
|
|
376
|
+
* refactor: adding unit tests for global/local state with implicit keys
|
|
377
|
+
|
|
378
|
+
* refactor: improving handling of initial value for implicit global/local state keys
|
|
379
|
+
|
|
380
|
+
* test: extra test cases for accessing implicit/explicit keyed local/global state
|
|
381
|
+
|
|
382
|
+
* refactor: wip adding txn_group_for method
|
|
383
|
+
|
|
384
|
+
* chore: fix linting errors
|
|
385
|
+
|
|
386
|
+
* feat: continue with txn_group_for and add a test
|
|
387
|
+
|
|
388
|
+
* chore: remove scoped_txn_fields methods
|
|
389
|
+
|
|
390
|
+
* add some additional TODO's for scoped_execution
|
|
391
|
+
|
|
392
|
+
* remove TODO
|
|
393
|
+
|
|
394
|
+
* expand gaid TODO
|
|
395
|
+
|
|
396
|
+
* tweak op.exit implementation and add TODO
|
|
397
|
+
|
|
398
|
+
* remove arc4 property from AlgopyTestContext
|
|
399
|
+
|
|
400
|
+
* add more TODOs
|
|
401
|
+
|
|
402
|
+
* refactor: addressing TODOs; adding marketplace contract example (devrel bootcamps)
|
|
403
|
+
|
|
404
|
+
* test: fixing failing tests
|
|
405
|
+
|
|
406
|
+
## v0.2.2-beta.5 (2024-07-30)
|
|
407
|
+
|
|
408
|
+
### Documentation
|
|
409
|
+
|
|
410
|
+
* patch urls in README.md (#9) ([`eddf612`](https://github.com/algorandfoundation/algorand-python-testing/commit/eddf612b177a2acddf15d58be3f375e99fb6564b))
|
|
411
|
+
|
|
412
|
+
* chore: patch urls in README.md
|
|
413
|
+
|
|
414
|
+
* ci: relaxing rules around paths-ignore
|
|
415
|
+
|
|
416
|
+
* docs: patching old namespace name in readme
|
|
417
|
+
|
|
418
|
+
## v0.2.2-beta.4 (2024-07-25)
|
|
419
|
+
|
|
420
|
+
## v0.2.2-beta.3 (2024-07-25)
|
|
421
|
+
|
|
422
|
+
## v0.2.2-beta.2 (2024-07-25)
|
|
423
|
+
|
|
424
|
+
## v0.2.2-beta.1 (2024-07-24)
|
|
425
|
+
|
|
426
|
+
## v0.2.1 (2024-07-10)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: algorand-python-testing
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0b2
|
|
4
4
|
Summary: Algorand Python testing library
|
|
5
5
|
Project-URL: Documentation, https://github.com/algorandfoundation/puya/tree/main/algopy_testing#README.md
|
|
6
6
|
Project-URL: Issues, https://github.com/algorandfoundation/puya/issues
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
See which `algorand-python` stubs are implemented by the `algorand-python-testing` library. See the [Concepts](testing-guide/concepts.md#types-of-algopy-stub-implementations) section for more details on the implementation categories. Refer to the [`algorand-python` stubs API](api.md) for the full list of the stubs for which the `algorand-python-testing` library provides implementations referenced in the table below.
|
|
4
4
|
|
|
5
5
|
| Name | Implementation type |
|
|
6
|
-
|
|
6
|
+
|---------------------------------------------|---------------------|
|
|
7
7
|
| algopy.Account | Emulated |
|
|
8
8
|
| algopy.Application | Emulated |
|
|
9
9
|
| algopy.Asset | Emulated |
|
|
@@ -33,6 +33,7 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
|
|
|
33
33
|
| algopy.ensure_budget | Emulated |
|
|
34
34
|
| algopy.log | Emulated |
|
|
35
35
|
| algopy.logicsig | Emulated |
|
|
36
|
+
| algopy.size_of | Emulated |
|
|
36
37
|
| algopy.subroutine | Native |
|
|
37
38
|
| algopy.uenumerate | Native |
|
|
38
39
|
| algopy.urange | Native |
|
{algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/arc4.py
RENAMED
|
@@ -37,7 +37,7 @@ from _algopy_testing.utils import (
|
|
|
37
37
|
)
|
|
38
38
|
|
|
39
39
|
if typing.TYPE_CHECKING:
|
|
40
|
-
from collections.abc import Iterable, Iterator, Sequence
|
|
40
|
+
from collections.abc import Callable, Iterable, Iterator, Sequence
|
|
41
41
|
|
|
42
42
|
import algopy
|
|
43
43
|
|
|
@@ -56,24 +56,27 @@ __all__ = [
|
|
|
56
56
|
"Struct",
|
|
57
57
|
"Tuple",
|
|
58
58
|
"UFixedNxM",
|
|
59
|
-
"
|
|
59
|
+
"UInt8",
|
|
60
60
|
"UInt16",
|
|
61
|
-
"UInt256",
|
|
62
61
|
"UInt32",
|
|
63
|
-
"UInt512",
|
|
64
62
|
"UInt64",
|
|
65
|
-
"
|
|
63
|
+
"UInt128",
|
|
64
|
+
"UInt256",
|
|
65
|
+
"UInt512",
|
|
66
66
|
"UIntN",
|
|
67
67
|
"abi_call",
|
|
68
68
|
"arc4_create",
|
|
69
|
-
"arc4_update",
|
|
70
69
|
"arc4_signature",
|
|
70
|
+
"arc4_update",
|
|
71
71
|
"emit",
|
|
72
72
|
]
|
|
73
73
|
|
|
74
74
|
_ABI_LENGTH_SIZE = 2
|
|
75
75
|
_TBitSize = typing.TypeVar("_TBitSize", bound=int)
|
|
76
76
|
|
|
77
|
+
_P = typing.ParamSpec("_P")
|
|
78
|
+
_R = typing.TypeVar("_R")
|
|
79
|
+
|
|
77
80
|
|
|
78
81
|
class _TypeInfo:
|
|
79
82
|
@property
|
|
@@ -179,12 +182,22 @@ class _ABIEncoded(BytesBacked):
|
|
|
179
182
|
return hash(self.bytes)
|
|
180
183
|
|
|
181
184
|
|
|
182
|
-
def arc4_signature(signature: str, /) -> algopy.Bytes:
|
|
185
|
+
def arc4_signature(signature: str | Callable[_P, _R], /) -> algopy.Bytes:
|
|
183
186
|
"""Convert a signature to ARC4 bytes."""
|
|
184
187
|
import algopy
|
|
185
188
|
|
|
189
|
+
from _algopy_testing.decorators.arc4 import get_arc4_metadata
|
|
190
|
+
|
|
191
|
+
if isinstance(signature, str):
|
|
192
|
+
method_signature = signature
|
|
193
|
+
else:
|
|
194
|
+
arc4_signature = get_arc4_metadata(signature).arc4_signature
|
|
195
|
+
if arc4_signature is None:
|
|
196
|
+
raise ValueError("signature not found")
|
|
197
|
+
method_signature = arc4_signature
|
|
198
|
+
|
|
186
199
|
hashed_signature = SHA512.new(truncate="256")
|
|
187
|
-
hashed_signature.update(
|
|
200
|
+
hashed_signature.update(method_signature.encode("utf-8"))
|
|
188
201
|
return_value = hashed_signature.digest()[:4]
|
|
189
202
|
return algopy.Bytes(return_value)
|
|
190
203
|
|
|
@@ -1187,11 +1200,17 @@ def _find_bool(
|
|
|
1187
1200
|
) -> int:
|
|
1188
1201
|
"""Helper function to find consecutive booleans from current index in a tuple."""
|
|
1189
1202
|
until = 0
|
|
1203
|
+
is_looking_forward = delta > 0
|
|
1204
|
+
is_looking_backward = delta < 0
|
|
1190
1205
|
values_length = len(values) if isinstance(values, tuple | list) else values.length.value
|
|
1191
1206
|
while True:
|
|
1192
1207
|
curr = index + delta * until
|
|
1208
|
+
is_curr_at_end = curr == values_length - 1
|
|
1209
|
+
is_curr_at_start = curr == 0
|
|
1193
1210
|
if isinstance(values[curr], Bool):
|
|
1194
|
-
if
|
|
1211
|
+
if (is_looking_forward and not is_curr_at_end) or (
|
|
1212
|
+
is_looking_backward and not is_curr_at_start
|
|
1213
|
+
):
|
|
1195
1214
|
until += 1
|
|
1196
1215
|
else:
|
|
1197
1216
|
break
|
|
@@ -1204,11 +1223,17 @@ def _find_bool(
|
|
|
1204
1223
|
def _find_bool_types(values: typing.Sequence[_TypeInfo], index: int, delta: int) -> int:
|
|
1205
1224
|
"""Helper function to find consecutive booleans from current index in a tuple."""
|
|
1206
1225
|
until = 0
|
|
1226
|
+
is_looking_forward = delta > 0
|
|
1227
|
+
is_looking_backward = delta < 0
|
|
1207
1228
|
values_length = len(values)
|
|
1208
1229
|
while True:
|
|
1209
1230
|
curr = index + delta * until
|
|
1231
|
+
is_curr_at_end = curr == values_length - 1
|
|
1232
|
+
is_curr_at_start = curr == 0
|
|
1210
1233
|
if isinstance(values[curr], _BoolTypeInfo):
|
|
1211
|
-
if
|
|
1234
|
+
if (is_looking_forward and not is_curr_at_end) or (
|
|
1235
|
+
is_looking_backward and not is_curr_at_start
|
|
1236
|
+
):
|
|
1212
1237
|
until += 1
|
|
1213
1238
|
else:
|
|
1214
1239
|
break
|
|
@@ -1231,10 +1256,20 @@ def _compress_multiple_bool(value_list: list[Bool]) -> int:
|
|
|
1231
1256
|
return result
|
|
1232
1257
|
|
|
1233
1258
|
|
|
1259
|
+
def get_max_bytes_static_len(type_info: _TypeInfo) -> int | None:
|
|
1260
|
+
return _get_max_bytes_len_impl(type_info, static_size_only=True)
|
|
1261
|
+
|
|
1262
|
+
|
|
1234
1263
|
def _get_max_bytes_len(type_info: _TypeInfo) -> int:
|
|
1264
|
+
return _get_max_bytes_len_impl(type_info) or 0
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
def _get_max_bytes_len_impl(type_info: _TypeInfo, *, static_size_only: bool = False) -> int | None:
|
|
1235
1268
|
size = 0
|
|
1236
1269
|
if isinstance(type_info, _DynamicArrayTypeInfo):
|
|
1237
1270
|
size += _ABI_LENGTH_SIZE
|
|
1271
|
+
if static_size_only:
|
|
1272
|
+
return None
|
|
1238
1273
|
elif isinstance(type_info, _TupleTypeInfo | _StructTypeInfo | _StaticArrayTypeInfo):
|
|
1239
1274
|
i = 0
|
|
1240
1275
|
if isinstance(type_info, _TupleTypeInfo | _StructTypeInfo):
|
|
@@ -1251,12 +1286,18 @@ def _get_max_bytes_len(type_info: _TypeInfo) -> int:
|
|
|
1251
1286
|
if bool_num % 8 != 0:
|
|
1252
1287
|
size += 1
|
|
1253
1288
|
else:
|
|
1254
|
-
child_byte_size =
|
|
1289
|
+
child_byte_size = _get_max_bytes_len_impl(
|
|
1290
|
+
child_types[i], static_size_only=static_size_only
|
|
1291
|
+
)
|
|
1292
|
+
if child_byte_size is None:
|
|
1293
|
+
return None
|
|
1255
1294
|
size += child_byte_size
|
|
1256
1295
|
i += 1
|
|
1257
1296
|
elif isinstance(type_info, _UIntTypeInfo):
|
|
1258
1297
|
size = type_info.max_bytes_len
|
|
1259
1298
|
|
|
1299
|
+
elif static_size_only:
|
|
1300
|
+
return None
|
|
1260
1301
|
return size
|
|
1261
1302
|
|
|
1262
1303
|
|
{algorand_python_testing-0.5.0b1 → algorand_python_testing-0.6.0b2}/src/_algopy_testing/state/box.py
RENAMED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import typing
|
|
4
|
+
import warnings
|
|
4
5
|
|
|
5
6
|
import _algopy_testing
|
|
6
7
|
from _algopy_testing.constants import MAX_BOX_SIZE
|
|
7
8
|
from _algopy_testing.context_helpers import lazy_context
|
|
8
9
|
from _algopy_testing.mutable import set_attr_on_mutate, set_item_on_mutate
|
|
9
10
|
from _algopy_testing.state.utils import cast_from_bytes, cast_to_bytes
|
|
10
|
-
from _algopy_testing.utils import as_bytes, as_string
|
|
11
|
+
from _algopy_testing.utils import as_bytes, as_int64, as_string, get_static_size_of
|
|
11
12
|
|
|
12
13
|
_TKey = typing.TypeVar("_TKey")
|
|
13
14
|
_TValue = typing.TypeVar("_TValue")
|
|
@@ -38,6 +39,45 @@ class Box(typing.Generic[_TValue]):
|
|
|
38
39
|
def __bool__(self) -> bool:
|
|
39
40
|
return lazy_context.ledger.box_exists(self.app_id, self.key)
|
|
40
41
|
|
|
42
|
+
def create(self, *, size: algopy.UInt64 | int | None = None) -> bool:
|
|
43
|
+
missing_size_err_msg = (
|
|
44
|
+
f"{self._type} does not have a fixed byte size. Please specify a size argument"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
size_arg = None if size is None else as_int64(size)
|
|
48
|
+
content_type_size = get_static_size_of(self._type)
|
|
49
|
+
|
|
50
|
+
if content_type_size is None and size_arg is None:
|
|
51
|
+
raise ValueError(missing_size_err_msg)
|
|
52
|
+
if content_type_size is not None and size_arg is not None:
|
|
53
|
+
if size_arg < content_type_size:
|
|
54
|
+
warnings.warn(
|
|
55
|
+
f"Box size should not be less than {content_type_size}",
|
|
56
|
+
stacklevel=2,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
if size_arg > content_type_size:
|
|
60
|
+
warnings.warn(
|
|
61
|
+
f"Size is set to {size_arg} but {self._type} has a fixed size of {content_type_size}", # noqa: E501
|
|
62
|
+
stacklevel=2,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
size_int = size_arg if size_arg is not None else content_type_size
|
|
66
|
+
assert size_int is not None, missing_size_err_msg
|
|
67
|
+
|
|
68
|
+
if size_int > MAX_BOX_SIZE:
|
|
69
|
+
raise ValueError(f"Box size cannot exceed {MAX_BOX_SIZE}")
|
|
70
|
+
|
|
71
|
+
box_exists = lazy_context.ledger.box_exists(self.app_id, self.key)
|
|
72
|
+
if box_exists:
|
|
73
|
+
if self.length == size_int:
|
|
74
|
+
return False
|
|
75
|
+
else:
|
|
76
|
+
raise ValueError(f"Box already exists with a different size: {self.length}")
|
|
77
|
+
|
|
78
|
+
lazy_context.ledger.set_box(self.app_id, self.key, b"\x00" * size_int)
|
|
79
|
+
return True
|
|
80
|
+
|
|
41
81
|
@property
|
|
42
82
|
def key(self) -> algopy.Bytes:
|
|
43
83
|
if not self._key:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from _algopy_testing.utilities.budget import OpUpFeeSource, ensure_budget
|
|
2
2
|
from _algopy_testing.utilities.log import log
|
|
3
|
+
from _algopy_testing.utilities.size_of import size_of
|
|
3
4
|
|
|
4
|
-
__all__ = ["OpUpFeeSource", "ensure_budget", "log"]
|
|
5
|
+
__all__ = ["OpUpFeeSource", "ensure_budget", "log", "size_of"]
|