start test for bitcoinRPC
This commit is contained in:
parent
cf00fd0474
commit
b255ecdda1
|
@ -4,7 +4,6 @@ import sys
|
|||
import bitcoin
|
||||
import bitcoin.rpc
|
||||
from xcat.utils import x2s
|
||||
# from bitcoin import SelectParams
|
||||
from bitcoin.core import b2x, lx, x, COIN, CMutableTxOut
|
||||
from bitcoin.core import CMutableTxIn, CMutableTransaction
|
||||
from bitcoin.core.script import CScript, OP_DUP, OP_IF, OP_ELSE, OP_ENDIF
|
||||
|
@ -14,8 +13,6 @@ from bitcoin.core.script import OP_CHECKLOCKTIMEVERIFY, OP_SHA256, OP_TRUE
|
|||
from bitcoin.core.scripteval import VerifyScript, SCRIPT_VERIFY_P2SH
|
||||
from bitcoin.wallet import CBitcoinAddress, P2SHBitcoinAddress
|
||||
from bitcoin.wallet import P2PKHBitcoinAddress
|
||||
|
||||
# import xcat.utils as utils
|
||||
import logging
|
||||
|
||||
if sys.version_info.major < 3:
|
||||
|
@ -27,9 +24,13 @@ FEE = 0.001 * COIN
|
|||
|
||||
class bitcoinProxy():
|
||||
def __init__(self, network='regtest', timeout=900):
|
||||
if network is not 'testnet' and network is not 'mainnet':
|
||||
network = 'regtest'
|
||||
if network not in ['testnet', 'mainnet', 'regtest']:
|
||||
raise ValueError('Allowed networks are regtest, testnet, mainnet.')
|
||||
if not isinstance(timeout, int) or timeout < 1:
|
||||
raise ValueError('Timeout should be a positive integer.')
|
||||
|
||||
logging.debug("NETWORK in proxy: {0}".format(network))
|
||||
|
||||
self.network = network
|
||||
self.timeout = timeout
|
||||
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
import unittest
|
||||
import unittest.mock as mock
|
||||
from xcat.bitcoinRPC import bitcoinProxy
|
||||
import logging
|
||||
|
||||
|
||||
@mock.patch('xcat.bitcoinRPC.bitcoin.rpc')
|
||||
class TestBitcoinProxy(unittest.TestCase):
|
||||
"""Test case for the bitcoinProxy class."""
|
||||
|
||||
def setUp(self):
|
||||
logging.disable(logging.CRITICAL)
|
||||
|
||||
@mock.patch('xcat.bitcoinRPC.bitcoin.SelectParams')
|
||||
def test_init_with_testnet(self, mock_SP, mock_rpc):
|
||||
"""Test bitcoinProxy.__init__"""
|
||||
|
||||
proxy = bitcoinProxy(network='testnet')
|
||||
|
||||
mock_rpc.Proxy.assert_called_with(timeout=900)
|
||||
mock_SP.assert_called_with('testnet')
|
||||
self.assertIsInstance(proxy, bitcoinProxy)
|
||||
|
||||
@mock.patch('xcat.bitcoinRPC.bitcoin.SelectParams')
|
||||
def test_init_with_no_network(self, mock_SP, mock_rpc):
|
||||
"""Test bitcoinProxy.__init__"""
|
||||
|
||||
proxy = bitcoinProxy()
|
||||
|
||||
mock_rpc.Proxy.assert_called_with(timeout=900)
|
||||
mock_SP.assert_called_with('regtest')
|
||||
self.assertIsInstance(proxy, bitcoinProxy)
|
||||
|
||||
def test_init_with_invalid(self, mock_rpc):
|
||||
"""Test bitcoinProxy.__init__"""
|
||||
|
||||
with self.assertRaises(ValueError) as context:
|
||||
proxy = bitcoinProxy(network='invalid input')
|
||||
self.assertIsNone(proxy)
|
||||
|
||||
self.assertTrue(
|
||||
'Allowed networks are regtest, testnet, mainnet.'
|
||||
in str(context.exception))
|
||||
|
||||
def test_init_with_invalid_timeout(self, mock_rpc):
|
||||
"""Test bitcoinProxy.__init__"""
|
||||
|
||||
with self.assertRaises(ValueError) as context:
|
||||
proxy = bitcoinProxy(timeout='invalid input')
|
||||
self.assertIsNone(proxy)
|
||||
|
||||
self.assertTrue(
|
||||
'Timeout should be a positive integer.'
|
||||
in str(context.exception))
|
||||
|
||||
with self.assertRaises(ValueError) as context_two:
|
||||
proxy = bitcoinProxy(timeout=-381)
|
||||
self.assertIsNone(proxy)
|
||||
|
||||
self.assertTrue(
|
||||
'Timeout should be a positive integer.'
|
||||
in str(context_two.exception))
|
Loading…
Reference in New Issue