algorand-python-testing 0.6.0b2__tar.gz → 1.0.0b1__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-1.0.0b1/.github/workflows/ci.yaml +77 -0
- algorand_python_testing-1.0.0b1/CHANGELOG.md +258 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/PKG-INFO +2 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/pyproject.toml +25 -5
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/arc4.py +22 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/contract.py +2 -2
- algorand_python_testing-1.0.0b1/src/_algopy_testing/serialize.py +151 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/state/box.py +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/state/global_state.py +6 -7
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/state/local_state.py +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/state/utils.py +10 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_tuple.py +15 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +420 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +107 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +9 -21
- algorand_python_testing-1.0.0b1/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +1029 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +1586 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/Contract.approval.teal +12 -17
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/Contract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/Contract.arc56.json +347 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +718 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +16 -23
- algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +162 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +274 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +4 -12
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/BoxContract/data/BoxContract.arc56.json +145 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +102 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +189 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +480 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +117 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +1090 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +1740 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/StateMutations/data/StateMutations.arc56.json +264 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/contract.py +15 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +320 -175
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +563 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +865 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +21 -21
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +102 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +261 -176
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +381 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +618 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +12 -8
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +512 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +40 -40
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +272 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +13 -13
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +104 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +51 -51
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +350 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +8 -8
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +118 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +72 -72
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +1 -1
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +319 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +138 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +394 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Tuples/contract.py +11 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Tuples/data/TuplesContract.approval.teal +42 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Tuples/data/TuplesContract.arc32.json +50 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Tuples/data/TuplesContract.arc56.json +102 -0
- algorand_python_testing-1.0.0b1/tests/artifacts/Tuples/data/TuplesContract.clear.teal +7 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/common.py +4 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_box.py +57 -45
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_box_map.py +89 -57
- algorand_python_testing-1.0.0b1/tests/state/test_global_state.py +310 -0
- algorand_python_testing-1.0.0b1/tests/state/test_local_state.py +181 -0
- algorand_python_testing-1.0.0b1/tests/value_generators/__init__.py +0 -0
- algorand_python_testing-0.6.0b2/.github/workflows/ci.yaml +0 -47
- algorand_python_testing-0.6.0b2/CHANGELOG.md +0 -426
- algorand_python_testing-0.6.0b2/src/_algopy_testing/serialize.py +0 -158
- algorand_python_testing-0.6.0b2/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -1029
- algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -162
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -528
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -359
- algorand_python_testing-0.6.0b2/tests/state/test_global_state.py +0 -133
- algorand_python_testing-0.6.0b2/tests/state/test_local_state.py +0 -49
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.coveragerc +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.editorconfig +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.github/dependabot.yml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.github/pull_request_template.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.github/workflows/cd.yaml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.github/workflows/gh-pages.yaml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.gitignore +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.pre-commit-config.yaml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.vscode/extensions.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.vscode/launch.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/.vscode/settings.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/CONTRIBUTING.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/LICENSE +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/README.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/Makefile +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/_static/custom.css +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/algopy.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/api.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/conf.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/coverage.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/examples.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/faq.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/index.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/make.bat +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/arc4-types.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/avm-types.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/concepts.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/contract-testing.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/index.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/opcodes.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/signature-testing.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/state-management.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/subroutines.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/docs/testing-guide/transactions.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/README.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/auction/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/auction/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/auction/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/htlc_logicsig/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/htlc_logicsig/signature.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/htlc_logicsig/test_signature.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/marketplace/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/marketplace/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/marketplace/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/proof_of_attendance/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/proof_of_attendance/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/proof_of_attendance/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/scratch_storage/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/scratch_storage/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/scratch_storage/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/simple_voting/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/simple_voting/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/simple_voting/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/zk_whitelist/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/zk_whitelist/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/examples/zk_whitelist/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/scripts/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/scripts/check_stubs_cov.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/scripts/refresh_test_artifacts.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/scripts/validate_examples.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/compiled.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/constants.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/context.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/context_helpers/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/context_helpers/txn_context.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/decorators/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/decorators/arc4.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/decorators/subroutine.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/enums.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/gtxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/itxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/itxn_loader.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/account.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/application.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/asset.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/logicsig.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/template_variable.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/txn_fields.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/mutable.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/block.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/constants.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/crypto.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/global_values.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/itxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/misc.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/pure.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/op/txn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/primitives/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/primitives/array.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/primitives/biguint.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/primitives/bytes.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/primitives/string.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/primitives/uint64.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/protocols.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/state/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/utilities/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/utilities/budget.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/utilities/log.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/utilities/size_of.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/utils.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/value_generators/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/value_generators/arc4.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/value_generators/avm.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/value_generators/txn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy/arc4.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy/gtxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy/itxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy/op.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy/py.typed +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/templates/.macros.j2 +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/templates/.release_notes.md.j2 +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/templates/CHANGELOG.md.j2 +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/conftest.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_abi_call.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_address.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_arc4_method_signature.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_bool.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_dynamic_array.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_dynamic_bytes.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_emit.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_static_array.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_string.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_struct.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_ufixednxm.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/arc4/test_uintn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/immutable.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/static_size.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Arrays/uint64.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/BoxContract/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/BoxContract/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Contains/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Contains/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Contains/data/MyContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CreatedAppAsset/other.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CryptoOps/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CryptoOps/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/GlobalStateValidator/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/MiscellaneousOps/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateMutations/statemutations.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts → algorand_python_testing-1.0.0b1/tests/artifacts/Tuples}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/contexts → algorand_python_testing-1.0.0b1/tests/artifacts}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/conftest.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/models → algorand_python_testing-1.0.0b1/tests/contexts}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/primitives → algorand_python_testing-1.0.0b1/tests/models}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_asset.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_box_ref.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_uenumerate.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/models/test_urange.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/state → algorand_python_testing-1.0.0b1/tests/primitives}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/primitives/conftest.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/primitives/test_biguint.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/primitives/test_bytes.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/primitives/test_string.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/primitives/test_uint64.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/utilities → algorand_python_testing-1.0.0b1/tests/state}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/state/conftest.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/state/test_mutations.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/test_array.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/test_context.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/test_miscellaneous_op.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/test_op.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/util.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/value_generators → algorand_python_testing-1.0.0b1/tests/utilities}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/utilities/conftest.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/utilities/test_log.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/utilities/test_size_of.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/tests/value_generators/test_avm.py +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: Check Python Code (algopy_testing)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
pull_request:
|
|
6
|
+
schedule:
|
|
7
|
+
- cron: "0 8 * * 1" # Each monday 8 AM UTC
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
check-python:
|
|
11
|
+
runs-on: "ubuntu-latest"
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout source code
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Set up Python 3.12
|
|
17
|
+
uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.12"
|
|
20
|
+
cache: "pip"
|
|
21
|
+
|
|
22
|
+
- name: Install hatch
|
|
23
|
+
run: pip install hatch
|
|
24
|
+
|
|
25
|
+
- name: Start LocalNet
|
|
26
|
+
run: pipx install algokit && algokit localnet start
|
|
27
|
+
|
|
28
|
+
- name: Check pre-commits
|
|
29
|
+
run: hatch run check
|
|
30
|
+
|
|
31
|
+
- name: Check pre-commits (examples)
|
|
32
|
+
run: hatch run examples:check
|
|
33
|
+
|
|
34
|
+
- name: Validate examples folder
|
|
35
|
+
run: hatch run validate_examples
|
|
36
|
+
|
|
37
|
+
- name: Check wheels can be built
|
|
38
|
+
run: hatch build
|
|
39
|
+
|
|
40
|
+
- name: Check doctests
|
|
41
|
+
run: hatch run docs:test
|
|
42
|
+
|
|
43
|
+
test-python-matrix:
|
|
44
|
+
runs-on: "ubuntu-latest"
|
|
45
|
+
strategy:
|
|
46
|
+
matrix:
|
|
47
|
+
python-version: ["3.12", "3.13"]
|
|
48
|
+
steps:
|
|
49
|
+
- name: Checkout source code
|
|
50
|
+
uses: actions/checkout@v4
|
|
51
|
+
|
|
52
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
53
|
+
uses: actions/setup-python@v5
|
|
54
|
+
with:
|
|
55
|
+
python-version: ${{ matrix.python-version }}
|
|
56
|
+
cache: "pip"
|
|
57
|
+
|
|
58
|
+
- name: Install hatch
|
|
59
|
+
run: pip install hatch
|
|
60
|
+
|
|
61
|
+
- name: Start LocalNet
|
|
62
|
+
run: pipx install algokit && algokit localnet start
|
|
63
|
+
|
|
64
|
+
- name: Run tests with Python ${{ matrix.python-version }}
|
|
65
|
+
run: hatch run test.py${{ matrix.python-version }}:ci
|
|
66
|
+
|
|
67
|
+
- name: Run examples tests with Python ${{ matrix.python-version }}
|
|
68
|
+
run: hatch run examples.py${{ matrix.python-version }}:tests
|
|
69
|
+
|
|
70
|
+
- name: Upload coverage artifacts
|
|
71
|
+
uses: actions/upload-artifact@v4
|
|
72
|
+
if: ${{ matrix.python-version == '3.13' }}
|
|
73
|
+
with:
|
|
74
|
+
name: coverage-reports
|
|
75
|
+
path: |
|
|
76
|
+
./coverage.xml
|
|
77
|
+
retention-days: 14
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
## v1.0.0-beta.1 (2025-07-16)
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* support storing tuples in state ([`911cd3c`](https://github.com/algorandfoundation/algorand-python-testing/commit/911cd3cb54f69f8fdded5c677f32c1969e8827bf))
|
|
7
|
+
|
|
8
|
+
## v0.6.0-beta.3 (2025-05-16)
|
|
9
|
+
|
|
10
|
+
### Bug fixes
|
|
11
|
+
|
|
12
|
+
* fixes type checking of tuples with primitive types ([`e971ad6`](https://github.com/algorandfoundation/algorand-python-testing/commit/e971ad6b125f269cd0874c09d58d8962f7622f8d))
|
|
13
|
+
|
|
14
|
+
Adds checks to ensure that type validation applies to classes only.
|
|
15
|
+
|
|
16
|
+
## v0.6.0-beta.2 (2025-05-15)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* add stubs for box create function ([`1fe6fe5`](https://github.com/algorandfoundation/algorand-python-testing/commit/1fe6fe55358630a6abea2f69406821cb6031a4d5))
|
|
21
|
+
|
|
22
|
+
## v0.6.0-beta.1 (2025-05-09)
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* 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))
|
|
27
|
+
|
|
28
|
+
### Bug fixes
|
|
29
|
+
|
|
30
|
+
* ensure size_of is exported from algopy module ([`01c055a`](https://github.com/algorandfoundation/algorand-python-testing/commit/01c055a4d2bd1fe17324bd91f7a83810900baa4e))
|
|
31
|
+
|
|
32
|
+
### Documentation
|
|
33
|
+
|
|
34
|
+
* include size_of in coverage doc ([`2c73646`](https://github.com/algorandfoundation/algorand-python-testing/commit/2c7364626357844437fd80b6039c112a87b277bb))
|
|
35
|
+
|
|
36
|
+
## v0.5.0 (2025-02-20)
|
|
37
|
+
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
* accept abi method reference as a parameter to arc4_signature method ([`a1cb365`](https://github.com/algorandfoundation/algorand-python-testing/commit/a1cb365f2be1eb1965d9b86a5193498772131412))
|
|
41
|
+
|
|
42
|
+
## v0.5.0-beta.1 (2025-02-19)
|
|
43
|
+
|
|
44
|
+
### Features
|
|
45
|
+
|
|
46
|
+
* support `algopy.Array` and `algopy.ImmutableArray` from algorand-python 2.7 ([`fd8d19f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fd8d19f25b9f8e0a48f58ae8f45e4d546b965f83))
|
|
47
|
+
|
|
48
|
+
* support mocking new `algopy.op` functions `falcon_verify`, `mimc`, `online_stake`, `sumhash512` and `VoterParamsGet` ([`83ddcbb`](https://github.com/algorandfoundation/algorand-python-testing/commit/83ddcbb8f83f72a5e0bc247c14e250c55496febf))
|
|
49
|
+
|
|
50
|
+
* update `algopy.op.Block` with fields added in AVM 11 ([`90d857d`](https://github.com/algorandfoundation/algorand-python-testing/commit/90d857d248d7b1b5a4b3791ccb0e10c20c478325))
|
|
51
|
+
|
|
52
|
+
* update `algopy.op.AcctParamsGet` with fields added in AVM 11 ([`059b669`](https://github.com/algorandfoundation/algorand-python-testing/commit/059b6690441e99a709fc47691bcb0e4f2453cd26))
|
|
53
|
+
|
|
54
|
+
* add `avm_version` to `algopy.Contract` class options ([`fc53b0f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fc53b0fda5f0d22b6dbb99abf1ba024284fa52a4))
|
|
55
|
+
|
|
56
|
+
* update `algopy.op.Global` with fields added in AVM 11 ([`0cc9807`](https://github.com/algorandfoundation/algorand-python-testing/commit/0cc9807bbfc7084d54425c40889065ae2fd7d856))
|
|
57
|
+
|
|
58
|
+
* add `algopy.arc4.Struct._replace` introduced in algorand-python 2.5.0 ([`75d6847`](https://github.com/algorandfoundation/algorand-python-testing/commit/75d6847b80498d637c7f0b0e3915afd7af6f132c))
|
|
59
|
+
|
|
60
|
+
* add inline option to subroutine decorator ([`2cc15b3`](https://github.com/algorandfoundation/algorand-python-testing/commit/2cc15b3dc706eb8585b9658bf67b38da215e2e38))
|
|
61
|
+
|
|
62
|
+
### Bug fixes
|
|
63
|
+
|
|
64
|
+
* add missing mappings for `algopy.op.Txn` members ([`fddfe6f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fddfe6f7ff9d6d4e0434f65e19dd0b0cf2aef6bd))
|
|
65
|
+
|
|
66
|
+
* include `ARC4Contract` in `algopy.arc4` namespace ([`f19d46f`](https://github.com/algorandfoundation/algorand-python-testing/commit/f19d46f5663c9fbe4e9b2e8c3bd1e2f7ddc89c3a))
|
|
67
|
+
|
|
68
|
+
* update `algopy.CompiledContract` and `algopy.CompiledLogicSig` to be NamedTuples ([`84be408`](https://github.com/algorandfoundation/algorand-python-testing/commit/84be4082348e3d89b40a65a69b599594a5531828))
|
|
69
|
+
|
|
70
|
+
* added missing __contains__ implementation for `algopy.Bytes` ([`8b2efa2`](https://github.com/algorandfoundation/algorand-python-testing/commit/8b2efa20b37e3043ac6a228d6706da4203373a7e))
|
|
71
|
+
|
|
72
|
+
### Documentation
|
|
73
|
+
|
|
74
|
+
* fix doctest example for `algopy.EllipticCurve` ([`7d0bb0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/7d0bb0dfe9a5ea2d67b130fa300fb80cef52fda5))
|
|
75
|
+
|
|
76
|
+
## v0.4.1 (2024-09-03)
|
|
77
|
+
|
|
78
|
+
## v0.4.1-beta.1 (2024-09-03)
|
|
79
|
+
|
|
80
|
+
### Bug fixes
|
|
81
|
+
|
|
82
|
+
* ability to pass kw_only flag to dataclass when defining struct subclass ([`24bcf9d`](https://github.com/algorandfoundation/algorand-python-testing/commit/24bcf9d8af34eb2675ddf85ce9d71802f82f2d6a))
|
|
83
|
+
|
|
84
|
+
* ability to pass kw_only flag to dataclass when defining struct subclass ([`24bcf9d`](https://github.com/algorandfoundation/algorand-python-testing/commit/24bcf9d8af34eb2675ddf85ce9d71802f82f2d6a))
|
|
85
|
+
|
|
86
|
+
## v0.4.0 (2024-08-27)
|
|
87
|
+
|
|
88
|
+
## v0.4.0-beta.2 (2024-08-27)
|
|
89
|
+
|
|
90
|
+
## v0.4.0-beta.1 (2024-08-27)
|
|
91
|
+
|
|
92
|
+
### Features
|
|
93
|
+
|
|
94
|
+
* 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))
|
|
95
|
+
|
|
96
|
+
* expand accepted types when interacting with accounts, applications and assets ([`f448a97`](https://github.com/algorandfoundation/algorand-python-testing/commit/f448a97cb154c9f90ecf42c599b240f12928af20))
|
|
97
|
+
|
|
98
|
+
wip
|
|
99
|
+
|
|
100
|
+
* replaced `account_exists` with `account_is_funded` as the later is more useful ([`4d08690`](https://github.com/algorandfoundation/algorand-python-testing/commit/4d086903eb93a70ce1d485cdd7b12d8472ef16db))
|
|
101
|
+
|
|
102
|
+
### Bug fixes
|
|
103
|
+
|
|
104
|
+
* use correct type for Globals.caller_application_id ([`a30d85a`](https://github.com/algorandfoundation/algorand-python-testing/commit/a30d85a4416dfc2c5d901f3ace2265384ef60c01))
|
|
105
|
+
|
|
106
|
+
* do not allow specifying `address` for applications, it is derived from the app_id ([`00fe1bc`](https://github.com/algorandfoundation/algorand-python-testing/commit/00fe1bc8ea247dcc36b01154db36b984b151e396))
|
|
107
|
+
|
|
108
|
+
* do not treat asset and application ids as possible foreign array indexes ([`94a989f`](https://github.com/algorandfoundation/algorand-python-testing/commit/94a989f77169da2ae437c629cd5f4d8a872263f6))
|
|
109
|
+
|
|
110
|
+
* removed incorrect deduction in `algopy.op.balance` ([`76e67c5`](https://github.com/algorandfoundation/algorand-python-testing/commit/76e67c5e3dd1cda388a2a948d452ba89805add6a))
|
|
111
|
+
|
|
112
|
+
* ensure all comparable types return `NotImplemented` when a comparison is not possible ([`b055fa6`](https://github.com/algorandfoundation/algorand-python-testing/commit/b055fa68531e0b7923773ec10c2097a3d64b9dbe))
|
|
113
|
+
|
|
114
|
+
* `arc4_prefix` annotated to also accept `algopy.Bytes` ([`40328ca`](https://github.com/algorandfoundation/algorand-python-testing/commit/40328ca3701b3e255193e206e8a7b1bdb441a346))
|
|
115
|
+
|
|
116
|
+
### Documentation
|
|
117
|
+
|
|
118
|
+
* include usage of `algopy_testing_context` in README.md quick start ([`4702f60`](https://github.com/algorandfoundation/algorand-python-testing/commit/4702f60cfe7d09956a5ae6dbdcd72da29fdda808))
|
|
119
|
+
|
|
120
|
+
## v0.3.0 (2024-08-22)
|
|
121
|
+
|
|
122
|
+
## v0.3.0-beta.10 (2024-08-22)
|
|
123
|
+
|
|
124
|
+
### Documentation
|
|
125
|
+
|
|
126
|
+
* refining docs ([`b714783`](https://github.com/algorandfoundation/algorand-python-testing/commit/b714783b4cf15d31f91dc1c776d304bd2eb9a154))
|
|
127
|
+
|
|
128
|
+
* note on future refinement ([`b714783`](https://github.com/algorandfoundation/algorand-python-testing/commit/b714783b4cf15d31f91dc1c776d304bd2eb9a154))
|
|
129
|
+
|
|
130
|
+
* further refining the api section ([`b714783`](https://github.com/algorandfoundation/algorand-python-testing/commit/b714783b4cf15d31f91dc1c776d304bd2eb9a154))
|
|
131
|
+
|
|
132
|
+
## v0.3.0-beta.9 (2024-08-22)
|
|
133
|
+
|
|
134
|
+
### Bug fixes
|
|
135
|
+
|
|
136
|
+
* Make Global.latest_timestamp constant for a transaction ([`51c2817`](https://github.com/algorandfoundation/algorand-python-testing/commit/51c2817c262d686996e2aa4d639d259409dc8d43))
|
|
137
|
+
|
|
138
|
+
## v0.3.0-beta.8 (2024-08-22)
|
|
139
|
+
|
|
140
|
+
### Features
|
|
141
|
+
|
|
142
|
+
* include ARC4 results in log, and handle > 15 ARC4 arguments ([`fd83ee8`](https://github.com/algorandfoundation/algorand-python-testing/commit/fd83ee8525a393d4a1a66f20acdb661906d84b51))
|
|
143
|
+
|
|
144
|
+
## v0.3.0-beta.7 (2024-08-21)
|
|
145
|
+
|
|
146
|
+
## v0.3.0-beta.6 (2024-08-21)
|
|
147
|
+
|
|
148
|
+
### Documentation
|
|
149
|
+
|
|
150
|
+
* documentation for initial stable release of `algorand-python-testing` ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
151
|
+
|
|
152
|
+
docs: wip
|
|
153
|
+
|
|
154
|
+
* refining docs (wip) ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
155
|
+
|
|
156
|
+
* revamping docs with latest features ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
157
|
+
|
|
158
|
+
* minor consistency with main readme; patching doctests ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
159
|
+
|
|
160
|
+
* removing the box from examples ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
161
|
+
|
|
162
|
+
* refine op codes section ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
163
|
+
|
|
164
|
+
* addressing docs pr comments ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
165
|
+
|
|
166
|
+
## v0.3.0-beta.5 (2024-08-21)
|
|
167
|
+
|
|
168
|
+
### Features
|
|
169
|
+
|
|
170
|
+
* add __str__ and __repr__ implementations for ARC4 types ([`1f1f2ea`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
171
|
+
|
|
172
|
+
### Bug fixes
|
|
173
|
+
|
|
174
|
+
* ensure mutable types (ARC4 tuple, array and structs) have their changes propagated back to container-like types (global/local state, boxes, ARC4 mutable types) ([`1f1f2ea`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
175
|
+
|
|
176
|
+
* add default __eq__ implementation for ARC4 types ([`1f1f2ea`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
177
|
+
|
|
178
|
+
* ensure mutable types (ARC4 tuple, array and structs) have their changes propagated back to container-like types (global/local state, boxes, ARC4 mutable types) ([`1f1f2ea`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
179
|
+
|
|
180
|
+
## v0.3.0-beta.4 (2024-08-21)
|
|
181
|
+
|
|
182
|
+
### Features
|
|
183
|
+
|
|
184
|
+
* 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))
|
|
185
|
+
|
|
186
|
+
### Bug fixes
|
|
187
|
+
|
|
188
|
+
* fix equality implementation for Account, to allow comparison with arc4.Address ([`6ec2dd4`](https://github.com/algorandfoundation/algorand-python-testing/commit/6ec2dd4f2b4119987a5ea7c3c670bdd554c4fe30))
|
|
189
|
+
|
|
190
|
+
* ensure new Account's have field defaults populated ([`54432b0`](https://github.com/algorandfoundation/algorand-python-testing/commit/54432b03cef13008b16fab84dcc250824e2e2da1))
|
|
191
|
+
|
|
192
|
+
* ensure Global.current_application* properties match AVM ([`ae84ae2`](https://github.com/algorandfoundation/algorand-python-testing/commit/ae84ae27e49ef977babe7abb10d8994446d6b5f7))
|
|
193
|
+
|
|
194
|
+
* when generating app/asset id's skip any that might already be reserved ([`0bb5eba`](https://github.com/algorandfoundation/algorand-python-testing/commit/0bb5eba3ec75ffdb16cfbac5b3c4837f64f8a58a))
|
|
195
|
+
|
|
196
|
+
### Documentation
|
|
197
|
+
|
|
198
|
+
* integrating pydoclint; formatting docs; removing docs from stub implementation ([`d729bf9`](https://github.com/algorandfoundation/algorand-python-testing/commit/d729bf9b70ef885cd1b2ef705c4f5e2582d853ab))
|
|
199
|
+
|
|
200
|
+
## v0.3.0-beta.3 (2024-08-16)
|
|
201
|
+
|
|
202
|
+
## v0.3.0-beta.2 (2024-08-16)
|
|
203
|
+
|
|
204
|
+
### Features
|
|
205
|
+
|
|
206
|
+
* implement gaid op ([`71801f0`](https://github.com/algorandfoundation/algorand-python-testing/commit/71801f01e49b683d81fa46d2ddb1c8aaf38b89f2))
|
|
207
|
+
|
|
208
|
+
### Bug fixes
|
|
209
|
+
|
|
210
|
+
* added mock implementations for new algopy functions, add util for raising consistent mockable method errors ([`71801f0`](https://github.com/algorandfoundation/algorand-python-testing/commit/71801f01e49b683d81fa46d2ddb1c8aaf38b89f2))
|
|
211
|
+
|
|
212
|
+
## v0.3.0-beta.1 (2024-08-14)
|
|
213
|
+
|
|
214
|
+
### Features
|
|
215
|
+
|
|
216
|
+
* deferred app calls, modular test context, refined access to value generators, numerous fixes/improvements ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
217
|
+
|
|
218
|
+
* work in progress on asset, application related state ops ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
219
|
+
|
|
220
|
+
* extra tests and implementation wrappers around AppLocal ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
221
|
+
|
|
222
|
+
chore: wip
|
|
223
|
+
|
|
224
|
+
* adding acctparamsget; extra tests; pr comments ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
225
|
+
|
|
226
|
+
* add arc4factory ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
227
|
+
|
|
228
|
+
* continue with txn_group_for and add a test ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
229
|
+
|
|
230
|
+
### Bug fixes
|
|
231
|
+
|
|
232
|
+
* handle populating foreign arrays correctly for abi method calls ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
233
|
+
|
|
234
|
+
### Documentation
|
|
235
|
+
|
|
236
|
+
* adding pep257 formatter; using reST docstrings style for context.py ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
237
|
+
|
|
238
|
+
## v0.2.2-beta.5 (2024-07-30)
|
|
239
|
+
|
|
240
|
+
### Documentation
|
|
241
|
+
|
|
242
|
+
* patch urls in README.md ([`eddf612`](https://github.com/algorandfoundation/algorand-python-testing/commit/eddf612b177a2acddf15d58be3f375e99fb6564b))
|
|
243
|
+
|
|
244
|
+
* patching old namespace name in readme ([`eddf612`](https://github.com/algorandfoundation/algorand-python-testing/commit/eddf612b177a2acddf15d58be3f375e99fb6564b))
|
|
245
|
+
|
|
246
|
+
## v0.2.2-beta.4 (2024-07-25)
|
|
247
|
+
|
|
248
|
+
## v0.2.2-beta.3 (2024-07-25)
|
|
249
|
+
|
|
250
|
+
## v0.2.2-beta.2 (2024-07-25)
|
|
251
|
+
|
|
252
|
+
## v0.2.2-beta.1 (2024-07-24)
|
|
253
|
+
|
|
254
|
+
## v0.2.1 (2024-07-10)
|
|
255
|
+
|
|
256
|
+
### Bug fixes
|
|
257
|
+
|
|
258
|
+
* patching helper scripts; adding pre-commit; bumping compiler version ([`8d43492`](https://github.com/algorandfoundation/algorand-python-testing/commit/8d43492adfeb53fd2824f0ea812a9c30bf6bb339))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: algorand-python-testing
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0b1
|
|
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
|
|
@@ -12,6 +12,7 @@ Classifier: Development Status :: 4 - Beta
|
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
16
|
Classifier: Topic :: Software Development :: Testing
|
|
16
17
|
Requires-Python: >=3.12
|
|
17
18
|
Requires-Dist: algorand-python>=2.0
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "algorand-python-testing"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "1.0.0-beta.1"
|
|
8
8
|
description = 'Algorand Python testing library'
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -18,6 +18,7 @@ classifiers = [
|
|
|
18
18
|
"Topic :: Software Development :: Testing",
|
|
19
19
|
"Programming Language :: Python",
|
|
20
20
|
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Programming Language :: Python :: 3.13",
|
|
21
22
|
]
|
|
22
23
|
dependencies = [
|
|
23
24
|
# ==========================================================================
|
|
@@ -43,9 +44,6 @@ allow-direct-references = true
|
|
|
43
44
|
[tool.hatch.build.targets.wheel]
|
|
44
45
|
packages = ["src/algopy", 'src/algopy_testing', 'src/_algopy_testing']
|
|
45
46
|
|
|
46
|
-
[[tool.hatch.envs.all.matrix]]
|
|
47
|
-
python = ["3.12"]
|
|
48
|
-
|
|
49
47
|
# default dev environment
|
|
50
48
|
[tool.hatch.envs.default]
|
|
51
49
|
type = "virtual"
|
|
@@ -121,9 +119,29 @@ path = ".venv.cicd"
|
|
|
121
119
|
dependencies = [
|
|
122
120
|
"python-semantic-release>=9.8.5",
|
|
123
121
|
]
|
|
122
|
+
|
|
124
123
|
[tool.hatch.envs.cicd.scripts]
|
|
125
124
|
clean_dist = "rm -rf dist"
|
|
126
125
|
|
|
126
|
+
# Testing environment with matrix
|
|
127
|
+
[tool.hatch.envs.test]
|
|
128
|
+
dependencies = [
|
|
129
|
+
"pytest>=7.4",
|
|
130
|
+
"pytest-mock>=3.10.0",
|
|
131
|
+
"pytest-xdist[psutil]>=3.3",
|
|
132
|
+
"pytest-cov>=4.1.0",
|
|
133
|
+
"py-algorand-sdk>=2.4.0",
|
|
134
|
+
"algokit-utils>=3.0.0",
|
|
135
|
+
"puyapy>=3.0",
|
|
136
|
+
]
|
|
137
|
+
|
|
138
|
+
[tool.hatch.envs.test.scripts]
|
|
139
|
+
run = "pytest --cov=src --cov-report=xml {args}"
|
|
140
|
+
ci = "pytest --cov=src --cov-report=xml --cov-report=term"
|
|
141
|
+
|
|
142
|
+
[[tool.hatch.envs.test.matrix]]
|
|
143
|
+
python = ["3.12", "3.13"]
|
|
144
|
+
|
|
127
145
|
# docs environment
|
|
128
146
|
[tool.hatch.envs.docs]
|
|
129
147
|
path = ".venv.docs"
|
|
@@ -159,7 +177,6 @@ dev = "hatch run docs:test && sphinx-autobuild docs docs/_build"
|
|
|
159
177
|
[tool.hatch.envs.examples]
|
|
160
178
|
type = "virtual"
|
|
161
179
|
path = ".venv.examples"
|
|
162
|
-
python = "3.12"
|
|
163
180
|
dev-mode = true
|
|
164
181
|
skip-install = false
|
|
165
182
|
post-install-commands = [
|
|
@@ -188,6 +205,9 @@ check = [
|
|
|
188
205
|
"hatch run mypy examples",
|
|
189
206
|
]
|
|
190
207
|
|
|
208
|
+
[[tool.hatch.envs.examples.matrix]]
|
|
209
|
+
python = ["3.12", "3.13"]
|
|
210
|
+
|
|
191
211
|
# tool configurations
|
|
192
212
|
[tool.black]
|
|
193
213
|
line-length = 99
|
{algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/arc4.py
RENAMED
|
@@ -742,7 +742,9 @@ class Address(StaticArray[Byte, typing.Literal[32]]):
|
|
|
742
742
|
|
|
743
743
|
|
|
744
744
|
class _DynamicArrayTypeInfo(_TypeInfo):
|
|
745
|
-
|
|
745
|
+
_subclass_type: Callable[[], type] | None
|
|
746
|
+
|
|
747
|
+
def __init__(self, item_type: _TypeInfo) -> None:
|
|
746
748
|
self.item_type = item_type
|
|
747
749
|
|
|
748
750
|
@property
|
|
@@ -888,9 +890,20 @@ class DynamicArray( # TODO: inherit from StaticArray?
|
|
|
888
890
|
return f"{_arc4_type_repr(type(self))}({', '.join(items)})"
|
|
889
891
|
|
|
890
892
|
|
|
893
|
+
class _DynamicBytesTypeInfo(_DynamicArrayTypeInfo):
|
|
894
|
+
def __init__(self) -> None:
|
|
895
|
+
super().__init__(Byte._type_info)
|
|
896
|
+
|
|
897
|
+
@property
|
|
898
|
+
def typ(self) -> type:
|
|
899
|
+
return DynamicBytes
|
|
900
|
+
|
|
901
|
+
|
|
891
902
|
class DynamicBytes(DynamicArray[Byte]):
|
|
892
903
|
"""A variable sized array of bytes."""
|
|
893
904
|
|
|
905
|
+
_type_info: _DynamicBytesTypeInfo = _DynamicBytesTypeInfo()
|
|
906
|
+
|
|
894
907
|
@typing.overload
|
|
895
908
|
def __init__(self, *values: Byte | UInt8 | int): ...
|
|
896
909
|
|
|
@@ -996,6 +1009,12 @@ class Tuple(
|
|
|
996
1009
|
)
|
|
997
1010
|
self._value = _encode(items)
|
|
998
1011
|
|
|
1012
|
+
def __bool__(self) -> bool:
|
|
1013
|
+
try:
|
|
1014
|
+
return bool(self.native)
|
|
1015
|
+
except ValueError:
|
|
1016
|
+
return False
|
|
1017
|
+
|
|
999
1018
|
def __len__(self) -> int:
|
|
1000
1019
|
return len(self.native)
|
|
1001
1020
|
|
|
@@ -1103,6 +1122,8 @@ class Struct(MutableBytes, _ABIEncoded, metaclass=_StructMeta): # type: ignore[
|
|
|
1103
1122
|
def from_bytes(cls, value: algopy.Bytes | bytes, /) -> typing.Self:
|
|
1104
1123
|
tuple_type = _tuple_type_from_struct(cls)
|
|
1105
1124
|
tuple_value = tuple_type.from_bytes(value)
|
|
1125
|
+
if not tuple_value:
|
|
1126
|
+
return typing.cast(typing.Self, tuple_value)
|
|
1106
1127
|
return cls(*tuple_value.native)
|
|
1107
1128
|
|
|
1108
1129
|
@property
|
|
@@ -201,12 +201,12 @@ def _get_state_totals(contract: Contract, cls_state_totals: StateTotals) -> _Sta
|
|
|
201
201
|
|
|
202
202
|
global_bytes = global_uints = local_bytes = local_uints = 0
|
|
203
203
|
for type_ in get_global_states(contract).values():
|
|
204
|
-
if issubclass(type_, UInt64 | UInt64Backed | bool):
|
|
204
|
+
if isinstance(type_, type) and issubclass(type_, UInt64 | UInt64Backed | bool):
|
|
205
205
|
global_uints += 1
|
|
206
206
|
else:
|
|
207
207
|
global_bytes += 1
|
|
208
208
|
for type_ in get_local_states(contract).values():
|
|
209
|
-
if issubclass(type_, UInt64 | UInt64Backed | bool):
|
|
209
|
+
if isinstance(type_, type) and issubclass(type_, UInt64 | UInt64Backed | bool):
|
|
210
210
|
local_uints += 1
|
|
211
211
|
else:
|
|
212
212
|
local_bytes += 1
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import dataclasses
|
|
2
|
+
import functools
|
|
3
|
+
import inspect
|
|
4
|
+
import typing
|
|
5
|
+
from collections.abc import Callable, Sequence
|
|
6
|
+
|
|
7
|
+
from _algopy_testing.primitives.uint64 import UInt64
|
|
8
|
+
|
|
9
|
+
if typing.TYPE_CHECKING:
|
|
10
|
+
from _algopy_testing.arc4 import _ABIEncoded
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
_T = typing.TypeVar("_T")
|
|
14
|
+
_U = typing.TypeVar("_U")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclasses.dataclass(frozen=True)
|
|
18
|
+
class _Serializer(typing.Generic[_T, _U]):
|
|
19
|
+
arc4_type: type[_U]
|
|
20
|
+
native_to_arc4: Callable[[_T], _U]
|
|
21
|
+
arc4_to_native: Callable[[_U], _T]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def identity(i: _T) -> _T:
|
|
25
|
+
return i
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def get_native_to_arc4_serializer(typ: type) -> _Serializer[typing.Any, typing.Any]:
|
|
29
|
+
from _algopy_testing import arc4
|
|
30
|
+
from _algopy_testing.primitives import ImmutableArray
|
|
31
|
+
from _algopy_testing.protocols import UInt64Backed
|
|
32
|
+
|
|
33
|
+
origin_type = typing.get_origin(typ)
|
|
34
|
+
if origin_type is tuple:
|
|
35
|
+
return _get_tuple_serializer(typing.get_args(typ))
|
|
36
|
+
elif isinstance(typ, type):
|
|
37
|
+
if issubclass(typ, arc4._ABIEncoded):
|
|
38
|
+
return _Serializer(arc4_type=typ, native_to_arc4=identity, arc4_to_native=identity)
|
|
39
|
+
for native_type, simple_arc4_type in _simple_native_to_arc4_type_map().items():
|
|
40
|
+
if issubclass(typ, native_type):
|
|
41
|
+
return _Serializer(
|
|
42
|
+
arc4_type=simple_arc4_type,
|
|
43
|
+
native_to_arc4=simple_arc4_type,
|
|
44
|
+
arc4_to_native=lambda n: n.native,
|
|
45
|
+
)
|
|
46
|
+
if issubclass(typ, UInt64Backed):
|
|
47
|
+
return _Serializer(
|
|
48
|
+
arc4_type=arc4.UInt64,
|
|
49
|
+
native_to_arc4=lambda n: arc4.UInt64(n.int_),
|
|
50
|
+
arc4_to_native=lambda a: typ.from_int(a.native),
|
|
51
|
+
)
|
|
52
|
+
if typing.NamedTuple in getattr(typ, "__orig_bases__", []):
|
|
53
|
+
tuple_fields = tuple(inspect.get_annotations(typ).values())
|
|
54
|
+
if any(isinstance(f, str) for f in tuple_fields):
|
|
55
|
+
raise TypeError("string annotations in typing.NamedTuple fields are not supported")
|
|
56
|
+
return _get_tuple_serializer(tuple_fields)
|
|
57
|
+
if issubclass(typ, ImmutableArray):
|
|
58
|
+
native_element_type = typ._element_type
|
|
59
|
+
element_serializer = get_native_to_arc4_serializer(native_element_type)
|
|
60
|
+
arc4_element_type = element_serializer.arc4_type
|
|
61
|
+
arc4_type = arc4.DynamicArray[arc4_element_type] # type: ignore[valid-type]
|
|
62
|
+
return _Serializer(
|
|
63
|
+
arc4_type=arc4_type,
|
|
64
|
+
native_to_arc4=lambda arr: arc4_type(
|
|
65
|
+
*(element_serializer.native_to_arc4(e) for e in arr)
|
|
66
|
+
),
|
|
67
|
+
arc4_to_native=lambda arr: typ(
|
|
68
|
+
*(element_serializer.arc4_to_native(e) for e in arr)
|
|
69
|
+
),
|
|
70
|
+
)
|
|
71
|
+
raise TypeError(f"unserializable type: {typ}")
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
@functools.cache
|
|
75
|
+
def _simple_native_to_arc4_type_map() -> dict[type, type]:
|
|
76
|
+
from _algopy_testing import arc4
|
|
77
|
+
from _algopy_testing.models import Account
|
|
78
|
+
from _algopy_testing.primitives import BigUInt, Bytes, String
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
bool: arc4.Bool,
|
|
82
|
+
UInt64: arc4.UInt64,
|
|
83
|
+
BigUInt: arc4.UInt512,
|
|
84
|
+
Account: arc4.Address,
|
|
85
|
+
Bytes: arc4.DynamicBytes,
|
|
86
|
+
String: arc4.String,
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _get_tuple_serializer(item_types: tuple[type, ...]) -> _Serializer[typing.Any, typing.Any]:
|
|
91
|
+
from _algopy_testing import arc4
|
|
92
|
+
|
|
93
|
+
serializers = [get_native_to_arc4_serializer(i) for i in item_types]
|
|
94
|
+
|
|
95
|
+
def _items_to_arc4(items: Sequence[object]) -> tuple[object, ...]:
|
|
96
|
+
result = []
|
|
97
|
+
for item, serializer in zip(items, serializers, strict=True):
|
|
98
|
+
result.append(serializer.native_to_arc4(item))
|
|
99
|
+
return tuple(result)
|
|
100
|
+
|
|
101
|
+
def _items_to_native(items: Sequence[object]) -> tuple[object, ...]:
|
|
102
|
+
result = []
|
|
103
|
+
for item, serializer in zip(items, serializers, strict=True):
|
|
104
|
+
result.append(serializer.arc4_to_native(item))
|
|
105
|
+
return tuple(result)
|
|
106
|
+
|
|
107
|
+
return _Serializer(
|
|
108
|
+
arc4_type=arc4.Tuple[*(s.arc4_type for s in serializers)], # type: ignore[misc]
|
|
109
|
+
native_to_arc4=lambda t: arc4.Tuple(_items_to_arc4(t)),
|
|
110
|
+
arc4_to_native=lambda t: _items_to_native(t),
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def serialize_to_bytes(value: object) -> bytes:
|
|
115
|
+
return native_to_arc4(value).bytes.value
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def type_of(value: object) -> type:
|
|
119
|
+
"""Returns the type of value, this will also ensure the type is fully parametrized
|
|
120
|
+
if it is a generic type."""
|
|
121
|
+
# get fully parametrized tuples
|
|
122
|
+
if isinstance(value, tuple) and type(value) is tuple:
|
|
123
|
+
return tuple[*(type_of(i) for i in value)] # type: ignore[misc, no-any-return]
|
|
124
|
+
else:
|
|
125
|
+
return type(value)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def native_to_arc4(value: object) -> "_ABIEncoded":
|
|
129
|
+
from _algopy_testing import arc4
|
|
130
|
+
|
|
131
|
+
src_type = type_of(value)
|
|
132
|
+
|
|
133
|
+
serializer = get_native_to_arc4_serializer(src_type)
|
|
134
|
+
arc4_value = serializer.native_to_arc4(value)
|
|
135
|
+
assert isinstance(arc4_value, arc4._ABIEncoded)
|
|
136
|
+
return arc4_value
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def compare_type(value_type: type, typ: type) -> bool:
|
|
140
|
+
if typing.NamedTuple in getattr(typ, "__orig_bases__", []):
|
|
141
|
+
tuple_fields: Sequence[type] = list(inspect.get_annotations(typ).values())
|
|
142
|
+
typ = tuple[*tuple_fields] # type: ignore[valid-type]
|
|
143
|
+
return value_type == typ
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
def deserialize_from_bytes(typ: type[_T], bites: bytes) -> _T:
|
|
147
|
+
serializer = get_native_to_arc4_serializer(typ)
|
|
148
|
+
arc4_value = serializer.arc4_type.from_bytes(bites)
|
|
149
|
+
native_value = serializer.arc4_to_native(arc4_value)
|
|
150
|
+
assert compare_type(type_of(native_value), typ) or isinstance(native_value, typ)
|
|
151
|
+
return native_value # type: ignore[no-any-return]
|
{algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0b1}/src/_algopy_testing/state/box.py
RENAMED
|
@@ -322,9 +322,9 @@ class BoxMap(typing.Generic[_TKey, _TValue]):
|
|
|
322
322
|
def maybe(self, key: _TKey) -> tuple[_TValue, bool]:
|
|
323
323
|
key_bytes = self._full_key(key)
|
|
324
324
|
box_exists = lazy_context.ledger.box_exists(self.app_id, key_bytes)
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
325
|
+
box_content_bytes = (
|
|
326
|
+
b"" if not box_exists else lazy_context.ledger.get_box(self.app_id, key_bytes)
|
|
327
|
+
)
|
|
328
328
|
box_content = cast_from_bytes(self._value_type, box_content_bytes)
|
|
329
329
|
return box_content, box_exists
|
|
330
330
|
|