mirror of
https://github.com/FlipsideCrypto/web3.py.git
synced 2026-02-06 10:56:47 +00:00
switch away from monkeypatching
This commit is contained in:
parent
629a6885c1
commit
aaa3facd71
15
conftest.py
15
conftest.py
@ -6,15 +6,8 @@ import random
|
||||
import pytest
|
||||
|
||||
import gevent
|
||||
from gevent import monkey
|
||||
from gevent import socket
|
||||
|
||||
# needed to use the requests library
|
||||
monkey.patch_socket()
|
||||
monkey.patch_select()
|
||||
|
||||
import requests # noqa: E402
|
||||
|
||||
from geth import ( # noqa: E402
|
||||
LoggingMixin,
|
||||
DevGethProcess,
|
||||
@ -37,10 +30,12 @@ def get_open_port():
|
||||
def wait_for_http_connection(port, timeout=60):
|
||||
with gevent.Timeout(timeout):
|
||||
while True:
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.timeout = 1
|
||||
try:
|
||||
requests.post("http://127.0.0.1:{0}".format(port))
|
||||
except requests.ConnectionError:
|
||||
gevent.sleep(0.1)
|
||||
s.connect(('127.0.0.1', port))
|
||||
except (socket.timeout, ConnectionRefusedError):
|
||||
gevent.sleep(random.random())
|
||||
continue
|
||||
else:
|
||||
break
|
||||
|
||||
2
setup.py
2
setup.py
@ -26,9 +26,9 @@ setup(
|
||||
include_package_data=True,
|
||||
install_requires=[
|
||||
"pysha3>=0.3",
|
||||
"requests>=2.10.0",
|
||||
"rlp>=0.4.6",
|
||||
"gevent>=1.1.1",
|
||||
"geventhttpclient>=1.3.1",
|
||||
"ethereum-abi-utils>=0.2.1",
|
||||
"pysha3>=0.3",
|
||||
],
|
||||
|
||||
@ -1,18 +1,12 @@
|
||||
import contextlib
|
||||
import gevent
|
||||
from gevent import monkey
|
||||
|
||||
|
||||
monkey.patch_socket()
|
||||
monkey.patch_select()
|
||||
from geventhttpclient import HTTPClient
|
||||
|
||||
|
||||
from .base import BaseProvider # noqa: E402
|
||||
|
||||
import requests # noqa: E402
|
||||
|
||||
|
||||
class RPCProvider(BaseProvider):
|
||||
|
||||
def __init__(self, host="127.0.0.1", port="8545", *args, **kwargs):
|
||||
self.host = host
|
||||
self.port = port
|
||||
@ -20,14 +14,25 @@ class RPCProvider(BaseProvider):
|
||||
super(RPCProvider, self).__init__(*args, **kwargs)
|
||||
|
||||
def make_request(self, method, params):
|
||||
request = self.encode_rpc_request(method, params)
|
||||
response = requests.post(
|
||||
"http://{host}:{port}/".format(host=self.host, port=self.port),
|
||||
headers={'content-type': 'application/json'},
|
||||
data=request
|
||||
from web3 import __version__ as web3_version
|
||||
request_data = self.encode_rpc_request(method, params)
|
||||
request_user_agent = 'Web3.py/{version}/{class_name}'.format(
|
||||
version=web3_version,
|
||||
class_name=type(self),
|
||||
)
|
||||
client = HTTPClient(
|
||||
host=self.host,
|
||||
port=self.port,
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent': request_user_agent,
|
||||
},
|
||||
)
|
||||
with contextlib.closing(client):
|
||||
response = client.post('/', body=request_data)
|
||||
response_body = response.read()
|
||||
|
||||
return response.text
|
||||
return response_body
|
||||
|
||||
|
||||
def is_testrpc_available():
|
||||
|
||||
Loading…
Reference in New Issue
Block a user