From 61bc0ffbc85748437da0155ea25a5b741306aef2 Mon Sep 17 00:00:00 2001 From: edouardparis Date: Wed, 23 Apr 2025 17:45:35 +0200 Subject: [PATCH] tests: use data_directory --- tests/fixtures.py | 27 +++++++++++++++++++++++++++ tests/test_framework/lianad.py | 10 ++++++++-- tests/test_misc.py | 4 ++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/tests/fixtures.py b/tests/fixtures.py index 00e2f6d3..9985b2c6 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -308,6 +308,33 @@ def lianad_multisig(bitcoin_backend, directory): lianad.cleanup() +@pytest.fixture +def lianad_multisig_legacy_datadir(bitcoin_backend, directory): + datadir = os.path.join(directory, "lianad") + os.makedirs(datadir, exist_ok=True) + + # A 3-of-4 that degrades into a 2-of-5 after 10 blocks + csv_value = 10 + signer = MultiSigner(4, {csv_value: 5}, is_taproot=USE_TAPROOT) + main_desc = Descriptor.from_str(multisig_desc(signer, csv_value, USE_TAPROOT, 3, 2)) + + lianad = Lianad( + datadir, + signer, + main_desc, + bitcoin_backend, + legacy_datadir=True + ) + + try: + lianad.start() + yield lianad + except Exception: + lianad.cleanup() + raise + + lianad.cleanup() + @pytest.fixture def lianad_multisig_2_of_2(bitcoin_backend, directory): diff --git a/tests/test_framework/lianad.py b/tests/test_framework/lianad.py index 94bf2305..9e70f854 100644 --- a/tests/test_framework/lianad.py +++ b/tests/test_framework/lianad.py @@ -31,6 +31,7 @@ class Lianad(TailableProc): signer, multi_desc, bitcoin_backend, + legacy_datadir=False ): TailableProc.__init__(self, datadir, verbose=VERBOSE) @@ -44,12 +45,17 @@ class Lianad(TailableProc): self.conf_file = os.path.join(datadir, "config.toml") self.cmd_line = [LIANAD_PATH, "--conf", f"{self.conf_file}"] - socket_path = os.path.join(os.path.join(datadir, "regtest"), "lianad_rpc") + data_directory = os.path.join(datadir, "regtest") + socket_path = os.path.join(data_directory, "lianad_rpc") self.rpc = UnixDomainSocketRpc(socket_path) self.bitcoin_backend = bitcoin_backend with open(self.conf_file, "w") as f: - f.write(f"data_dir = '{datadir}'\n") + if legacy_datadir: + f.write(f"data_dir = '{datadir}'\n") + else: + f.write(f"data_directory = '{data_directory}'\n") + f.write(f"log_level = '{LOG_LEVEL}'\n") f.write(f'main_descriptor = "{multi_desc}"\n') diff --git a/tests/test_misc.py b/tests/test_misc.py index 52f5e7a3..59725534 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -278,9 +278,9 @@ def test_coinbase_deposit(lianad, bitcoind): BITCOIN_BACKEND_TYPE is not BitcoinBackendType.Bitcoind, reason="Only bitcoind backend was available for older lianad versions.", ) -def test_migration(lianad_multisig, bitcoind): +def test_migration(lianad_multisig_legacy_datadir, bitcoind): """Test we can start a newer lianad on a datadir created by an older lianad.""" - lianad = lianad_multisig + lianad = lianad_multisig_legacy_datadir # Set the old binary and re-create the datadir. lianad.cmd_line[0] = OLD_LIANAD_PATH