Changes code to use bitcoin_cli from pisa/tools

This commit is contained in:
Sergi Delgado Segura
2019-11-07 17:36:10 +00:00
parent eb0417858e
commit c384bc78c2
3 changed files with 12 additions and 32 deletions

View File

@@ -3,9 +3,9 @@ import pytest
import requests import requests
from pisa import HOST, PORT, c_logger from pisa import HOST, PORT, c_logger
from pisa.utils.auth_proxy import AuthServiceProxy from pisa.tools import bitcoin_cli
from test.unit.conftest import generate_blocks, get_random_value_hex, generate_dummy_appointment_data from test.unit.conftest import generate_blocks, get_random_value_hex, generate_dummy_appointment_data
from pisa.conf import BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT, MAX_APPOINTMENTS from pisa.conf import MAX_APPOINTMENTS
c_logger.disabled = True c_logger.disabled = True
@@ -117,12 +117,10 @@ def test_get_all_appointments_watcher():
def test_get_all_appointments_responder(): def test_get_all_appointments_responder():
# Trigger all disputes # Trigger all disputes
bitcoin_cli = AuthServiceProxy("http://%s:%s@%s:%d" % (BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT))
locators = [appointment["locator"] for appointment in appointments] locators = [appointment["locator"] for appointment in appointments]
for locator, dispute_tx in locator_dispute_tx_map.items(): for locator, dispute_tx in locator_dispute_tx_map.items():
if locator in locators: if locator in locators:
bitcoin_cli.sendrawtransaction(dispute_tx) bitcoin_cli().sendrawtransaction(dispute_tx)
# Confirm transactions # Confirm transactions
generate_blocks(6) generate_blocks(6)

View File

@@ -5,13 +5,11 @@ from threading import Thread
from queue import Queue, Empty from queue import Queue, Empty
from pisa import c_logger from pisa import c_logger
from pisa.tools import check_txid_format from pisa.tools import check_txid_format, bitcoin_cli
from test.simulator.utils import sha256d from test.simulator.utils import sha256d
from pisa.responder import Responder, Job from pisa.responder import Responder, Job
from test.simulator.bitcoind_sim import TX from test.simulator.bitcoind_sim import TX
from pisa.utils.auth_proxy import AuthServiceProxy
from test.unit.conftest import generate_block, generate_blocks, get_random_value_hex from test.unit.conftest import generate_block, generate_blocks, get_random_value_hex
from pisa.conf import BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT
c_logger.disabled = True c_logger.disabled = True
@@ -22,8 +20,6 @@ def responder(db_manager):
def create_dummy_job_data(random_txid=False, justice_rawtx=None): def create_dummy_job_data(random_txid=False, justice_rawtx=None):
bitcoin_cli = AuthServiceProxy("http://%s:%s@%s:%d" % (BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT))
# The following transaction data corresponds to a valid transaction. For some test it may be interesting to have # The following transaction data corresponds to a valid transaction. For some test it may be interesting to have
# some valid data, but for others we may need multiple different justice_txids. # some valid data, but for others we may need multiple different justice_txids.
@@ -46,7 +42,7 @@ def create_dummy_job_data(random_txid=False, justice_rawtx=None):
if random_txid is True: if random_txid is True:
justice_txid = get_random_value_hex(32) justice_txid = get_random_value_hex(32)
appointment_end = bitcoin_cli.getblockcount() + 2 appointment_end = bitcoin_cli().getblockcount() + 2
return dispute_txid, justice_txid, justice_rawtx, appointment_end return dispute_txid, justice_txid, justice_rawtx, appointment_end
@@ -189,8 +185,6 @@ def test_do_watch(responder):
responder.unconfirmed_txs = [] responder.unconfirmed_txs = []
responder.missed_confirmations = dict() responder.missed_confirmations = dict()
bitcoin_cli = AuthServiceProxy("http://%s:%s@%s:%d" % (BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT))
jobs = [create_dummy_job(justice_rawtx=TX.create_dummy_transaction()) for _ in range(20)] jobs = [create_dummy_job(justice_rawtx=TX.create_dummy_transaction()) for _ in range(20)]
# Let's set up the jobs first # Let's set up the jobs first
@@ -210,7 +204,7 @@ def test_do_watch(responder):
# And broadcast some of the transactions # And broadcast some of the transactions
broadcast_txs = [] broadcast_txs = []
for job in jobs[:5]: for job in jobs[:5]:
bitcoin_cli.sendrawtransaction(job.justice_rawtx) bitcoin_cli().sendrawtransaction(job.justice_rawtx)
broadcast_txs.append(job.justice_txid) broadcast_txs.append(job.justice_txid)
# Mine a block # Mine a block
@@ -229,7 +223,7 @@ def test_do_watch(responder):
# Do the rest # Do the rest
broadcast_txs = [] broadcast_txs = []
for job in jobs[5:]: for job in jobs[5:]:
bitcoin_cli.sendrawtransaction(job.justice_rawtx) bitcoin_cli().sendrawtransaction(job.justice_rawtx)
broadcast_txs.append(job.justice_txid) broadcast_txs.append(job.justice_txid)
# Mine a block # Mine a block
@@ -263,8 +257,7 @@ def test_get_txs_to_rebroadcast(responder):
def test_get_completed_jobs(db_manager): def test_get_completed_jobs(db_manager):
bitcoin_cli = AuthServiceProxy("http://%s:%s@%s:%d" % (BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT)) initial_height = bitcoin_cli().getblockcount()
initial_height = bitcoin_cli.getblockcount()
# Let's use a fresh responder for this to make it easier to compare the results # Let's use a fresh responder for this to make it easier to compare the results
responder = Responder(db_manager) responder = Responder(db_manager)
@@ -291,7 +284,7 @@ def test_get_completed_jobs(db_manager):
responder.jobs.update(jobs_no_end) responder.jobs.update(jobs_no_end)
for uuid, job in responder.jobs.items(): for uuid, job in responder.jobs.items():
bitcoin_cli.sendrawtransaction(job.justice_rawtx) bitcoin_cli().sendrawtransaction(job.justice_rawtx)
# The dummy appointments have a end_appointment time of current + 2, but jobs need at least 6 confs by default # The dummy appointments have a end_appointment time of current + 2, but jobs need at least 6 confs by default
generate_blocks(6) generate_blocks(6)

View File

@@ -12,18 +12,9 @@ from cryptography.exceptions import InvalidSignature
from pisa import c_logger from pisa import c_logger
from pisa.watcher import Watcher from pisa.watcher import Watcher
from pisa.responder import Responder from pisa.responder import Responder
from pisa.tools import check_txid_format from pisa.tools import check_txid_format, bitcoin_cli
from pisa.utils.auth_proxy import AuthServiceProxy
from test.unit.conftest import generate_block, generate_blocks, generate_dummy_appointment from test.unit.conftest import generate_block, generate_blocks, generate_dummy_appointment
from pisa.conf import ( from pisa.conf import EXPIRY_DELTA, PISA_SECRET_KEY, MAX_APPOINTMENTS
EXPIRY_DELTA,
BTC_RPC_USER,
BTC_RPC_PASSWD,
BTC_RPC_HOST,
BTC_RPC_PORT,
PISA_SECRET_KEY,
MAX_APPOINTMENTS,
)
c_logger.disabled = True c_logger.disabled = True
@@ -157,8 +148,6 @@ def test_do_subscribe(watcher):
def test_do_watch(watcher): def test_do_watch(watcher):
bitcoin_cli = AuthServiceProxy("http://%s:%s@%s:%d" % (BTC_RPC_USER, BTC_RPC_PASSWD, BTC_RPC_HOST, BTC_RPC_PORT))
# We will wipe all the previous data and add 5 appointments # We will wipe all the previous data and add 5 appointments
watcher.appointments, watcher.locator_uuid_map, dispute_txs = create_appointments(APPOINTMENTS) watcher.appointments, watcher.locator_uuid_map, dispute_txs = create_appointments(APPOINTMENTS)
@@ -168,7 +157,7 @@ def test_do_watch(watcher):
# Broadcast the first two # Broadcast the first two
for dispute_tx in dispute_txs[:2]: for dispute_tx in dispute_txs[:2]:
bitcoin_cli.sendrawtransaction(dispute_tx) bitcoin_cli().sendrawtransaction(dispute_tx)
# After leaving some time for the block to be mined and processed, the number of appointments should have reduced # After leaving some time for the block to be mined and processed, the number of appointments should have reduced
# by two # by two