You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.2 KiB
54 lines
2.2 KiB
import pytest |
|
import os |
|
import time |
|
import subprocess |
|
from commontest import local_command |
|
from jmclient import load_program_config |
|
|
|
bitcoin_path = None |
|
bitcoin_conf = None |
|
bitcoin_rpcpassword = None |
|
bitcoin_rpcusername = None |
|
|
|
|
|
def pytest_addoption(parser): |
|
parser.addoption("--btcroot", action="store", default='', |
|
help="the fully qualified path to the directory containing "+\ |
|
"the bitcoin binaries, e.g. /home/user/bitcoin/bin/") |
|
parser.addoption("--btcconf", action="store", |
|
help="the fully qualified path to the location of the "+\ |
|
"bitcoin configuration file you use for testing, e.g. "+\ |
|
"/home/user/.bitcoin/bitcoin.conf") |
|
parser.addoption("--btcpwd", |
|
action="store", |
|
help="the RPC password for your test bitcoin instance") |
|
parser.addoption("--btcuser", |
|
action="store", |
|
default='bitcoinrpc', |
|
help="the RPC username for your test bitcoin instance (default=bitcoinrpc)") |
|
|
|
def teardown(): |
|
#shut down bitcoin and remove the regtest dir |
|
local_command([bitcoin_path + "bitcoin-cli", "-regtest", "-rpcuser=" + bitcoin_rpcusername, |
|
"-rpcpassword=" + bitcoin_rpcpassword, "stop"]) |
|
#note, it is better to clean out ~/.bitcoin/regtest but too |
|
#dangerous to automate it here perhaps |
|
|
|
|
|
@pytest.fixture(scope="session", autouse=True) |
|
def setup(request): |
|
request.addfinalizer(teardown) |
|
|
|
global bitcoin_conf, bitcoin_path, bitcoin_rpcpassword, bitcoin_rpcusername |
|
bitcoin_path = request.config.getoption("--btcroot") |
|
bitcoin_conf = request.config.getoption("--btcconf") |
|
bitcoin_rpcpassword = request.config.getoption("--btcpwd") |
|
bitcoin_rpcusername = request.config.getoption("--btcuser") |
|
|
|
#start up regtest blockchain |
|
btc_proc = subprocess.call([bitcoin_path + "bitcoind", "-regtest", |
|
"-daemon", "-conf=" + bitcoin_conf]) |
|
time.sleep(3) |
|
#generate blocks |
|
local_command([bitcoin_path + "bitcoin-cli", "-regtest", "-rpcuser=" + bitcoin_rpcusername, |
|
"-rpcpassword=" + bitcoin_rpcpassword, "generate", "101"])
|
|
|