From 00b5fedcc2bbbef0b209f23ae90278e737e2c384 Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Mon, 26 Aug 2024 13:54:19 -0500 Subject: [PATCH] test: add test --- tests/functional/test_chain.py | 9 --------- tests/functional/test_contract.py | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/tests/functional/test_chain.py b/tests/functional/test_chain.py index 897e800e8f..a380cc62bb 100644 --- a/tests/functional/test_chain.py +++ b/tests/functional/test_chain.py @@ -159,12 +159,3 @@ def test_set_pending_timestamp_failure(chain): def test_set_balance(chain, owner): with pytest.raises(APINotImplementedError): chain.set_balance(owner, "1000 ETH") - - -def test_get_contract_by_abi(chain, vyper_contract_instance): - contract = chain.contracts.instance_at( - vyper_contract_instance.address, abi=vyper_contract_instance.contract_type.abi - ) - - assert contract.address == vyper_contract_instance.address - assert contract.contract_type.abi == vyper_contract_instance.contract_type.abi diff --git a/tests/functional/test_contract.py b/tests/functional/test_contract.py index c46f4cf457..eaaa8b03cf 100644 --- a/tests/functional/test_contract.py +++ b/tests/functional/test_contract.py @@ -40,6 +40,28 @@ def test_Contract_from_json_str(contract_instance): assert contract.myNumber() == 0 +def test_Contract_from_json_str_retrieval_check_fails(mocker, chain, vyper_contract_instance): + """ + Tests a bug when providing an abi= but fetch-attemp raises that we don't + raise since the abi was already given. + """ + # Make `.get()` fail. + orig = chain.contracts.get + mock_get = mocker.MagicMock() + mock_get.side_effect = Exception + + abi_str = json.dumps([abi.model_dump() for abi in vyper_contract_instance.contract_type.abi]) + + chain.contracts.get = mock_get + try: + contract = Contract(vyper_contract_instance.address, abi=abi_str) + finally: + chain.contracts.get = orig + + # Mostly, we are asserting it did not fail. + assert isinstance(contract, ContractInstance) + + def test_Contract_from_file(contract_instance): """ need feedback about the json file specifications