From c521167338a363d5d4486170598ccb814d34f9e1 Mon Sep 17 00:00:00 2001 From: fselmo Date: Fri, 30 Jun 2023 13:04:42 -0600 Subject: [PATCH] Make name-to-address middleware tests more robust - Add tests for sequence arg types for methods as well as dict arg type --- .../test_name_to_address_middleware.py | 98 +++++++++++++++++-- 1 file changed, 91 insertions(+), 7 deletions(-) diff --git a/tests/core/middleware/test_name_to_address_middleware.py b/tests/core/middleware/test_name_to_address_middleware.py index 981746f18e..c05c153746 100644 --- a/tests/core/middleware/test_name_to_address_middleware.py +++ b/tests/core/middleware/test_name_to_address_middleware.py @@ -20,7 +20,6 @@ EthereumTesterProvider, ) - NAME = "tester.eth" @@ -42,6 +41,11 @@ 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}) @@ -49,9 +53,46 @@ def w3(_w3_setup, ens_mapped_address): 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): @@ -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}) @@ -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