e4950db9a3
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} ``` |
||
---|---|---|
.. | ||
pyln/testing | ||
tests | ||
Makefile | ||
README.md | ||
requirements.txt | ||
setup.py |
pyln-testing: A library to write tests against c-lightning
This library implements a number of utilities that help building tests for c-lightning nodes. In particular it provides a number of pytest fixtures that allow the management of a test network of a given topology and then execute a test scenarion.
pyln-testing
is used by c-lightning for its internal tests, and by the
community plugin directory to exercise the plugins.
Installation
pyln-testing
is available on pip
:
pip install pyln-testing
Alternatively you can also install the development version to get access to currently unreleased features by checking out the c-lightning source code and installing into your python3 environment:
git clone https://github.com/ElementsProject/lightning.git
cd lightning/contrib/pyln-testing
python3 setup.py develop
This will add links to the library into your environment so changing the checked out source code will also result in the environment picking up these changes. Notice however that unreleased versions may change API without warning, so test thoroughly with the released version.