Use a single requests.Session() for JSONRPC

pull/105/head
/dev/null 2 years ago
parent 83e3f2a12a
commit 2256a037f1

@ -107,6 +107,7 @@ class JSONRPCDaemon(object):
)
_log.debug("JSONRPC daemon backend URL: {url}".format(url=self.url))
self.auth = requests.auth.HTTPDigestAuth(user, password)
self.session = requests.Session()
self.timeout = timeout
self.verify_ssl_certs = verify_ssl_certs
self.proxies = {protocol: proxy_url}
@ -221,7 +222,7 @@ class JSONRPCDaemon(object):
path=path, data=json.dumps(data, indent=2, sort_keys=True)
)
)
rsp = requests.post(
rsp = self.session.post(
self.url + path,
headers=hdr,
data=json.dumps(data) if data else None,
@ -249,7 +250,7 @@ class JSONRPCDaemon(object):
method=method, params=json.dumps(params, indent=2, sort_keys=True)
)
)
rsp = requests.post(
rsp = self.session.post(
self.url + "/json_rpc",
headers=hdr,
data=json.dumps(data),

@ -51,6 +51,7 @@ class JSONRPCWallet(object):
)
_log.debug("JSONRPC wallet backend URL: {url}".format(url=self.url))
self.auth = requests.auth.HTTPDigestAuth(user, password)
self.session = requests.Session()
self.timeout = timeout
self.verify_ssl_certs = verify_ssl_certs
self.proxies = {protocol: proxy_url}
@ -385,7 +386,7 @@ class JSONRPCWallet(object):
method=method, params=json.dumps(params, indent=2, sort_keys=True)
)
)
rsp = requests.post(
rsp = self.session.post(
self.url,
headers=hdr,
data=json.dumps(data),

@ -1,6 +1,7 @@
from datetime import datetime
from decimal import Decimal
import responses
import requests
try:
from unittest.mock import patch, Mock
@ -50,7 +51,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
},
}
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_seed(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -70,7 +71,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(seed, Seed)
self.assertEqual(seed.phrase, phrase)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_balance(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -219,7 +220,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(subaddr, SubAddress)
self.assertIsInstance(index, int)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_incoming_confirmed(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -369,7 +370,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(pmt.transaction.fee, Decimal)
self.assertIsInstance(pmt.transaction.height, int)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_incoming_confirmed_and_unconfirmed(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -549,7 +550,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(pmt.transaction.fee, Decimal)
self.assertIsInstance(pmt.transaction.height, (int, type(None)))
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_incoming_unconfirmed(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -851,7 +852,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertEqual(pmts[0].amount, Decimal("0.52"))
self.assertEqual(pmts[1].amount, Decimal("0.0212"))
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_incoming_by_payment_ids(self, mock_post):
# These queries will use get_bulk_payments RPC method instead of get_transfers
mock_post.return_value.status_code = 200
@ -962,7 +963,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(pmt.transaction.height, int)
self.assertIn(pmt.payment_id, ids)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_outgoing(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -1189,7 +1190,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(pmt.transaction.fee, Decimal)
self.assertIsInstance(pmt.transaction.height, int)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_outgoing_confirmed_and_unconfirmed(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -1432,7 +1433,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(pmt.transaction.fee, Decimal)
self.assertIsInstance(pmt.transaction.height, (int, type(None)))
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_outgoing_unconfirmed_only(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -1493,7 +1494,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertEqual(len(pmt.destinations), 2)
self.assertEqual(pmt.destinations[0][1] + pmt.destinations[1][1], pmt.amount)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_send_transfer(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -1562,7 +1563,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
self.assertIsInstance(result[0], Transaction)
self.assertEqual(Decimal("111.086545699972"), result[1])
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_dynamic_ring_size_deprecation(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -1587,7 +1588,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
},
}
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_export_import_outputs(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result
@ -1608,7 +1609,7 @@ class JSONRPCWalletTestCase(JSONTestCase):
}
self.assertEqual(self.wallet.import_outputs(outs_hex), 9)
@patch("monero.backends.jsonrpc.wallet.requests.post")
@patch.object(requests.Session, "post")
def test_export_import_key_images(self, mock_post):
mock_post.return_value.status_code = 200
mock_post.return_value.json.return_value = self.accounts_result

Loading…
Cancel
Save