The diff in graviton_blackbox.py is difficult to read through. Instead of looking at the diff, I encourage looking at the actual code. Additionally, this is a testing library, and therefore (IMO) we can gain most of the confidence by looking at the resulting tests both here and in the companion pyteal PR.
Issues Addressed
38
40
Summary of changes
graviton/blackbox.py - this one's hard to grok because I reordered the classes. In addition:
Introducing class DryRunTransactionParams for better grouping of some variables
Trimming stale comments
class DryRunExecutor:
Removed all the static dryrun_* methods and consolidated functionality as follows:
It is now expected that the user will instantiate a DryRunExecutor object and call run() on it. Convenience methods run_one() and run_sequence() are also provided, and these have better type guarantees.
*_test.py and quadratic_factoring_game.ipynb - Migrating all the tests to use run_one() and run_sequence() methods (except for the usage of AbiContractExecutor.dry_run_on_sequence() which remains unaffected)
TODO's
[ ] Address @michaeldiamant comments in #42 concerning an untested pathway and a suggested patch.
Note for reviewers.
The diff in
graviton_blackbox.py
is difficult to read through. Instead of looking at the diff, I encourage looking at the actual code. Additionally, this is a testing library, and therefore (IMO) we can gain most of the confidence by looking at the resulting tests both here and in the companion pyteal PR.Issues Addressed
38
40
Summary of changes
graviton/blackbox.py
- this one's hard to grok because I reordered the classes. In addition:class DryRunTransactionParams
for better grouping of some variablesclass DryRunExecutor
:dryrun_*
methods and consolidated functionality as follows:DryRunExecutor
object and callrun()
on it. Convenience methodsrun_one()
andrun_sequence()
are also provided, and these have better type guarantees.*_test.py
andquadratic_factoring_game.ipynb
- Migrating all the tests to userun_one()
andrun_sequence()
methods (except for the usage ofAbiContractExecutor.dry_run_on_sequence()
which remains unaffected)TODO's