Router testing with graviton - RouterSimulation doesn't handle overloaded method names
- 主要语言
- Python
- 星标
- 288
- 派生
- 138
- PR 合并指标
- 30 天内没有已合并 PR
描述
## Problem
Class `tests.blackbox.RouterSimulation` doesn't handle overloaded method names. In particular, consider [this example](https://github.com/algorand/pyteal/blob/89abe752b55355a337a4cbd40f64f72f0a0ea267/tests/integration/abi_router_test.py#L53); if another method in the router had the abi-signature `add(uint64,uint64)void` then `RouterSimulation` would act non-deterministically.
## Solution
[CallPredicates type](https://github.com/algorand/pyteal/blob/ac8ad40f04e10ef1aea8042bae6de2710326fa98/tests/blackbox.py#L73) should be keyed off method _signature_ as opposed to current method name. This will involve refactoring a few dependencies.
## Dependencies
None
## Urgency
Low - for the purposes of PyTeal itself, it is easy to work around the issue by not over-loading method names. However, if there is sufficient community interest in re-using `RouterSimulation` for smart contract testing, then it ought to be improved in the way described.
贡献指南
评估
这个 Issue 还没有评估数据。