mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 15:14:23 +01:00
pytest: recreate wallet on bitcoind restart.
Doesn't seem to stick in master. Andy Chow suggested we
simply turn off wallet on older versions, and always create/load.
```
[gw8] [ 40%] FAILED tests/test_misc.py::test_bitcoind_goes_backwards
============================================================= FAILURES ==============================================================
___________________________________________________ test_bitcoind_goes_backwards ____________________________________________________
[gw8] linux -- Python 3.8.5 /usr/bin/python3
node_factory = <pyln.testing.utils.NodeFactory object at 0x7f931859a760>
bitcoind = <pyln.testing.utils.BitcoinD object at 0x7f931865eee0>
def test_bitcoind_goes_backwards(node_factory, bitcoind):
"""Check that we refuse to acknowledge bitcoind giving a shorter chain without explicit rescan"""
l1 = node_factory.get_node(may_fail=True, allow_broken_log=True)
bitcoind.generate_block(10)
sync_blockheight(bitcoind, [l1])
l1.stop()
# Now shrink chain (invalidateblock leaves 'headers' field until restart)
bitcoind.rpc.invalidateblock(bitcoind.rpc.getblockhash(105))
# Restart without killing proxies
bitcoind.rpc.stop()
TailableProc.stop(bitcoind)
bitcoind.start()
# Will simply refuse to start.
with pytest.raises(ValueError):
l1.start()
# Nor will it start with if we ask for a reindex of fewer blocks.
l1.daemon.opts['rescan'] = 3
with pytest.raises(ValueError):
l1.start()
# This will force it, however.
l1.daemon.opts['rescan'] = -100
l1.start()
# Now mess with bitcoind at runtime.
> bitcoind.generate_block(6)
tests/test_misc.py:1307:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
contrib/pyln-testing/pyln/testing/utils.py:399: in generate_block
return self.rpc.generatetoaddress(numblocks, self.rpc.getnewaddress())
contrib/pyln-testing/pyln/testing/utils.py:322: in f
return proxy._call(name, *args)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <bitcoin.rpc.RawProxy object at 0x7f93184f6a30>, service_name = 'getnewaddress', args = ()
postdata = '{"version": "1.1", "method": "getnewaddress", "params": [], "id": 1}'
headers = {'Authorization': b'Basic cnBjdXNlcjpycGNwYXNz', 'Content-type': 'application/json', 'Host': 'localhost', 'User-Agent': 'AuthServiceProxy/0.1'}
response = {'error': {'code': -18, 'message': 'No wallet is loaded. Load a wallet using loadwallet or create a new one with createwallet. (Note: A default wallet is no longer automatically created)'}, 'id': 1, 'result': None}
```
This commit is contained in:
committed by
Christian Decker
parent
4424b41c65
commit
e4950db9a3
@@ -1,5 +1,6 @@
|
||||
from bitcoin.core import COIN # type: ignore
|
||||
from bitcoin.rpc import RawProxy as BitcoinProxy # type: ignore
|
||||
from bitcoin.rpc import JSONRPCError
|
||||
from pyln.client import RpcError
|
||||
from pyln.testing.btcproxy import BitcoinRpcProxy
|
||||
from collections import OrderedDict
|
||||
@@ -351,7 +352,7 @@ class BitcoinD(TailableProc):
|
||||
'-logtimestamps',
|
||||
'-nolisten',
|
||||
'-txindex',
|
||||
'-wallet="test"',
|
||||
'-nowallet',
|
||||
'-addresstype=bech32'
|
||||
]
|
||||
# For up to and including 0.16.1, this needs to be in main section.
|
||||
@@ -369,6 +370,10 @@ class BitcoinD(TailableProc):
|
||||
self.wait_for_log("Done loading", timeout=TIMEOUT)
|
||||
|
||||
logging.info("BitcoinD started")
|
||||
try:
|
||||
self.rpc.createwallet("lightningd-tests")
|
||||
except JSONRPCError:
|
||||
self.rpc.loadwallet("lightningd-tests")
|
||||
|
||||
def stop(self):
|
||||
for p in self.proxies:
|
||||
@@ -461,6 +466,7 @@ class ElementsD(BitcoinD):
|
||||
'-server',
|
||||
'-logtimestamps',
|
||||
'-nolisten',
|
||||
'-nowallet',
|
||||
'-validatepegin=0',
|
||||
'-con_blocksubsidy=5000000000',
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user