Skip to content

Commit

Permalink
Skip Sourcify tests if there's an error
Browse files Browse the repository at this point in the history
  • Loading branch information
Uxio0 committed Dec 19, 2023
1 parent 5d2958a commit 6851f64
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
3 changes: 3 additions & 0 deletions gnosis/eth/clients/sourcify_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ def _do_request(self, url: str) -> Optional[Dict[str, Any]]:
return response.json()

def is_chain_supported(self, chain_id: int) -> bool:
chains = self.get_chains()
if not chains:
raise IOError("Cannot get chains for SourcifyClient")
return chain_id in (int(chain["chainId"]) for chain in self.get_chains())

@cache
Expand Down
15 changes: 12 additions & 3 deletions gnosis/eth/tests/clients/test_sourcify_client.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from typing import List
from unittest import mock
from unittest.mock import MagicMock

from django.test import TestCase

Expand All @@ -8,21 +10,28 @@


class TestSourcifyClient(TestCase):
def test_init(self):
@mock.patch.object(SourcifyClient, "is_chain_supported")
def test_init(self, is_chain_supported_mock: MagicMock):
is_chain_supported_mock.return_value = False
with self.assertRaises(SourcifyClientConfigurationProblem):
SourcifyClient(EthereumNetwork.OLYMPIC)

is_chain_supported_mock.return_value = True
self.assertIsInstance(SourcifyClient(), SourcifyClient)
self.assertIsInstance(SourcifyClient(EthereumNetwork.GNOSIS), SourcifyClient)

def test_is_chain_supported(self):
sourcify = SourcifyClient()
try:
sourcify = SourcifyClient()
except IOError:
self.skipTest("Cannot connect to Sourcify")

self.assertTrue(sourcify.is_chain_supported(EthereumNetwork.MAINNET.value))
self.assertTrue(sourcify.is_chain_supported(EthereumNetwork.GNOSIS.value))
self.assertFalse(sourcify.is_chain_supported(2))

def test_get_contract_metadata(self):
@mock.patch.object(SourcifyClient, "is_chain_supported", return_value=True)
def test_get_contract_metadata(self, is_chain_supported_mock: MagicMock):
sourcify = SourcifyClient()
safe_contract_address = "0x6851D6fDFAfD08c0295C392436245E5bc78B0185"
try:
Expand Down

0 comments on commit 6851f64

Please sign in to comment.