Skip to content

Commit

Permalink
Make name-to-address middleware tests more robust
Browse files Browse the repository at this point in the history
- Add tests for sequence arg types for methods as well as dict arg type
  • Loading branch information
fselmo committed Jun 30, 2023
1 parent ce34259 commit c521167
Showing 1 changed file with 91 additions and 7 deletions.
98 changes: 91 additions & 7 deletions tests/core/middleware/test_name_to_address_middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
EthereumTesterProvider,
)


NAME = "tester.eth"


Expand All @@ -42,16 +41,58 @@ def ens_mapped_address(_w3_setup):
return _w3_setup.eth.accounts[0]


@pytest.fixture
def ens_addr_account_balance(ens_mapped_address, _w3_setup):
return _w3_setup.eth.get_balance(ens_mapped_address)


@pytest.fixture
def w3(_w3_setup, ens_mapped_address):
_w3_setup.ens = TempENS({NAME: ens_mapped_address})
_w3_setup.middleware_onion.add(name_to_address_middleware(_w3_setup))
return _w3_setup


def test_pass_name_resolver(w3, ens_mapped_address):
known_account_balance = w3.eth.get_balance(ens_mapped_address)
assert w3.eth.get_balance(NAME) == known_account_balance
@pytest.mark.parametrize(
"params",
(
[NAME, "latest"],
[NAME, 0],
[NAME],
),
)
def test_pass_name_resolver_get_balance_list_args(
w3,
ens_addr_account_balance,
params,
):
assert w3.eth.get_balance(*params) == ens_addr_account_balance


@pytest.mark.parametrize(
"params",
(
{"value": 1, "from": NAME, "to": NAME, "gas": 21000},
{
"value": 1,
"maxPriorityFeePerGas": 10**9,
"from": NAME,
"to": NAME,
"gas": 21000,
},
{"value": 1, "to": NAME, "gas": 21000, "from": NAME},
),
)
def test_pass_name_resolver_send_transaction_dict_args(
w3,
params,
ens_mapped_address,
):
tx_hash = w3.eth.send_transaction(params)

tx = w3.eth.get_transaction(tx_hash)
assert tx["from"] == ens_mapped_address
assert tx["to"] == ens_mapped_address


def test_fail_name_resolver(w3):
Expand All @@ -78,6 +119,11 @@ async def async_ens_mapped_address(_async_w3_setup):
return accts[0]


@pytest_asyncio.fixture
async def async_ens_addr_account_balance(async_ens_mapped_address, _async_w3_setup):
return await _async_w3_setup.eth.get_balance(async_ens_mapped_address)


@pytest_asyncio.fixture
async def async_w3(_async_w3_setup, async_ens_mapped_address):
_async_w3_setup.ens = AsyncTempENS({NAME: async_ens_mapped_address})
Expand All @@ -86,9 +132,47 @@ async def async_w3(_async_w3_setup, async_ens_mapped_address):


@pytest.mark.asyncio
async def test_async_pass_name_resolver(async_w3, async_ens_mapped_address):
known_account_balance = await async_w3.eth.get_balance(async_ens_mapped_address)
assert await async_w3.eth.get_balance(NAME) == known_account_balance
@pytest.mark.parametrize(
"params",
(
[NAME, "latest"],
[NAME, 0],
[NAME],
),
)
async def test_async_pass_name_resolver_get_balance_list_args(
async_w3,
async_ens_addr_account_balance,
params,
):
assert await async_w3.eth.get_balance(*params) == async_ens_addr_account_balance


@pytest.mark.asyncio
@pytest.mark.parametrize(
"params",
(
{"value": 1, "from": NAME, "to": NAME, "gas": 21000},
{
"value": 1,
"maxPriorityFeePerGas": 10**9,
"from": NAME,
"to": NAME,
"gas": 21000,
},
{"value": 1, "to": NAME, "gas": 21000, "from": NAME},
),
)
async def test_async_pass_name_resolver_send_transaction_dict_args(
async_w3,
params,
async_ens_mapped_address,
):
tx_hash = await async_w3.eth.send_transaction(params)

tx = await async_w3.eth.get_transaction(tx_hash)
assert tx["from"] == async_ens_mapped_address
assert tx["to"] == async_ens_mapped_address


@pytest.mark.asyncio
Expand Down

0 comments on commit c521167

Please sign in to comment.