algorand / algorand/pyteal

Router testing with graviton - RouterSimulation doesn't handle overloaded method names

オープン
#662 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
new-feature-request Team Scytale
主要言語
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 はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。