Make daemon return net as in monero.const, cache the value
This commit is contained in:
parent
2c85d23478
commit
ccf5066739
|
@ -9,6 +9,7 @@ import requests
|
||||||
from .. import exceptions
|
from .. import exceptions
|
||||||
from ..account import Account
|
from ..account import Account
|
||||||
from ..address import address, Address, SubAddress
|
from ..address import address, Address, SubAddress
|
||||||
|
from ..const import NET_MAIN, NET_TEST, NET_STAGE
|
||||||
from ..numbers import from_atomic, to_atomic, PaymentID
|
from ..numbers import from_atomic, to_atomic, PaymentID
|
||||||
from ..seed import Seed
|
from ..seed import Seed
|
||||||
from ..transaction import Transaction, IncomingPayment, OutgoingPayment
|
from ..transaction import Transaction, IncomingPayment, OutgoingPayment
|
||||||
|
@ -28,6 +29,9 @@ class JSONRPCDaemon(object):
|
||||||
:param verify_ssl_certs: verify SSL certificates when connecting
|
:param verify_ssl_certs: verify SSL certificates when connecting
|
||||||
:param proxy_url: a proxy to use
|
:param proxy_url: a proxy to use
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
_net = None
|
||||||
|
|
||||||
def __init__(self, protocol='http', host='127.0.0.1', port=18081, path='/json_rpc',
|
def __init__(self, protocol='http', host='127.0.0.1', port=18081, path='/json_rpc',
|
||||||
user='', password='', timeout=30, verify_ssl_certs=True, proxy_url=None):
|
user='', password='', timeout=30, verify_ssl_certs=True, proxy_url=None):
|
||||||
self.url = '{protocol}://{host}:{port}'.format(
|
self.url = '{protocol}://{host}:{port}'.format(
|
||||||
|
@ -41,10 +45,25 @@ class JSONRPCDaemon(object):
|
||||||
self.verify_ssl_certs = verify_ssl_certs
|
self.verify_ssl_certs = verify_ssl_certs
|
||||||
self.proxies = {protocol: proxy_url}
|
self.proxies = {protocol: proxy_url}
|
||||||
|
|
||||||
|
def _set_net(self, info):
|
||||||
|
if info['mainnet']:
|
||||||
|
self._net = NET_MAIN
|
||||||
|
if info['testnet']:
|
||||||
|
self._net = NET_TEST
|
||||||
|
if info['stagenet']:
|
||||||
|
self._net = NET_STAGE
|
||||||
|
|
||||||
def info(self):
|
def info(self):
|
||||||
info = self.raw_jsonrpc_request('get_info')
|
info = self.raw_jsonrpc_request('get_info')
|
||||||
|
self._set_net(info)
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
def net(self):
|
||||||
|
if self._net:
|
||||||
|
return self._net
|
||||||
|
self.info()
|
||||||
|
return self._net
|
||||||
|
|
||||||
def send_transaction(self, blob, relay=True):
|
def send_transaction(self, blob, relay=True):
|
||||||
res = self.raw_request('/sendrawtransaction', {
|
res = self.raw_request('/sendrawtransaction', {
|
||||||
'tx_as_hex': binascii.hexlify(blob),
|
'tx_as_hex': binascii.hexlify(blob),
|
||||||
|
|
|
@ -18,6 +18,10 @@ class Daemon(object):
|
||||||
"""
|
"""
|
||||||
return self._backend.info()
|
return self._backend.info()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def net(self):
|
||||||
|
return self._backend.net()
|
||||||
|
|
||||||
def height(self):
|
def height(self):
|
||||||
"""
|
"""
|
||||||
Return daemon's chain height.
|
Return daemon's chain height.
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
from binascii import hexlify
|
|
||||||
import responses
|
import responses
|
||||||
|
|
||||||
|
from monero.const import NET_STAGE
|
||||||
from monero.daemon import Daemon
|
from monero.daemon import Daemon
|
||||||
from monero.backends.jsonrpc import JSONRPCDaemon
|
from monero.backends.jsonrpc import JSONRPCDaemon
|
||||||
from monero.transaction import Transaction
|
|
||||||
|
|
||||||
from .base import JSONTestCase
|
from .base import JSONTestCase
|
||||||
|
|
||||||
|
@ -27,6 +26,24 @@ class JSONRPCDaemonTestCase(JSONTestCase):
|
||||||
self.assertTrue(self.daemon.info())
|
self.assertTrue(self.daemon.info())
|
||||||
self.assertEqual(self.daemon.height(), 294993)
|
self.assertEqual(self.daemon.height(), 294993)
|
||||||
|
|
||||||
|
@responses.activate
|
||||||
|
def test_net(self):
|
||||||
|
responses.add(responses.POST, self.jsonrpc_url,
|
||||||
|
json=self._read('test_basic_info-get_info.json'),
|
||||||
|
status=200)
|
||||||
|
self.assertEqual(self.daemon.net, NET_STAGE)
|
||||||
|
self.daemon.net
|
||||||
|
self.assertEqual(len(responses.calls), 1, "net value has not been cached?")
|
||||||
|
|
||||||
|
@responses.activate
|
||||||
|
def test_info_then_net(self):
|
||||||
|
responses.add(responses.POST, self.jsonrpc_url,
|
||||||
|
json=self._read('test_basic_info-get_info.json'),
|
||||||
|
status=200)
|
||||||
|
self.daemon.info()
|
||||||
|
self.assertEqual(self.daemon.net, NET_STAGE)
|
||||||
|
self.assertEqual(len(responses.calls), 1, "net value has not been cached?")
|
||||||
|
|
||||||
@responses.activate
|
@responses.activate
|
||||||
def test_mempool(self):
|
def test_mempool(self):
|
||||||
responses.add(responses.POST, self.mempool_url,
|
responses.add(responses.POST, self.mempool_url,
|
||||||
|
|
Loading…
Reference in New Issue