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.
Files changed (393) hide show
  1. algorand_python_testing-1.0.0/.github/workflows/ci.yaml +77 -0
  2. algorand_python_testing-1.0.0/CHANGELOG.md +300 -0
  3. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/PKG-INFO +3 -2
  4. algorand_python_testing-1.0.0/docs/algopy.md +9 -0
  5. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/api.md +3 -3
  6. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/coverage.md +3 -2
  7. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/examples.md +3 -3
  8. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/faq.md +5 -5
  9. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/index.md +2 -2
  10. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/arc4-types.md +5 -5
  11. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/avm-types.md +1 -1
  12. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/concepts.md +13 -11
  13. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/contract-testing.md +4 -4
  14. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/index.md +3 -3
  15. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/opcodes.md +2 -2
  16. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/transactions.md +4 -4
  17. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/marketplace/contract.py +14 -14
  18. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/marketplace/test_contract.py +12 -12
  19. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/proof_of_attendance/contract.py +4 -4
  20. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/pyproject.toml +29 -9
  21. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/arc4.py +166 -60
  22. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/txn_context.py +2 -1
  23. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/decorators/arc4.py +67 -22
  24. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/itxn.py +20 -12
  25. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/application.py +1 -0
  26. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/contract.py +3 -3
  27. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/txn_fields.py +187 -17
  28. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/pure.py +8 -9
  29. algorand_python_testing-1.0.0/src/_algopy_testing/primitives/__init__.py +27 -0
  30. algorand_python_testing-1.0.0/src/_algopy_testing/primitives/array.py +575 -0
  31. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/bytes.py +3 -2
  32. algorand_python_testing-1.0.0/src/_algopy_testing/serialize.py +211 -0
  33. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/box.py +74 -6
  34. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/global_state.py +6 -7
  35. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/local_state.py +3 -3
  36. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/utils.py +10 -2
  37. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utils.py +23 -4
  38. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/avm.py +1 -0
  39. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/__init__.py +19 -2
  40. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/conftest.py +1 -1
  41. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_address.py +7 -0
  42. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_arc4_method_signature.py +104 -1
  43. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_bool.py +4 -1
  44. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_dynamic_array.py +57 -0
  45. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_dynamic_bytes.py +6 -6
  46. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_emit.py +2 -2
  47. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_static_array.py +67 -0
  48. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_string.py +4 -1
  49. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_struct.py +2 -0
  50. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_tuple.py +17 -0
  51. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_ufixednxm.py +6 -2
  52. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_uintn.py +77 -5
  53. algorand_python_testing-1.0.0/tests/artifacts/AVM12/contract.py +45 -0
  54. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/Contract.approval.teal +159 -0
  55. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/Contract.arc56.json +131 -0
  56. {algorand_python_testing-0.6.0b2/tests/artifacts/Arrays → algorand_python_testing-1.0.0/tests/artifacts/AVM12}/data/Contract.clear.teal +1 -1
  57. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV0.approval.teal +44 -0
  58. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV0.arc56.json +102 -0
  59. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV0.clear.teal +7 -0
  60. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV1.approval.teal +44 -0
  61. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV1.arc56.json +102 -0
  62. algorand_python_testing-1.0.0/tests/artifacts/AVM12/data/ContractV1.clear.teal +7 -0
  63. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4ABIMethod/contract.py +32 -4
  64. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +282 -295
  65. algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +305 -0
  66. algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc56.json +480 -0
  67. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +21 -37
  68. algorand_python_testing-1.0.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +55 -0
  69. algorand_python_testing-1.0.0/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc56.json +101 -0
  70. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +1 -1
  71. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4PrimitiveOps/contract.py +21 -1
  72. algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +1807 -0
  73. algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +1101 -0
  74. algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc56.json +1587 -0
  75. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +1 -1
  76. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/Contract.approval.teal +669 -724
  77. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/Contract.arc32.json +198 -0
  78. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/Contract.arc56.json +373 -0
  79. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/Contract.clear.teal +7 -0
  80. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.approval.teal +272 -0
  81. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.arc56.json +144 -0
  82. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/DynamicArrayInitContract.clear.teal +7 -0
  83. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +1515 -1577
  84. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +498 -0
  85. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayContract.arc56.json +804 -0
  86. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +1 -1
  87. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.approval.teal +272 -0
  88. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/ImmutableArrayInitContract.arc56.json +144 -0
  89. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +1099 -0
  90. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +175 -0
  91. algorand_python_testing-1.0.0/tests/artifacts/Arrays/data/StaticSizeContract.arc56.json +327 -0
  92. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +1 -1
  93. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/immutable.py +194 -10
  94. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/static_size.py +61 -14
  95. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arrays/uint64.py +62 -18
  96. algorand_python_testing-1.0.0/tests/artifacts/BoxContract/contract.py +350 -0
  97. algorand_python_testing-1.0.0/tests/artifacts/BoxContract/data/BoxContract.approval.teal +1795 -0
  98. algorand_python_testing-1.0.0/tests/artifacts/BoxContract/data/BoxContract.arc32.json +63 -0
  99. algorand_python_testing-1.0.0/tests/artifacts/BoxContract/data/BoxContract.arc56.json +780 -0
  100. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +1 -1
  101. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Contains/data/MyContract.approval.teal +2 -4
  102. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Contains/data/MyContract.clear.teal +1 -1
  103. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +20 -27
  104. algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +50 -0
  105. algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppCall.arc56.json +96 -0
  106. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +1 -1
  107. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +54 -100
  108. algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +77 -0
  109. algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc56.json +181 -0
  110. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +1 -1
  111. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +359 -636
  112. algorand_python_testing-1.0.0/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +368 -0
  113. algorand_python_testing-1.0.0/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc56.json +450 -0
  114. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +1 -1
  115. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +23 -41
  116. algorand_python_testing-1.0.0/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +59 -0
  117. algorand_python_testing-1.0.0/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc56.json +111 -0
  118. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +1 -1
  119. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/MiscellaneousOps/contract.py +4 -4
  120. algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +938 -0
  121. algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +858 -0
  122. algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc56.json +1012 -0
  123. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +1 -1
  124. algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +1667 -0
  125. algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +1393 -0
  126. algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc56.json +1616 -0
  127. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +1 -1
  128. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +185 -154
  129. algorand_python_testing-1.0.0/tests/artifacts/StateMutations/data/StateMutations.arc32.json +95 -0
  130. algorand_python_testing-1.0.0/tests/artifacts/StateMutations/data/StateMutations.arc56.json +265 -0
  131. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +1 -1
  132. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/contract.py +30 -16
  133. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +658 -0
  134. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +563 -0
  135. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/GlobalStateContract.arc56.json +801 -0
  136. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +1 -1
  137. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +33 -42
  138. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +1 -1
  139. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/ITxnOpsContract.arc56.json +96 -0
  140. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +1 -1
  141. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +487 -0
  142. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +381 -0
  143. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/LocalStateContract.arc56.json +583 -0
  144. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +1 -1
  145. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +241 -512
  146. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +307 -0
  147. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc56.json +478 -0
  148. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +7 -0
  149. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +186 -0
  150. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +188 -0
  151. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalContract.arc56.json +254 -0
  152. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +1 -1
  153. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +23 -25
  154. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +1 -1
  155. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc56.json +104 -0
  156. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +1 -1
  157. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +244 -0
  158. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +251 -0
  159. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalContract.arc56.json +329 -0
  160. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +1 -1
  161. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +22 -29
  162. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +63 -0
  163. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppLocalExContract.arc56.json +112 -0
  164. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +1 -1
  165. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +171 -345
  166. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +199 -0
  167. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAppParamsContract.arc56.json +297 -0
  168. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +1 -1
  169. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +74 -0
  170. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +81 -0
  171. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc56.json +130 -0
  172. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +1 -1
  173. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +184 -415
  174. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +253 -0
  175. algorand_python_testing-1.0.0/tests/artifacts/StateOps/data/StateAssetParamsContract.arc56.json +366 -0
  176. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +1 -1
  177. algorand_python_testing-1.0.0/tests/artifacts/Tuples/contract.py +11 -0
  178. algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.approval.teal +34 -0
  179. algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.arc32.json +50 -0
  180. algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.arc56.json +96 -0
  181. algorand_python_testing-1.0.0/tests/artifacts/Tuples/data/TuplesContract.clear.teal +7 -0
  182. algorand_python_testing-1.0.0/tests/avm12/conftest.py +14 -0
  183. algorand_python_testing-1.0.0/tests/avm12/test_avm12.py +66 -0
  184. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/common.py +4 -0
  185. algorand_python_testing-1.0.0/tests/models/test_box.py +588 -0
  186. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_box_map.py +114 -57
  187. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_box_ref.py +53 -42
  188. {algorand_python_testing-0.6.0b2/tests/utilities → algorand_python_testing-1.0.0/tests/primitives}/conftest.py +1 -1
  189. algorand_python_testing-1.0.0/tests/state/__init__.py +0 -0
  190. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/state/conftest.py +2 -2
  191. algorand_python_testing-1.0.0/tests/state/test_global_state.py +310 -0
  192. algorand_python_testing-1.0.0/tests/state/test_local_state.py +181 -0
  193. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_array.py +64 -14
  194. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_context.py +1 -1
  195. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_miscellaneous_op.py +60 -62
  196. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/test_op.py +9 -9
  197. algorand_python_testing-1.0.0/tests/utilities/__init__.py +0 -0
  198. {algorand_python_testing-0.6.0b2/tests/primitives → algorand_python_testing-1.0.0/tests/utilities}/conftest.py +1 -1
  199. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/utilities/test_log.py +2 -2
  200. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/utilities/test_size_of.py +33 -5
  201. algorand_python_testing-1.0.0/tests/value_generators/__init__.py +0 -0
  202. algorand_python_testing-0.6.0b2/.github/workflows/ci.yaml +0 -47
  203. algorand_python_testing-0.6.0b2/CHANGELOG.md +0 -426
  204. algorand_python_testing-0.6.0b2/docs/algopy.md +0 -9
  205. algorand_python_testing-0.6.0b2/src/_algopy_testing/primitives/__init__.py +0 -7
  206. algorand_python_testing-0.6.0b2/src/_algopy_testing/primitives/array.py +0 -144
  207. algorand_python_testing-0.6.0b2/src/_algopy_testing/serialize.py +0 -158
  208. algorand_python_testing-0.6.0b2/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -253
  209. algorand_python_testing-0.6.0b2/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -55
  210. algorand_python_testing-0.6.0b2/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -2361
  211. algorand_python_testing-0.6.0b2/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -1029
  212. algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/Contract.arc32.json +0 -172
  213. algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -450
  214. algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -902
  215. algorand_python_testing-0.6.0b2/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -162
  216. algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract/contract.py +0 -19
  217. algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -128
  218. algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -63
  219. algorand_python_testing-0.6.0b2/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -50
  220. algorand_python_testing-0.6.0b2/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -77
  221. algorand_python_testing-0.6.0b2/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -368
  222. algorand_python_testing-0.6.0b2/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -59
  223. algorand_python_testing-0.6.0b2/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -1656
  224. algorand_python_testing-0.6.0b2/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -858
  225. algorand_python_testing-0.6.0b2/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -2834
  226. algorand_python_testing-0.6.0b2/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -1393
  227. algorand_python_testing-0.6.0b2/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -95
  228. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -935
  229. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -528
  230. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -695
  231. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -359
  232. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -307
  233. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -311
  234. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -188
  235. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -406
  236. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -251
  237. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -63
  238. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -199
  239. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -122
  240. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -81
  241. algorand_python_testing-0.6.0b2/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -253
  242. algorand_python_testing-0.6.0b2/tests/models/test_box.py +0 -357
  243. algorand_python_testing-0.6.0b2/tests/state/test_global_state.py +0 -133
  244. algorand_python_testing-0.6.0b2/tests/state/test_local_state.py +0 -49
  245. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.coveragerc +0 -0
  246. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.editorconfig +0 -0
  247. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  248. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  249. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/dependabot.yml +0 -0
  250. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/pull_request_template.md +0 -0
  251. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/workflows/cd.yaml +0 -0
  252. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.github/workflows/gh-pages.yaml +0 -0
  253. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.gitignore +0 -0
  254. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.pre-commit-config.yaml +0 -0
  255. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.vscode/extensions.json +0 -0
  256. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.vscode/launch.json +0 -0
  257. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/.vscode/settings.json +0 -0
  258. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/CONTRIBUTING.md +0 -0
  259. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/LICENSE +0 -0
  260. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/README.md +0 -0
  261. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/Makefile +0 -0
  262. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/__init__.py +0 -0
  263. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/_static/custom.css +0 -0
  264. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/conf.py +0 -0
  265. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/make.bat +0 -0
  266. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/signature-testing.md +0 -0
  267. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/state-management.md +0 -0
  268. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/docs/testing-guide/subroutines.md +0 -0
  269. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/README.md +0 -0
  270. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/__init__.py +0 -0
  271. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/auction/__init__.py +0 -0
  272. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/auction/contract.py +0 -0
  273. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/auction/test_contract.py +0 -0
  274. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/htlc_logicsig/__init__.py +0 -0
  275. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/htlc_logicsig/signature.py +0 -0
  276. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/htlc_logicsig/test_signature.py +0 -0
  277. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/marketplace/__init__.py +0 -0
  278. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/proof_of_attendance/__init__.py +0 -0
  279. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/proof_of_attendance/test_contract.py +0 -0
  280. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/scratch_storage/__init__.py +0 -0
  281. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/scratch_storage/contract.py +0 -0
  282. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/scratch_storage/test_contract.py +0 -0
  283. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/simple_voting/__init__.py +0 -0
  284. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/simple_voting/contract.py +0 -0
  285. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/simple_voting/test_contract.py +0 -0
  286. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/zk_whitelist/__init__.py +0 -0
  287. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/zk_whitelist/contract.py +0 -0
  288. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/examples/zk_whitelist/test_contract.py +0 -0
  289. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/__init__.py +0 -0
  290. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/check_stubs_cov.py +0 -0
  291. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/refresh_test_artifacts.py +0 -0
  292. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/scripts/validate_examples.py +0 -0
  293. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/__init__.py +0 -0
  294. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/compiled.py +0 -0
  295. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/constants.py +0 -0
  296. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context.py +0 -0
  297. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/__init__.py +0 -0
  298. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
  299. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
  300. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/decorators/__init__.py +0 -0
  301. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/decorators/subroutine.py +0 -0
  302. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/enums.py +0 -0
  303. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/gtxn.py +0 -0
  304. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/itxn_loader.py +0 -0
  305. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/__init__.py +0 -0
  306. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/account.py +0 -0
  307. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/asset.py +0 -0
  308. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/logicsig.py +0 -0
  309. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/template_variable.py +0 -0
  310. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
  311. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/mutable.py +0 -0
  312. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/__init__.py +0 -0
  313. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/block.py +0 -0
  314. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/constants.py +0 -0
  315. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/crypto.py +0 -0
  316. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/global_values.py +0 -0
  317. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/itxn.py +0 -0
  318. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/misc.py +0 -0
  319. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/op/txn.py +0 -0
  320. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/biguint.py +0 -0
  321. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/string.py +0 -0
  322. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/primitives/uint64.py +0 -0
  323. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/protocols.py +0 -0
  324. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/py.typed +0 -0
  325. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/state/__init__.py +0 -0
  326. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/__init__.py +0 -0
  327. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/budget.py +0 -0
  328. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/log.py +0 -0
  329. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/utilities/size_of.py +0 -0
  330. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/__init__.py +0 -0
  331. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/arc4.py +0 -0
  332. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/_algopy_testing/value_generators/txn.py +0 -0
  333. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/arc4.py +0 -0
  334. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/gtxn.py +0 -0
  335. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/itxn.py +0 -0
  336. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/op.py +0 -0
  337. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy/py.typed +0 -0
  338. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy_testing/__init__.py +0 -0
  339. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/src/algopy_testing/py.typed +0 -0
  340. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/templates/.macros.j2 +0 -0
  341. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/templates/.release_notes.md.j2 +0 -0
  342. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/templates/CHANGELOG.md.j2 +0 -0
  343. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/__init__.py +0 -0
  344. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/__init__.py +0 -0
  345. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/arc4/test_abi_call.py +0 -0
  346. {algorand_python_testing-0.6.0b2/tests/artifacts/Arc4ABIMethod → algorand_python_testing-1.0.0/tests/artifacts/AVM12}/__init__.py +0 -0
  347. {algorand_python_testing-0.6.0b2/tests/artifacts/Arc4InnerTxns → algorand_python_testing-1.0.0/tests/artifacts/Arc4ABIMethod}/__init__.py +0 -0
  348. /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
  349. {algorand_python_testing-0.6.0b2/tests/artifacts/Arc4PrimitiveOps → algorand_python_testing-1.0.0/tests/artifacts/Arc4InnerTxns}/__init__.py +0 -0
  350. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
  351. {algorand_python_testing-0.6.0b2/tests/artifacts/Arrays → algorand_python_testing-1.0.0/tests/artifacts/Arc4PrimitiveOps}/__init__.py +0 -0
  352. {algorand_python_testing-0.6.0b2/tests/artifacts/BoxContract → algorand_python_testing-1.0.0/tests/artifacts/Arrays}/__init__.py +0 -0
  353. /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
  354. {algorand_python_testing-0.6.0b2/tests/artifacts/Contains → algorand_python_testing-1.0.0/tests/artifacts/BoxContract}/__init__.py +0 -0
  355. {algorand_python_testing-0.6.0b2/tests/artifacts/CreatedAppAsset → algorand_python_testing-1.0.0/tests/artifacts/Contains}/__init__.py +0 -0
  356. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/Contains/contract.py +0 -0
  357. {algorand_python_testing-0.6.0b2/tests/artifacts/CryptoOps → algorand_python_testing-1.0.0/tests/artifacts/CreatedAppAsset}/__init__.py +0 -0
  358. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
  359. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CreatedAppAsset/other.py +0 -0
  360. {algorand_python_testing-0.6.0b2/tests/artifacts/GlobalStateValidator → algorand_python_testing-1.0.0/tests/artifacts/CryptoOps}/__init__.py +0 -0
  361. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/CryptoOps/contract.py +0 -0
  362. {algorand_python_testing-0.6.0b2/tests/artifacts/MiscellaneousOps → algorand_python_testing-1.0.0/tests/artifacts/GlobalStateValidator}/__init__.py +0 -0
  363. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
  364. {algorand_python_testing-0.6.0b2/tests/artifacts/PrimitiveOps → algorand_python_testing-1.0.0/tests/artifacts/MiscellaneousOps}/__init__.py +0 -0
  365. {algorand_python_testing-0.6.0b2/tests/artifacts/StateMutations → algorand_python_testing-1.0.0/tests/artifacts/PrimitiveOps}/__init__.py +0 -0
  366. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/PrimitiveOps/contract.py +0 -0
  367. {algorand_python_testing-0.6.0b2/tests/artifacts/StateOps → algorand_python_testing-1.0.0/tests/artifacts/StateMutations}/__init__.py +0 -0
  368. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
  369. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
  370. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
  371. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateMutations/statemutations.py +0 -0
  372. {algorand_python_testing-0.6.0b2/tests/artifacts → algorand_python_testing-1.0.0/tests/artifacts/StateOps}/__init__.py +0 -0
  373. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
  374. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
  375. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
  376. {algorand_python_testing-0.6.0b2/tests/contexts → algorand_python_testing-1.0.0/tests/artifacts/Tuples}/__init__.py +0 -0
  377. {algorand_python_testing-0.6.0b2/tests/models → algorand_python_testing-1.0.0/tests/artifacts}/__init__.py +0 -0
  378. {algorand_python_testing-0.6.0b2/tests/primitives → algorand_python_testing-1.0.0/tests/avm12}/__init__.py +0 -0
  379. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/conftest.py +0 -0
  380. {algorand_python_testing-0.6.0b2/tests/state → algorand_python_testing-1.0.0/tests/contexts}/__init__.py +0 -0
  381. {algorand_python_testing-0.6.0b2/tests/utilities → algorand_python_testing-1.0.0/tests/models}/__init__.py +0 -0
  382. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_asset.py +0 -0
  383. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_contract.py +0 -0
  384. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_uenumerate.py +0 -0
  385. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/models/test_urange.py +0 -0
  386. {algorand_python_testing-0.6.0b2/tests/value_generators → algorand_python_testing-1.0.0/tests/primitives}/__init__.py +0 -0
  387. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_biguint.py +0 -0
  388. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_bytes.py +0 -0
  389. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_string.py +0 -0
  390. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/primitives/test_uint64.py +0 -0
  391. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/state/test_mutations.py +0 -0
  392. {algorand_python_testing-0.6.0b2 → algorand_python_testing-1.0.0}/tests/util.py +0 -0
  393. {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.6.0b2
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>=2.0
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`'s `algopy_testing` module - covering the main classes and functions.
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, please submit an issue or a PR on [GitHub](https://github.com/algorand/algorand-python-testing).
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, assume `_algopy_testing` to refer to `algopy_testing` namespace in the auto-generated class documentation above. To be patched in near future.
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 the stubs for which the `algorand-python-testing` library provides implementations referenced in the table below.
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\_\* methods for generating test data | - **ARC4Contract**<br>- **Box**<br>- **BoxMap**<br>- **Asset**<br>- **Account**<br>- **op** |
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>- **arc4 types**<br>- **LocalState**<br>- **Global**<br>- **Txn** |
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>- **arc4 types**<br>- **Global**<br>- **Txn** |
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 generate randomized values for testing when the specific value of the tested type is not important. In the context of Algorand Python testing, these are represented by property on the context manager, accessed via `any.*` (or `any.arc4.*`, `any.txn.*`. in the case of ARC 4 types). To understand how to use Value Generators effectively, check out our [Value Generators section](testing-guide/concepts.md#value-generators) in the documentation.
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 [Github](https://github.com/algorandfoundation/algorand-python-testing).
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 behavior 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.
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
- An `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.
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 python testing framework as its agnostic of the testing framework as long as its 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).
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
  [![github-stars](https://img.shields.io/github/stars/algorandfoundation/algorand-python-testing?color=74dfdc&logo=star&style=flat)](https://github.com/algorandfoundation/algorand-python-testing)
6
6
  [![visitor-badge](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Falgorandfoundation%2Falgorand-python-testing&countColor=%2374dfdc&style=flat)](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 behaviors without requiring a network connection, offering fast and reliable testing capabilities with a familiar Pythonic interface.
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. Optimizing for efficiency can significantly improve user experience by reducing transaction fees and simplifying interactions. Investing in robust testing and optimization practices is crucial and offers many benefits in the long run.
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
 
@@ -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://arc.algorand.foundation/ARCs/arc-0004) for more details on the spec.
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
- Test context manager provides _value generators_ for ARC4 types. To access their _value generators_, use `{context_instance}.any.arc4` property. See more examples below.
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 underlaying type
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 arc4 dynamic bytes
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 arc4 string
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}
@@ -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 'primitive `algopy` types such as `Account`, `Application`, `Asset`, `UInt64`, `BigUint`, `Bytes`, `Sting` with and without respective _value generator_, instantiation can be performed directly. 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).
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}
@@ -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`](../api-context.md#algopy_testing.AlgopyTestContext). It creates an emulated Algorand environment that closely mimics AVM behavior relevant to unit testing the contracts and provides a Pythonic interface for interacting with the emulated environment.
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
- - [`algopy_testing.LedgerContext`](../api.md)
28
- - [`algopy_testing.TransactionContext`](../api.md)
29
- - [`algopy_testing.AVMValueGenerator`, `algopy_testing.TxnValueGenerator`, `algopy_testing.ARC4ValueGenerator`](../api.md)
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
- - `AVMValueGenerator`: Base abstractions for AVM types. All methods are available directly on the instance returned from `any`.
34
- - `TxnValueGenerator`: Accessible via `any.txn`, for transaction-related data.
35
- - `ARC4ValueGenerator`: Accessible via `any.arc4`, for ARC4 type data.
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 behavior. 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.
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 behaviors; otherwise, it raises a `NotImplementedError`. This category covers cases where native or emulated implementation in a unit test context is impractical or overly complex.
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.