From e6d26b479c6e7125361daa83562b6b4b3535b1e8 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Tue, 1 Dec 2020 15:03:41 +0100 Subject: [PATCH] backup: Add a test to reproduce #158 --- backup/test_backup.py | 22 ++++++++++++++++++++++ backup/tests/pre-4090-backup.dbak | Bin 0 -> 79811 bytes 2 files changed, 22 insertions(+) create mode 100644 backup/tests/pre-4090-backup.dbak diff --git a/backup/test_backup.py b/backup/test_backup.py index d385153..82c8dbe 100644 --- a/backup/test_backup.py +++ b/backup/test_backup.py @@ -1,3 +1,4 @@ +from backup import FileBackend from flaky import flaky from pyln.client import RpcError from pyln.testing.fixtures import * @@ -207,3 +208,24 @@ def test_warning(directory, node_factory): assert(l1.daemon.is_in_log( r'The `--backup-destination` option is deprecated and will be removed in future versions of the backup plugin.' )) + + +def test_rewrite(): + tests = [ + ( + r'UPDATE outputs SET status=123, reserved_til=1891733WHERE prev_out_tx=1 AND prev_out_index=2', + r'UPDATE outputs SET status=123, reserved_til=1891733 WHERE prev_out_tx=1 AND prev_out_index=2', + ), + ] + + b = FileBackend('destination', create=False) + + for i, o in tests: + assert(b._rewrite_stmt(i) == o) + +def test_restore_pre_4090(directory): + """The prev-4090-backup.dbak contains faulty expansions, fix em. + """ + bdest = 'file://' + os.path.join(os.path.dirname(__file__), 'tests', 'pre-4090-backup.dbak') + rdest = os.path.join(directory, 'lightningd.sqlite.restore') + subprocess.check_call([cli_path, "restore", bdest, rdest]) diff --git a/backup/tests/pre-4090-backup.dbak b/backup/tests/pre-4090-backup.dbak new file mode 100644 index 0000000000000000000000000000000000000000..8be3d47dd2dc70f4b3f34f835ad577dd507bd0de GIT binary patch literal 79811 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