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 はまだ評価されていません。