@ -1,11 +1,9 @@
from __future__ import ( absolute_import , division ,
print_function , unicode_literals )
from builtins import *
import pytest
import pytest
import re
import re
import os
import os
import time
import time
import subprocess
import subprocess
from typing import Any
bitcoin_path = None
bitcoin_path = None
bitcoin_conf = None
bitcoin_conf = None
@ -13,15 +11,15 @@ bitcoin_rpcpassword = None
bitcoin_rpcusername = None
bitcoin_rpcusername = None
miniircd_procs = [ ]
miniircd_procs = [ ]
def get_bitcoind_version ( version_string ) :
def get_bitcoind_version ( version_string : bytes ) - > tuple :
# this utility function returns the version number
# this utility function returns the version number
# as a tuple in the form (major, minor, patch )
# as a tuple in the form (major, minor)
version_tuple = re . match (
version_tuple = re . match (
br ' .*v(?P<major> \ d+) \ .(?P<minor> \ d+) \ .(?P<patch> \ d+) ',
br ' .*v(?P<major> \ d+) \ .(?P<minor> \ d+) ' ,
version_string ) . groups ( )
version_string ) . groups ( )
return tuple ( map ( lambda x : int ( x ) , version_tuple ) )
return tuple ( map ( lambda x : int ( x ) , version_tuple ) )
def local_command ( command , bg = False , redirect = ' ' ) :
def local_command ( command : str , bg : bool = False , redirect : str = ' ' ) :
if redirect == ' NULL ' :
if redirect == ' NULL ' :
if OS == ' Windows ' :
if OS == ' Windows ' :
command . append ( ' > NUL 2>&1 ' )
command . append ( ' > NUL 2>&1 ' )
@ -45,11 +43,11 @@ def local_command(command, bg=False, redirect=''):
return subprocess . run ( command , stdout = subprocess . PIPE ,
return subprocess . run ( command , stdout = subprocess . PIPE ,
stderr = subprocess . STDOUT )
stderr = subprocess . STDOUT )
def root_path ( ) :
def root_path ( ) - > str :
# returns the directory in which this file is contained
# returns the directory in which this file is contained
return os . path . dirname ( os . path . realpath ( __file__ ) )
return os . path . dirname ( os . path . realpath ( __file__ ) )
def pytest_addoption ( parser ) :
def pytest_addoption ( parser : Any ) - > None :
parser . addoption ( " --btcroot " , action = " store " , default = ' ' ,
parser . addoption ( " --btcroot " , action = " store " , default = ' ' ,
help = " the fully qualified path to the directory containing " + \
help = " the fully qualified path to the directory containing " + \
" the bitcoin binaries, e.g. /home/user/bitcoin/bin/ " )
" the bitcoin binaries, e.g. /home/user/bitcoin/bin/ " )
@ -71,7 +69,7 @@ def pytest_addoption(parser):
default = 1 ,
default = 1 ,
help = " the number of local miniircd instances " )
help = " the number of local miniircd instances " )
def teardown ( ) :
def teardown ( ) - > None :
#didn't find a stop command in miniircd, so just kill
#didn't find a stop command in miniircd, so just kill
global miniircd_procs
global miniircd_procs
for m in miniircd_procs :
for m in miniircd_procs :
@ -85,7 +83,7 @@ def teardown():
@pytest . fixture ( scope = " session " , autouse = True )
@pytest . fixture ( scope = " session " , autouse = True )
def setup ( request ) :
def setup ( request ) - > None :
request . addfinalizer ( teardown )
request . addfinalizer ( teardown )
global bitcoin_conf , bitcoin_path , bitcoin_rpcpassword , bitcoin_rpcusername
global bitcoin_conf , bitcoin_path , bitcoin_rpcpassword , bitcoin_rpcusername