mirror of
https://github.com/FlipsideCrypto/web3.py.git
synced 2026-02-06 10:56:47 +00:00
Make Web3.isConnected() work
This commit is contained in:
parent
77787f8307
commit
1da5f3589a
@ -16,3 +16,28 @@ def test_setProvider(disconnected_provider):
|
||||
web3.setProvider(None)
|
||||
assert web3.currentProvider is None
|
||||
assert web3._requestManager.provider is None
|
||||
|
||||
|
||||
def test_isConnected(web3):
|
||||
"""
|
||||
Web3.isConnected() returns True when connected to a node.
|
||||
"""
|
||||
assert web3.isConnected() is True
|
||||
|
||||
|
||||
def test_isConnected_no_provider():
|
||||
"""
|
||||
Web3.isConnected() returns False when not configured with a provider.
|
||||
"""
|
||||
web3 = Web3(None)
|
||||
assert web3.isConnected() is False
|
||||
|
||||
|
||||
def test_isConnected_disconnected(disconnected_provider):
|
||||
"""
|
||||
Web3.isConnected() returns False when configured with a provider
|
||||
that's not connected to a node.
|
||||
"""
|
||||
web3 = Web3(disconnected_provider)
|
||||
assert web3.isConnected() is False
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ class Web3(object):
|
||||
return self._requestManager.request_blocking('web3_sha3', [hex_string])
|
||||
|
||||
def isConnected(self):
|
||||
return self.currentProvider and self.currentProvider.isConnected()
|
||||
return self.currentProvider is not None and self.currentProvider.isConnected()
|
||||
|
||||
def createBatch(self):
|
||||
raise NotImplementedError("Not Implemented")
|
||||
|
||||
@ -6,7 +6,7 @@ import itertools
|
||||
from web3.utils.encoding import (
|
||||
force_bytes,
|
||||
force_obj_to_text,
|
||||
)
|
||||
force_text)
|
||||
|
||||
|
||||
class BaseProvider(object):
|
||||
@ -23,3 +23,15 @@ class BaseProvider(object):
|
||||
"params": params or [],
|
||||
"id": next(self.request_counter),
|
||||
})))
|
||||
|
||||
def isConnected(self):
|
||||
try:
|
||||
response_raw = self.make_request('web3_clientVersion', [])
|
||||
response = json.loads(force_text(response_raw))
|
||||
except IOError:
|
||||
return False
|
||||
else:
|
||||
assert response['jsonrpc'] == '2.0'
|
||||
assert 'error' not in response
|
||||
return True
|
||||
assert False
|
||||
|
||||
Loading…
Reference in New Issue
Block a user