algorand-python-testing 0.6.0b2__tar.gz → 1.0.0__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.0/.github/workflows/ci.yaml +77 -0
- algorand_python_testing-1.0.0/CHANGELOG.md +300 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/PKG-INFO +3 -2
- algorand_python_testing-1.0.0/docs/algopy.md +9 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/api.md +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/coverage.md +3 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/examples.md +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/faq.md +5 -5
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/index.md +2 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/arc4-types.md +5 -5
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/avm-types.md +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/concepts.md +13 -11
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/contract-testing.md +4 -4
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/index.md +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/opcodes.md +2 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/transactions.md +4 -4
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/marketplace/contract.py +14 -14
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/marketplace/test_contract.py +12 -12
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/proof_of_attendance/contract.py +4 -4
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/pyproject.toml +29 -9
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/arc4.py +166 -60
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/txn_context.py +2 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/decorators/arc4.py +67 -22
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/itxn.py +20 -12
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/application.py +1 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/contract.py +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/txn_fields.py +187 -17
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/pure.py +8 -9
- algorand_python_testing-1.0.0/src/_algopy_testing/primitives/__init__.py +27 -0
- algorand_python_testing-1.0.0/src/_algopy_testing/primitives/array.py +575 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/bytes.py +3 -2
- algorand_python_testing-1.0.0/src/_algopy_testing/serialize.py +211 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/box.py +74 -6
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/global_state.py +6 -7
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/local_state.py +3 -3
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/utils.py +10 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utils.py +23 -4
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/avm.py +1 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/__init__.py +19 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/conftest.py +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_address.py +7 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_arc4_method_signature.py +104 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_bool.py +4 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_dynamic_array.py +57 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_dynamic_bytes.py +6 -6
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_emit.py +2 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_static_array.py +67 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_string.py +4 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_struct.py +2 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_tuple.py +17 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_ufixednxm.py +6 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_uintn.py +77 -5
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/contract.py +45 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/Contract.approval.teal +159 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/Contract.arc56.json +131 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/Arrays → algorand_python_testing-1.0.0/tests/artifacts/AVM12}/data/Contract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV0.approval.teal +44 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV0.arc56.json +102 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV0.clear.teal +7 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV1.approval.teal +44 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV1.arc56.json +102 -0
- algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV1.clear.teal +7 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4ABIMethod/contract.py +32 -4
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +282 -295
- algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +305 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +480 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +21 -37
- algorand_python_testing-1.0.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +55 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +101 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4PrimitiveOps/contract.py +21 -1
- algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +1807 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +1101 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +1587 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/Contract.approval.teal +669 -724
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/Contract.arc32.json +198 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/Contract.arc56.json +373 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/Contract.clear.teal +7 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +272 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +144 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +7 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +1515 -1577
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +498 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +804 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +272 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +144 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +1099 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +175 -0
- algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +327 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/immutable.py +194 -10
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/static_size.py +61 -14
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/uint64.py +62 -18
- algorand_python_testing-1.0.0/tests/artifacts/BoxContract/contract.py +350 -0
- algorand_python_testing-1.0.0/tests/artifacts/BoxContract/data/BoxContract.approval.teal +1795 -0
- algorand_python_testing-1.0.0/tests/artifacts/BoxContract/data/BoxContract.arc32.json +63 -0
- algorand_python_testing-1.0.0/tests/artifacts/BoxContract/data/BoxContract.arc56.json +780 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Contains/data/MyContract.approval.teal +2 -4
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Contains/data/MyContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +20 -27
- algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +50 -0
- algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +96 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +54 -100
- algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +77 -0
- algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +181 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +359 -636
- algorand_python_testing-1.0.0/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +368 -0
- algorand_python_testing-1.0.0/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +450 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +23 -41
- algorand_python_testing-1.0.0/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +59 -0
- algorand_python_testing-1.0.0/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +111 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/MiscellaneousOps/contract.py +4 -4
- algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +938 -0
- algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +858 -0
- algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +1012 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +1667 -0
- algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +1393 -0
- algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +1616 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +185 -154
- algorand_python_testing-1.0.0/tests/artifacts/StateMutations/data/StateMutations.arc32.json +95 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateMutations/data/StateMutations.arc56.json +265 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/contract.py +30 -16
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +658 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +563 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +801 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +33 -42
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +96 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +487 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +381 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +583 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +241 -512
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +307 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +478 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +7 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +186 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +188 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +254 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +23 -25
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +104 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +244 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +251 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +329 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +22 -29
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +63 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +112 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +171 -345
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +199 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +297 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +74 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +81 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +130 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +184 -415
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +253 -0
- algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +366 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +1 -1
- algorand_python_testing-1.0.0/tests/artifacts/Tuples/contract.py +11 -0
- algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.approval.teal +34 -0
- algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.arc32.json +50 -0
- algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.arc56.json +96 -0
- algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.clear.teal +7 -0
- algorand_python_testing-1.0.0/tests/avm12/conftest.py +14 -0
- algorand_python_testing-1.0.0/tests/avm12/test_avm12.py +66 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/common.py +4 -0
- algorand_python_testing-1.0.0/tests/models/test_box.py +588 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_box_map.py +114 -57
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_box_ref.py +53 -42
- {algorand_python_testing-0.6.0b2/tests/utilities → algorand_python_testing-1.0.0/tests/primitives}/conftest.py +1 -1
- algorand_python_testing-1.0.0/tests/state/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/state/conftest.py +2 -2
- algorand_python_testing-1.0.0/tests/state/test_global_state.py +310 -0
- algorand_python_testing-1.0.0/tests/state/test_local_state.py +181 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_array.py +64 -14
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_context.py +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_miscellaneous_op.py +60 -62
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_op.py +9 -9
- algorand_python_testing-1.0.0/tests/utilities/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/primitives → algorand_python_testing-1.0.0/tests/utilities}/conftest.py +1 -1
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/utilities/test_log.py +2 -2
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/utilities/test_size_of.py +33 -5
- algorand_python_testing-1.0.0/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/docs/algopy.md +0 -9
- algorand_python_testing-0.6.0b2/src/_algopy_testing/primitives/__init__.py +0 -7
- algorand_python_testing-0.6.0b2/src/_algopy_testing/primitives/array.py +0 -144
- algorand_python_testing-0.6.0b2/src/_algopy_testing/serialize.py +0 -158
- algorand_python_testing-0.6.0b2/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -253
- algorand_python_testing-0.6.0b2/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -55
- algorand_python_testing-0.6.0b2/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -2361
- 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/Contract.arc32.json +0 -172
- algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -450
- algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -902
- algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -162
- algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract/contract.py +0 -19
- algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -128
- algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -63
- algorand_python_testing-0.6.0b2/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -50
- algorand_python_testing-0.6.0b2/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -77
- algorand_python_testing-0.6.0b2/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -368
- algorand_python_testing-0.6.0b2/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -59
- algorand_python_testing-0.6.0b2/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -1656
- algorand_python_testing-0.6.0b2/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -858
- algorand_python_testing-0.6.0b2/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -2834
- algorand_python_testing-0.6.0b2/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -1393
- algorand_python_testing-0.6.0b2/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -95
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -935
- 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.approval.teal +0 -695
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -359
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -307
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -311
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -188
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -406
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -251
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -63
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -199
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -122
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -81
- algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -253
- algorand_python_testing-0.6.0b2/tests/models/test_box.py +0 -357
- 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.0}/.coveragerc +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.editorconfig +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/dependabot.yml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/pull_request_template.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/workflows/cd.yaml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/workflows/gh-pages.yaml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.gitignore +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.pre-commit-config.yaml +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.vscode/extensions.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.vscode/launch.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.vscode/settings.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/CONTRIBUTING.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/LICENSE +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/README.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/Makefile +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/_static/custom.css +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/conf.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/make.bat +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/signature-testing.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/state-management.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/subroutines.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/README.md +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/auction/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/auction/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/auction/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/htlc_logicsig/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/htlc_logicsig/signature.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/htlc_logicsig/test_signature.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/marketplace/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/proof_of_attendance/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/proof_of_attendance/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/scratch_storage/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/scratch_storage/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/scratch_storage/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/simple_voting/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/simple_voting/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/simple_voting/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/zk_whitelist/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/zk_whitelist/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/zk_whitelist/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/check_stubs_cov.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/refresh_test_artifacts.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/validate_examples.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/compiled.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/constants.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/decorators/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/decorators/subroutine.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/enums.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/gtxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/itxn_loader.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/account.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/asset.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/logicsig.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/template_variable.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/mutable.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/block.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/constants.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/crypto.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/global_values.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/itxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/misc.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/txn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/biguint.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/string.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/uint64.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/protocols.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/budget.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/log.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/size_of.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/arc4.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/txn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/arc4.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/gtxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/itxn.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/op.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/py.typed +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/templates/.macros.j2 +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/templates/.release_notes.md.j2 +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/templates/CHANGELOG.md.j2 +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_abi_call.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/Arc4ABIMethod → algorand_python_testing-1.0.0/tests/artifacts/AVM12}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/Arc4InnerTxns → algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod}/__init__.py +0 -0
- /algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal → /algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/Arc4PrimitiveOps → algorand_python_testing-1.0.0/tests/artifacts/Arc4InnerTxns}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/Arrays → algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract → algorand_python_testing-1.0.0/tests/artifacts/Arrays}/__init__.py +0 -0
- /algorand_python_testing-0.6.0b2/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal → /algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/Contains → algorand_python_testing-1.0.0/tests/artifacts/BoxContract}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/CreatedAppAsset → algorand_python_testing-1.0.0/tests/artifacts/Contains}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Contains/contract.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/CryptoOps → algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/other.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/GlobalStateValidator → algorand_python_testing-1.0.0/tests/artifacts/CryptoOps}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CryptoOps/contract.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/MiscellaneousOps → algorand_python_testing-1.0.0/tests/artifacts/GlobalStateValidator}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/PrimitiveOps → algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/StateMutations → algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts/StateOps → algorand_python_testing-1.0.0/tests/artifacts/StateMutations}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/statemutations.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/artifacts → algorand_python_testing-1.0.0/tests/artifacts/StateOps}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
- {algorand_python_testing-0.6.0b2/tests/contexts → algorand_python_testing-1.0.0/tests/artifacts/Tuples}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/models → algorand_python_testing-1.0.0/tests/artifacts}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/primitives → algorand_python_testing-1.0.0/tests/avm12}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/conftest.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/state → algorand_python_testing-1.0.0/tests/contexts}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/utilities → algorand_python_testing-1.0.0/tests/models}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_asset.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_contract.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_uenumerate.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_urange.py +0 -0
- {algorand_python_testing-0.6.0b2/tests/value_generators → algorand_python_testing-1.0.0/tests/primitives}/__init__.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_biguint.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_bytes.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_string.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_uint64.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/state/test_mutations.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/util.py +0 -0
- {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/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,300 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
## v1.0.0 (2025-10-06)
|
|
3
|
+
|
|
4
|
+
## v1.0.0-beta.8 (2025-10-06)
|
|
5
|
+
|
|
6
|
+
### Documentation
|
|
7
|
+
|
|
8
|
+
* fix typos and broken links ([`f221910`](https://github.com/algorandfoundation/algorand-python-testing/commit/f221910b54a2cdc76aa99b8883d75d4ddae78ee3))
|
|
9
|
+
|
|
10
|
+
## v1.0.0-beta.7 (2025-09-26)
|
|
11
|
+
|
|
12
|
+
### Bug fixes
|
|
13
|
+
|
|
14
|
+
* bump puyapy dependencies ([`8b2064d`](https://github.com/algorandfoundation/algorand-python-testing/commit/8b2064dc8bd94b0dadf6f283e8d639543241eadc))
|
|
15
|
+
|
|
16
|
+
Update to latest release candidates, so dependencies projects using both puyapy, language server and algorand python testing can resolve to a consistent version
|
|
17
|
+
|
|
18
|
+
## v1.0.0-beta.6 (2025-09-18)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* update langspec to 4.3.0 ([`c05bdc0`](https://github.com/algorandfoundation/algorand-python-testing/commit/c05bdc053f4b6aa52206cbeeaddb40609688b052))
|
|
23
|
+
|
|
24
|
+
## v1.0.0-beta.5 (2025-09-16)
|
|
25
|
+
|
|
26
|
+
## v1.0.0-beta.4 (2025-09-12)
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* make BoxRef methods directly accessible on Box class ([`38e12f6`](https://github.com/algorandfoundation/algorand-python-testing/commit/38e12f6d595c204eb6f7dcd74c393c46f166e3d4))
|
|
31
|
+
|
|
32
|
+
## v1.0.0-beta.3 (2025-09-08)
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
* add .as_uint64 and .as_biguint methods to replace native property ([`0f9c6c0`](https://github.com/algorandfoundation/algorand-python-testing/commit/0f9c6c06b6e1b986c4e512cbbe0098aea32615b7))
|
|
37
|
+
|
|
38
|
+
## v1.0.0-beta.2 (2025-09-03)
|
|
39
|
+
|
|
40
|
+
### Features
|
|
41
|
+
|
|
42
|
+
* add stub implementations of array types ([`b7b831d`](https://github.com/algorandfoundation/algorand-python-testing/commit/b7b831da7570367494e823485910bc7191376e48))
|
|
43
|
+
|
|
44
|
+
## v1.0.0-beta.1 (2025-07-16)
|
|
45
|
+
|
|
46
|
+
### Features
|
|
47
|
+
|
|
48
|
+
* support storing tuples in state ([`911cd3c`](https://github.com/algorandfoundation/algorand-python-testing/commit/911cd3cb54f69f8fdded5c677f32c1969e8827bf))
|
|
49
|
+
|
|
50
|
+
## v0.6.0-beta.3 (2025-05-16)
|
|
51
|
+
|
|
52
|
+
### Bug fixes
|
|
53
|
+
|
|
54
|
+
* fixes type checking of tuples with primitive types ([`e971ad6`](https://github.com/algorandfoundation/algorand-python-testing/commit/e971ad6b125f269cd0874c09d58d8962f7622f8d))
|
|
55
|
+
|
|
56
|
+
Adds checks to ensure that type validation applies to classes only.
|
|
57
|
+
|
|
58
|
+
## v0.6.0-beta.2 (2025-05-15)
|
|
59
|
+
|
|
60
|
+
### Features
|
|
61
|
+
|
|
62
|
+
* add stubs for box create function ([`1fe6fe5`](https://github.com/algorandfoundation/algorand-python-testing/commit/1fe6fe55358630a6abea2f69406821cb6031a4d5))
|
|
63
|
+
|
|
64
|
+
## v0.6.0-beta.1 (2025-05-09)
|
|
65
|
+
|
|
66
|
+
### Features
|
|
67
|
+
|
|
68
|
+
* 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))
|
|
69
|
+
|
|
70
|
+
### Bug fixes
|
|
71
|
+
|
|
72
|
+
* ensure size_of is exported from algopy module ([`01c055a`](https://github.com/algorandfoundation/algorand-python-testing/commit/01c055a4d2bd1fe17324bd91f7a83810900baa4e))
|
|
73
|
+
|
|
74
|
+
### Documentation
|
|
75
|
+
|
|
76
|
+
* include size_of in coverage doc ([`2c73646`](https://github.com/algorandfoundation/algorand-python-testing/commit/2c7364626357844437fd80b6039c112a87b277bb))
|
|
77
|
+
|
|
78
|
+
## v0.5.0 (2025-02-20)
|
|
79
|
+
|
|
80
|
+
### Features
|
|
81
|
+
|
|
82
|
+
* accept abi method reference as a parameter to arc4_signature method ([`a1cb365`](https://github.com/algorandfoundation/algorand-python-testing/commit/a1cb365f2be1eb1965d9b86a5193498772131412))
|
|
83
|
+
|
|
84
|
+
## v0.5.0-beta.1 (2025-02-19)
|
|
85
|
+
|
|
86
|
+
### Features
|
|
87
|
+
|
|
88
|
+
* support `algopy.Array` and `algopy.ImmutableArray` from algorand-python 2.7 ([`fd8d19f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fd8d19f25b9f8e0a48f58ae8f45e4d546b965f83))
|
|
89
|
+
|
|
90
|
+
* support mocking new `algopy.op` functions `falcon_verify`, `mimc`, `online_stake`, `sumhash512` and `VoterParamsGet` ([`83ddcbb`](https://github.com/algorandfoundation/algorand-python-testing/commit/83ddcbb8f83f72a5e0bc247c14e250c55496febf))
|
|
91
|
+
|
|
92
|
+
* update `algopy.op.Block` with fields added in AVM 11 ([`90d857d`](https://github.com/algorandfoundation/algorand-python-testing/commit/90d857d248d7b1b5a4b3791ccb0e10c20c478325))
|
|
93
|
+
|
|
94
|
+
* update `algopy.op.AcctParamsGet` with fields added in AVM 11 ([`059b669`](https://github.com/algorandfoundation/algorand-python-testing/commit/059b6690441e99a709fc47691bcb0e4f2453cd26))
|
|
95
|
+
|
|
96
|
+
* add `avm_version` to `algopy.Contract` class options ([`fc53b0f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fc53b0fda5f0d22b6dbb99abf1ba024284fa52a4))
|
|
97
|
+
|
|
98
|
+
* update `algopy.op.Global` with fields added in AVM 11 ([`0cc9807`](https://github.com/algorandfoundation/algorand-python-testing/commit/0cc9807bbfc7084d54425c40889065ae2fd7d856))
|
|
99
|
+
|
|
100
|
+
* add `algopy.arc4.Struct._replace` introduced in algorand-python 2.5.0 ([`75d6847`](https://github.com/algorandfoundation/algorand-python-testing/commit/75d6847b80498d637c7f0b0e3915afd7af6f132c))
|
|
101
|
+
|
|
102
|
+
* add inline option to subroutine decorator ([`2cc15b3`](https://github.com/algorandfoundation/algorand-python-testing/commit/2cc15b3dc706eb8585b9658bf67b38da215e2e38))
|
|
103
|
+
|
|
104
|
+
### Bug fixes
|
|
105
|
+
|
|
106
|
+
* add missing mappings for `algopy.op.Txn` members ([`fddfe6f`](https://github.com/algorandfoundation/algorand-python-testing/commit/fddfe6f7ff9d6d4e0434f65e19dd0b0cf2aef6bd))
|
|
107
|
+
|
|
108
|
+
* include `ARC4Contract` in `algopy.arc4` namespace ([`f19d46f`](https://github.com/algorandfoundation/algorand-python-testing/commit/f19d46f5663c9fbe4e9b2e8c3bd1e2f7ddc89c3a))
|
|
109
|
+
|
|
110
|
+
* update `algopy.CompiledContract` and `algopy.CompiledLogicSig` to be NamedTuples ([`84be408`](https://github.com/algorandfoundation/algorand-python-testing/commit/84be4082348e3d89b40a65a69b599594a5531828))
|
|
111
|
+
|
|
112
|
+
* added missing __contains__ implementation for `algopy.Bytes` ([`8b2efa2`](https://github.com/algorandfoundation/algorand-python-testing/commit/8b2efa20b37e3043ac6a228d6706da4203373a7e))
|
|
113
|
+
|
|
114
|
+
### Documentation
|
|
115
|
+
|
|
116
|
+
* fix doctest example for `algopy.EllipticCurve` ([`7d0bb0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/7d0bb0dfe9a5ea2d67b130fa300fb80cef52fda5))
|
|
117
|
+
|
|
118
|
+
## v0.4.1 (2024-09-03)
|
|
119
|
+
|
|
120
|
+
## v0.4.1-beta.1 (2024-09-03)
|
|
121
|
+
|
|
122
|
+
### Bug fixes
|
|
123
|
+
|
|
124
|
+
* ability to pass kw_only flag to dataclass when defining struct subclass ([`24bcf9d`](https://github.com/algorandfoundation/algorand-python-testing/commit/24bcf9d8af34eb2675ddf85ce9d71802f82f2d6a))
|
|
125
|
+
|
|
126
|
+
* ability to pass kw_only flag to dataclass when defining struct subclass ([`24bcf9d`](https://github.com/algorandfoundation/algorand-python-testing/commit/24bcf9d8af34eb2675ddf85ce9d71802f82f2d6a))
|
|
127
|
+
|
|
128
|
+
## v0.4.0 (2024-08-27)
|
|
129
|
+
|
|
130
|
+
## v0.4.0-beta.2 (2024-08-27)
|
|
131
|
+
|
|
132
|
+
## v0.4.0-beta.1 (2024-08-27)
|
|
133
|
+
|
|
134
|
+
### Features
|
|
135
|
+
|
|
136
|
+
* 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))
|
|
137
|
+
|
|
138
|
+
* expand accepted types when interacting with accounts, applications and assets ([`f448a97`](https://github.com/algorandfoundation/algorand-python-testing/commit/f448a97cb154c9f90ecf42c599b240f12928af20))
|
|
139
|
+
|
|
140
|
+
wip
|
|
141
|
+
|
|
142
|
+
* replaced `account_exists` with `account_is_funded` as the later is more useful ([`4d08690`](https://github.com/algorandfoundation/algorand-python-testing/commit/4d086903eb93a70ce1d485cdd7b12d8472ef16db))
|
|
143
|
+
|
|
144
|
+
### Bug fixes
|
|
145
|
+
|
|
146
|
+
* use correct type for Globals.caller_application_id ([`a30d85a`](https://github.com/algorandfoundation/algorand-python-testing/commit/a30d85a4416dfc2c5d901f3ace2265384ef60c01))
|
|
147
|
+
|
|
148
|
+
* do not allow specifying `address` for applications, it is derived from the app_id ([`00fe1bc`](https://github.com/algorandfoundation/algorand-python-testing/commit/00fe1bc8ea247dcc36b01154db36b984b151e396))
|
|
149
|
+
|
|
150
|
+
* do not treat asset and application ids as possible foreign array indexes ([`94a989f`](https://github.com/algorandfoundation/algorand-python-testing/commit/94a989f77169da2ae437c629cd5f4d8a872263f6))
|
|
151
|
+
|
|
152
|
+
* removed incorrect deduction in `algopy.op.balance` ([`76e67c5`](https://github.com/algorandfoundation/algorand-python-testing/commit/76e67c5e3dd1cda388a2a948d452ba89805add6a))
|
|
153
|
+
|
|
154
|
+
* ensure all comparable types return `NotImplemented` when a comparison is not possible ([`b055fa6`](https://github.com/algorandfoundation/algorand-python-testing/commit/b055fa68531e0b7923773ec10c2097a3d64b9dbe))
|
|
155
|
+
|
|
156
|
+
* `arc4_prefix` annotated to also accept `algopy.Bytes` ([`40328ca`](https://github.com/algorandfoundation/algorand-python-testing/commit/40328ca3701b3e255193e206e8a7b1bdb441a346))
|
|
157
|
+
|
|
158
|
+
### Documentation
|
|
159
|
+
|
|
160
|
+
* include usage of `algopy_testing_context` in README.md quick start ([`4702f60`](https://github.com/algorandfoundation/algorand-python-testing/commit/4702f60cfe7d09956a5ae6dbdcd72da29fdda808))
|
|
161
|
+
|
|
162
|
+
## v0.3.0 (2024-08-22)
|
|
163
|
+
|
|
164
|
+
## v0.3.0-beta.10 (2024-08-22)
|
|
165
|
+
|
|
166
|
+
### Documentation
|
|
167
|
+
|
|
168
|
+
* refining docs ([`b714783`](https://github.com/algorandfoundation/algorand-python-testing/commit/b714783b4cf15d31f91dc1c776d304bd2eb9a154))
|
|
169
|
+
|
|
170
|
+
* note on future refinement ([`b714783`](https://github.com/algorandfoundation/algorand-python-testing/commit/b714783b4cf15d31f91dc1c776d304bd2eb9a154))
|
|
171
|
+
|
|
172
|
+
* further refining the api section ([`b714783`](https://github.com/algorandfoundation/algorand-python-testing/commit/b714783b4cf15d31f91dc1c776d304bd2eb9a154))
|
|
173
|
+
|
|
174
|
+
## v0.3.0-beta.9 (2024-08-22)
|
|
175
|
+
|
|
176
|
+
### Bug fixes
|
|
177
|
+
|
|
178
|
+
* Make Global.latest_timestamp constant for a transaction ([`51c2817`](https://github.com/algorandfoundation/algorand-python-testing/commit/51c2817c262d686996e2aa4d639d259409dc8d43))
|
|
179
|
+
|
|
180
|
+
## v0.3.0-beta.8 (2024-08-22)
|
|
181
|
+
|
|
182
|
+
### Features
|
|
183
|
+
|
|
184
|
+
* include ARC4 results in log, and handle > 15 ARC4 arguments ([`fd83ee8`](https://github.com/algorandfoundation/algorand-python-testing/commit/fd83ee8525a393d4a1a66f20acdb661906d84b51))
|
|
185
|
+
|
|
186
|
+
## v0.3.0-beta.7 (2024-08-21)
|
|
187
|
+
|
|
188
|
+
## v0.3.0-beta.6 (2024-08-21)
|
|
189
|
+
|
|
190
|
+
### Documentation
|
|
191
|
+
|
|
192
|
+
* documentation for initial stable release of `algorand-python-testing` ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
193
|
+
|
|
194
|
+
docs: wip
|
|
195
|
+
|
|
196
|
+
* refining docs (wip) ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
197
|
+
|
|
198
|
+
* revamping docs with latest features ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
199
|
+
|
|
200
|
+
* minor consistency with main readme; patching doctests ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
201
|
+
|
|
202
|
+
* removing the box from examples ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
203
|
+
|
|
204
|
+
* refine op codes section ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
205
|
+
|
|
206
|
+
* addressing docs pr comments ([`9d97d0d`](https://github.com/algorandfoundation/algorand-python-testing/commit/9d97d0de5ff9897e642ec3f11a186f2fb95375bb))
|
|
207
|
+
|
|
208
|
+
## v0.3.0-beta.5 (2024-08-21)
|
|
209
|
+
|
|
210
|
+
### Features
|
|
211
|
+
|
|
212
|
+
* add __str__ and __repr__ implementations for ARC4 types ([`1f1f2ea`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
213
|
+
|
|
214
|
+
### Bug fixes
|
|
215
|
+
|
|
216
|
+
* 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))
|
|
217
|
+
|
|
218
|
+
* add default __eq__ implementation for ARC4 types ([`1f1f2ea`](https://github.com/algorandfoundation/algorand-python-testing/commit/1f1f2ea43a2f4f906cbcd5709b8e86b5c1f2bc63))
|
|
219
|
+
|
|
220
|
+
* 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))
|
|
221
|
+
|
|
222
|
+
## v0.3.0-beta.4 (2024-08-21)
|
|
223
|
+
|
|
224
|
+
### Features
|
|
225
|
+
|
|
226
|
+
* 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))
|
|
227
|
+
|
|
228
|
+
### Bug fixes
|
|
229
|
+
|
|
230
|
+
* fix equality implementation for Account, to allow comparison with arc4.Address ([`6ec2dd4`](https://github.com/algorandfoundation/algorand-python-testing/commit/6ec2dd4f2b4119987a5ea7c3c670bdd554c4fe30))
|
|
231
|
+
|
|
232
|
+
* ensure new Account's have field defaults populated ([`54432b0`](https://github.com/algorandfoundation/algorand-python-testing/commit/54432b03cef13008b16fab84dcc250824e2e2da1))
|
|
233
|
+
|
|
234
|
+
* ensure Global.current_application* properties match AVM ([`ae84ae2`](https://github.com/algorandfoundation/algorand-python-testing/commit/ae84ae27e49ef977babe7abb10d8994446d6b5f7))
|
|
235
|
+
|
|
236
|
+
* when generating app/asset id's skip any that might already be reserved ([`0bb5eba`](https://github.com/algorandfoundation/algorand-python-testing/commit/0bb5eba3ec75ffdb16cfbac5b3c4837f64f8a58a))
|
|
237
|
+
|
|
238
|
+
### Documentation
|
|
239
|
+
|
|
240
|
+
* integrating pydoclint; formatting docs; removing docs from stub implementation ([`d729bf9`](https://github.com/algorandfoundation/algorand-python-testing/commit/d729bf9b70ef885cd1b2ef705c4f5e2582d853ab))
|
|
241
|
+
|
|
242
|
+
## v0.3.0-beta.3 (2024-08-16)
|
|
243
|
+
|
|
244
|
+
## v0.3.0-beta.2 (2024-08-16)
|
|
245
|
+
|
|
246
|
+
### Features
|
|
247
|
+
|
|
248
|
+
* implement gaid op ([`71801f0`](https://github.com/algorandfoundation/algorand-python-testing/commit/71801f01e49b683d81fa46d2ddb1c8aaf38b89f2))
|
|
249
|
+
|
|
250
|
+
### Bug fixes
|
|
251
|
+
|
|
252
|
+
* 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))
|
|
253
|
+
|
|
254
|
+
## v0.3.0-beta.1 (2024-08-14)
|
|
255
|
+
|
|
256
|
+
### Features
|
|
257
|
+
|
|
258
|
+
* deferred app calls, modular test context, refined access to value generators, numerous fixes/improvements ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
259
|
+
|
|
260
|
+
* work in progress on asset, application related state ops ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
261
|
+
|
|
262
|
+
* extra tests and implementation wrappers around AppLocal ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
263
|
+
|
|
264
|
+
chore: wip
|
|
265
|
+
|
|
266
|
+
* adding acctparamsget; extra tests; pr comments ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
267
|
+
|
|
268
|
+
* add arc4factory ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
269
|
+
|
|
270
|
+
* continue with txn_group_for and add a test ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
271
|
+
|
|
272
|
+
### Bug fixes
|
|
273
|
+
|
|
274
|
+
* handle populating foreign arrays correctly for abi method calls ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
275
|
+
|
|
276
|
+
### Documentation
|
|
277
|
+
|
|
278
|
+
* adding pep257 formatter; using reST docstrings style for context.py ([`85dd58a`](https://github.com/algorandfoundation/algorand-python-testing/commit/85dd58a60f56a0737de84dcb549c01ca5a7a2851))
|
|
279
|
+
|
|
280
|
+
## v0.2.2-beta.5 (2024-07-30)
|
|
281
|
+
|
|
282
|
+
### Documentation
|
|
283
|
+
|
|
284
|
+
* patch urls in README.md ([`eddf612`](https://github.com/algorandfoundation/algorand-python-testing/commit/eddf612b177a2acddf15d58be3f375e99fb6564b))
|
|
285
|
+
|
|
286
|
+
* patching old namespace name in readme ([`eddf612`](https://github.com/algorandfoundation/algorand-python-testing/commit/eddf612b177a2acddf15d58be3f375e99fb6564b))
|
|
287
|
+
|
|
288
|
+
## v0.2.2-beta.4 (2024-07-25)
|
|
289
|
+
|
|
290
|
+
## v0.2.2-beta.3 (2024-07-25)
|
|
291
|
+
|
|
292
|
+
## v0.2.2-beta.2 (2024-07-25)
|
|
293
|
+
|
|
294
|
+
## v0.2.2-beta.1 (2024-07-24)
|
|
295
|
+
|
|
296
|
+
## v0.2.1 (2024-07-10)
|
|
297
|
+
|
|
298
|
+
### Bug fixes
|
|
299
|
+
|
|
300
|
+
* 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.0
|
|
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,9 +12,10 @@ 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
|
-
Requires-Dist: algorand-python>=
|
|
18
|
+
Requires-Dist: algorand-python>=3
|
|
18
19
|
Requires-Dist: coincurve>=19.0.1
|
|
19
20
|
Requires-Dist: ecdsa>=0.17.0
|
|
20
21
|
Requires-Dist: pycryptodomex<4,>=3.6.0
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Algorand Python
|
|
2
|
+
|
|
3
|
+
Algorand Python is a partial implementation of the Python programming language that runs on the AVM. It includes a statically typed framework for developing Algorand smart contracts and logic signatures, with Pythonic interfaces to underlying AVM functionality that work with standard Python tooling.
|
|
4
|
+
|
|
5
|
+
Algorand Python is compiled for execution on the AVM by PuyaPy, an optimising compiler that ensures the resulting AVM bytecode has execution semantics that match the given Python code. PuyaPy produces output that is directly compatible with [AlgoKit typed clients](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/generate.md#1-typed-clients) to make deployment and calling easy.
|
|
6
|
+
|
|
7
|
+
## Quick start
|
|
8
|
+
|
|
9
|
+
To get started, refer to the [official documentation](https://algorandfoundation.github.io/puya).
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# API Reference
|
|
2
2
|
|
|
3
|
-
An overview of the `algorand-python-testing`
|
|
3
|
+
An overview of the `algopy_testing` module in `algorand-python-testing` library - covering the main classes and functions.
|
|
4
4
|
|
|
5
5
|
```{hint}
|
|
6
|
-
Spotted a typo in documentation? This project is open source
|
|
6
|
+
Spotted a typo in the documentation? This project is open source; please submit an issue or a PR on [GitHub](https://github.com/algorandfoundation/algorand-python-testing).
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
```{warning}
|
|
10
|
-
Note
|
|
10
|
+
Note: Auto-generated class documentation may reference `_algopy_testing`; these should be interpreted as the `algopy_testing` namespace. The naming discrepancy will be fixed in a future update.
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Contexts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Coverage
|
|
2
2
|
|
|
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
|
|
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 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 |
|
|
@@ -158,3 +158,4 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
|
|
|
158
158
|
| algopy.op.EllipticCurve | Mockable |
|
|
159
159
|
| algopy.op.VrfVerify | Mockable |
|
|
160
160
|
| algopy.op.vrf_verify | Mockable |
|
|
161
|
+
| algopy.op.falcon_verify | Mockable |
|
|
@@ -5,9 +5,9 @@ Below is a showcase of various examples of unit testing real and sample Algorand
|
|
|
5
5
|
| Contract Name | Test File | Key Features Demonstrated | Test versions of Algopy Abstractions used |
|
|
6
6
|
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
|
|
7
7
|
| Auction | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/auction/test_contract.py) | - Use of algopy_testing_context<br>- Mocking of global state and transaction fields<br>- Testing of ARC4 contract methods<br>- Emulation of asset creation and transfers<br>- Verification of inner transactions | - **ARC4Contract**<br>- **Global**<br>- **Txn**<br>- **Asset**<br>- **Account**<br>- **LocalState** |
|
|
8
|
-
| Proof of Attendance | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/proof_of_attendance/test_contract.py) | - Creation and management of dummy assets<br>- Testing of box storage operations<br>- Verification of inner transactions for asset transfers<br>- Use of any
|
|
8
|
+
| Proof of Attendance | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/proof_of_attendance/test_contract.py) | - Creation and management of dummy assets<br>- Testing of box storage operations<br>- Verification of inner transactions for asset transfers<br>- Use of `any.*` methods for generating test data | - **ARC4Contract**<br>- **Box**<br>- **BoxMap**<br>- **Asset**<br>- **Account**<br>- **op** |
|
|
9
9
|
| Simple Voting | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/simple_voting/test_contract.py) | - Testing of global and local state operations<br>- Verification of transaction group operations<br>- Mocking of payment transactions | - **Contract**<br>- **GlobalState**<br>- **LocalState**<br>- **Txn**<br>- **op.GTxn** |
|
|
10
|
-
| ZK Whitelist | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/zk_whitelist/test_contract.py) | - Testing of zero-knowledge proof verification<br>- Mocking of external application calls<br>- Use of ARC4 types and methods | - **ARC4Contract**<br>- **
|
|
10
|
+
| ZK Whitelist | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/zk_whitelist/test_contract.py) | - Testing of zero-knowledge proof verification<br>- Mocking of external application calls<br>- Use of ARC4 types and methods | - **ARC4Contract**<br>- **ARC4 types**<br>- **LocalState**<br>- **Global**<br>- **Txn** |
|
|
11
11
|
| HTLC LogicSig | [test_signature.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/htlc_logicsig/test_signature.py) | - Testing of LogicSig contracts<br>- Verification of time-based conditions<br>- Mocking of transaction parameters | - **logicsig**<br>- **Account**<br>- **Txn**<br>- **Global**<br>- **op** |
|
|
12
|
-
| Marketplace | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/marketplace/test_contract.py) | - Testing of complex marketplace operations<br>- Use of BoxMap for listings<br>- Testing of asset transfers and payments | - **ARC4Contract**<br>- **BoxMap**<br>- **Asset**<br>- **
|
|
12
|
+
| Marketplace | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/marketplace/test_contract.py) | - Testing of complex marketplace operations<br>- Use of BoxMap for listings<br>- Testing of asset transfers and payments | - **ARC4Contract**<br>- **BoxMap**<br>- **Asset**<br>- **ARC4 types**<br>- **Global**<br>- **Txn** |
|
|
13
13
|
| Scratch Storage | [test_contract.py](https://github.com/algorandfoundation/algorand-python-testing/blob/main/examples/scratch_storage/test_contract.py) | - Testing of scratch space usage<br>- Verification of scratch slot values | - **ARC4Contract**<br>- **Contract**<br>- **op** |
|
|
@@ -14,7 +14,7 @@ Operational Codes, or opcodes, are AVM instructions that are executed directly b
|
|
|
14
14
|
|
|
15
15
|
## What are Value Generators?
|
|
16
16
|
|
|
17
|
-
Value Generators are helper methods that
|
|
17
|
+
Value Generators are helper methods that produce randomized values for testing when the exact value of a type isn't important. In Algorand Python testing these generators are exposed as properties on the test context manager and accessed via `any.*` (for example, `any.arc4.*` and `any.txn.*` for ARC4 types). To learn more, see the [Value Generators section](testing-guide/concepts.md#value-generators).
|
|
18
18
|
|
|
19
19
|
## What are the limitations of the Algorand Python Testing framework?
|
|
20
20
|
|
|
@@ -26,7 +26,7 @@ The Algorand Python Testing framework emulates the Algorand Virtual Machine (AVM
|
|
|
26
26
|
4. Certain cryptographic operations are mocked or simplified
|
|
27
27
|
5. No state proof generation or verification
|
|
28
28
|
|
|
29
|
-
For scenarios where these limitations are crucial, it's recommended to pair this framework with integration testing. If you have a solid reason to justify introducing new emulated behaviour, please open an issue or contribute to the project on [
|
|
29
|
+
For scenarios where these limitations are crucial, it's recommended to pair this framework with integration testing. If you have a solid reason to justify introducing new emulated behaviour, please open an issue or contribute to the project on [GitHub](https://github.com/algorandfoundation/algorand-python-testing).
|
|
30
30
|
|
|
31
31
|
## How does balance tracking work in the testing framework?
|
|
32
32
|
|
|
@@ -46,16 +46,16 @@ Some cryptographic operations are mocked or simplified in the framework. For a d
|
|
|
46
46
|
|
|
47
47
|
## Can I use this framework for security-critical validations?
|
|
48
48
|
|
|
49
|
-
While this framework is useful for unit testing and local development, it should not be the only tool used for security-critical validations or performance benchmarking. It's designed to approximate AVM
|
|
49
|
+
While this framework is useful for unit testing and local development, it should not be the only tool used for security-critical validations or performance benchmarking. It's designed to approximate AVM behaviour for common scenarios. Always complement your testing with additional integration testing options available in `algokit`, where you can test against real localnet or testnet environments.
|
|
50
50
|
|
|
51
51
|
## Is there an example of how to use this framework alongside integration tests?
|
|
52
52
|
|
|
53
53
|
Yes, the `algokit-python-template`, accessible via `algokit init`, provides a working example of how to structure `algorand-python-testing` along with regular integration tests against localnet.
|
|
54
54
|
|
|
55
55
|
```{hint}
|
|
56
|
-
|
|
56
|
+
The `algokit-python-template`, accessible via `algokit init -t python`, provides a comprehensive and customizable working example of how to structure `algorand-python-testing` along with regular integration tests against localnet.
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
## Is it compatible with `pytest`?
|
|
60
60
|
|
|
61
|
-
Yes, it is compatible with `pytest` and _any_ other
|
|
61
|
+
Yes, it is compatible with `pytest` and _any_ other Python testing framework as it is agnostic of the testing framework as long as it's Python. If you spot incompatibility with a certain tool, please open an issue or contribute to the project on [GitHub](https://github.com/algorandfoundation/algorand-python-testing).
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/algorandfoundation/algorand-python-testing)
|
|
6
6
|
[](https://developer.algorand.org/algokit/)
|
|
7
7
|
|
|
8
|
-
`algorand-python-testing` is a companion package to [Algorand Python](https://github.com/algorandfoundation/puya) that enables efficient unit testing of Algorand Python smart contracts in an offline environment. This package emulates key AVM
|
|
8
|
+
`algorand-python-testing` is a companion package to [Algorand Python](https://github.com/algorandfoundation/puya) that enables efficient unit testing of Algorand Python smart contracts in an offline environment. This package emulates key AVM behaviours without requiring a network connection, offering fast and reliable testing capabilities with a familiar Pythonic interface.
|
|
9
9
|
|
|
10
10
|
The `algorand-python-testing` package provides:
|
|
11
11
|
|
|
@@ -160,7 +160,7 @@ This example demonstrates key aspects of testing with `algorand-python-testing`
|
|
|
160
160
|
- Checking global and local state changes after method execution.
|
|
161
161
|
- Verifying return values from ABI methods using ARC4-specific types.
|
|
162
162
|
|
|
163
|
-
> **NOTE**: Thorough testing is crucial in smart contract development due to their immutable nature post-deployment. Comprehensive unit and integration tests ensure contract validity and reliability.
|
|
163
|
+
> **NOTE**: Thorough testing is crucial in smart contract development due to their immutable nature post-deployment. Comprehensive unit and integration tests ensure contract validity and reliability. Optimising for efficiency can significantly improve user experience by reducing transaction fees and simplifying interactions. Investing in robust testing and optimisation practices is crucial and offers many benefits in the long run.
|
|
164
164
|
|
|
165
165
|
### Next steps
|
|
166
166
|
|
{algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/arc4-types.md
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# ARC4 Types
|
|
2
2
|
|
|
3
|
-
These types are available under the `algopy.arc4` namespace. Refer to the [ARC4 specification](https://
|
|
3
|
+
These types are available under the `algopy.arc4` namespace. Refer to the [ARC4 specification](https://dev.algorand.co/arc-standards/arc-0004/) for more details on the spec.
|
|
4
4
|
|
|
5
5
|
```{hint}
|
|
6
|
-
|
|
6
|
+
The test context manager provides _value generators_ for ARC4 types. To access the _value generators_, use `{context_instance}.any.arc4` property. See more examples below.
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
```{note}
|
|
@@ -63,7 +63,7 @@ address_value = arc4.Address("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
|
|
63
63
|
# Generate a random address
|
|
64
64
|
random_address = context.any.arc4.address()
|
|
65
65
|
|
|
66
|
-
# Access native
|
|
66
|
+
# Access native underlying type
|
|
67
67
|
native = random_address.native
|
|
68
68
|
```
|
|
69
69
|
|
|
@@ -76,7 +76,7 @@ from algopy import arc4
|
|
|
76
76
|
bytes_value = arc4.DynamicBytes(b"Hello, Algorand!")
|
|
77
77
|
|
|
78
78
|
# Generate random dynamic bytes
|
|
79
|
-
random_dynamic_bytes = context.any.arc4.dynamic_bytes(n=123) # n is the number of bits in the
|
|
79
|
+
random_dynamic_bytes = context.any.arc4.dynamic_bytes(n=123) # n is the number of bits in the ARC4 dynamic bytes
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
## String
|
|
@@ -88,7 +88,7 @@ from algopy import arc4
|
|
|
88
88
|
string_value = arc4.String("Hello, Algorand!")
|
|
89
89
|
|
|
90
90
|
# Generate random string
|
|
91
|
-
random_string = context.any.arc4.string(n=12) # n is the number of bits in the
|
|
91
|
+
random_string = context.any.arc4.string(n=12) # n is the number of bits in the ARC4 string
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
```{testcleanup}
|
{algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/avm-types.md
RENAMED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
These types are available directly under the `algopy` namespace. They represent the basic AVM primitive types and can be instantiated directly or via _value generators_:
|
|
4
4
|
|
|
5
5
|
```{note}
|
|
6
|
-
For
|
|
6
|
+
For primitive `algopy` types such as `Account`, `Application`, `Asset`, `UInt64`, `BigUint`, `Bytes`, and `String`, instantiation can be performed directly, with or without a corresponding _value generator_. If you have a suggestion for a new _value generator_ implementation, please open an issue in the [`algorand-python-testing`](https://github.com/algorandfoundation/algorand-python-testing) repository or contribute by following the [contribution guide](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md).
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
```{testsetup}
|
{algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/concepts.md
RENAMED
|
@@ -4,7 +4,7 @@ The following sections provide an overview of key concepts and features in the A
|
|
|
4
4
|
|
|
5
5
|
## Test Context
|
|
6
6
|
|
|
7
|
-
The main abstraction for interacting with the testing framework is the [`AlgopyTestContext`](
|
|
7
|
+
The main abstraction for interacting with the testing framework is the [`AlgopyTestContext`](#_algopy_testing.context.AlgopyTestContext). It creates an emulated Algorand environment that closely mimics AVM behaviour relevant to unit testing contracts and provides a Pythonic interface for interacting with the emulated environment.
|
|
8
8
|
|
|
9
9
|
```python
|
|
10
10
|
from algopy_testing import algopy_testing_context
|
|
@@ -24,15 +24,18 @@ The context manager interface exposes three main properties:
|
|
|
24
24
|
3. `any`: An instance of `AlgopyValueGenerator` for generating randomized test data.
|
|
25
25
|
|
|
26
26
|
For detailed method signatures, parameters, and return types, refer to the following API sections:
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
27
|
+
|
|
28
|
+
- [`algopy_testing.LedgerContext`](#_algopy_testing.context_helpers.ledger_context.LedgerContext)
|
|
29
|
+
- [`algopy_testing.TransactionContext`](#_algopy_testing.context_helpers.txn_context.TransactionContext)
|
|
30
|
+
- [`algopy_testing.AVMValueGenerator`](#_algopy_testing.value_generators.avm.AVMValueGenerator)
|
|
31
|
+
- [`algopy_testing.TxnValueGenerator`](#_algopy_testing.value_generators.txn.TxnValueGenerator)
|
|
32
|
+
- [`algopy_testing.ARC4ValueGenerator`](#_algopy_testing.value_generators.arc4.ARC4ValueGenerator)
|
|
30
33
|
|
|
31
34
|
The `any` property provides access to different value generators:
|
|
32
35
|
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
+
- `AVMValueGenerator`: Base abstractions for AVM types. All methods are available directly on the instance returned from `any`.
|
|
37
|
+
- `TxnValueGenerator`: Accessible via `any.txn`, for transaction-related data.
|
|
38
|
+
- `ARC4ValueGenerator`: Accessible via `any.arc4`, for ARC4 type data.
|
|
36
39
|
|
|
37
40
|
These generators allow creation of constrained random values for various AVM entities (accounts, assets, applications, etc.) when specific values are not required.
|
|
38
41
|
|
|
@@ -50,9 +53,8 @@ As explained in the [introduction](index.md), `algorand-python-testing` _injects
|
|
|
50
53
|
|
|
51
54
|
1. **Native**: Fully matches AVM computation in Python. For example, `algopy.op.sha256` and other cryptographic operations behave identically in AVM and unit tests. This implies that the majority of opcodes that are 'pure' functions in AVM also have a native Python implementation provided by this package. These abstractions and opcodes can be used within and outside of the testing context.
|
|
52
55
|
|
|
53
|
-
2. **Emulated**: Uses `AlgopyTestContext` to mimic AVM
|
|
56
|
+
2. **Emulated**: Uses `AlgopyTestContext` to mimic AVM behaviour. For example, `Box.put` on an `algopy.Box` within a test context stores data in the test manager, not the real Algorand network, but provides the same interface.
|
|
54
57
|
|
|
55
|
-
3. **Mockable**: Not implemented, but can be mocked or patched. For example, `algopy.abi_call` can be mocked to return specific values or
|
|
58
|
+
3. **Mockable**: Not implemented, but can be mocked or patched. For example, `algopy.abi_call` can be mocked to return specific values or behaviours; otherwise, it raises a `NotImplementedError`. This category covers cases where native or emulated implementation in a unit test context is impractical or overly complex.
|
|
56
59
|
|
|
57
|
-
For a full list of all public `algopy` types and their corresponding implementation category, refer to the [Coverage](coverage.md) section.
|
|
58
|
-
```
|
|
60
|
+
For a full list of all public `algopy` types and their corresponding implementation category, refer to the [Coverage](../coverage.md) section.
|