pytest: disable remaining flaky and skip markers to see what else fails.
What changed, and why it matters
This commit only changes test-suite annotations. It removes 'skip' and 'flaky' markers from several pytest test cases so they will run again during automated testing. There is no change to the actual Core Lightning node software, wallet logic, network protocol, or any code that users run in production.
No security action required. Treat as a normal test-maintenance commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies five Python test files under tests/. It converts one @unittest.skipIf(True, …) into @pytest.mark.flaky(reruns=3) and removes @unittest.skip, @pytest.mark.flaky(reruns=5), and similar decorators from four other tests. These are purely CI/test-harness metadata changes; no production source code is touched.
Changed components
tests/test_closing.pytests/test_coinmoves.pytests/test_invoices.pytests/test_plugin.pytests/test_reckless.pyInspect captured patch +1 / −5
diff --git a/tests/test_closing.py b/tests/test_closing.py
index 33abde9c..47cc28d8 100644
--- a/tests/test_closing.py
+++ b/tests/test_closing.py
@@ -3437,7 +3437,7 @@ def test_closing_higherfee(node_factory, bitcoind, executor, anchors):
wait_for(lambda: l2.rpc.listpeerchannels()['channels'][0]['state'] == 'CLOSINGD_COMPLETE')
-@unittest.skipIf(True, "Test is extremely flaky")
+@pytest.mark.flaky(reruns=3)
def test_htlc_rexmit_while_closing(node_factory, executor):
"""Retranmitting an HTLC revocation while shutting down should work"""
# FIXME: This should be in lnprototest! UNRELIABLE.
diff --git a/tests/test_coinmoves.py b/tests/test_coinmoves.py
index dc5abb04..291f857b 100644
--- a/tests/test_coinmoves.py
+++ b/tests/test_coinmoves.py
@@ -681,7 +681,6 @@ def test_coinmoves_unilateral_htlc_before_included(node_factory, bitcoind):
check_balances(l1, l2, fundchannel['channel_id'], 0)
-@pytest.mark.flaky(reruns=5)
@pytest.mark.openchannel('v1')
@pytest.mark.openchannel('v2')
@unittest.skipIf(TEST_NETWORK != 'regtest', "Amounts are for regtest.")
diff --git a/tests/test_invoices.py b/tests/test_invoices.py
index a3db715a..37e6695b 100644
--- a/tests/test_invoices.py
+++ b/tests/test_invoices.py
@@ -927,7 +927,6 @@ def test_invoices_wait_db_migration(node_factory, bitcoind):
@unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "This test is based on a sqlite3 snapshot")
@unittest.skipIf(TEST_NETWORK != 'regtest', "The DB migration is network specific due to the chain var.")
-@pytest.mark.flaky(reruns=5)
def test_invoice_botched_migration(node_factory, chainparams):
"""Test for grubles' case, where they ran successfully with the wrong var: they have *both* last_invoice_created_index *and *last_invoices_created_index* (this can happen if invoice id 1 was deleted, so they didn't die on invoice creation):
Error executing statement: wallet/db.c:1684: UPDATE vars SET name = 'last_invoices_created_index' WHERE name = 'last_invoice_created_index': UNIQUE constraint failed: vars.name
diff --git a/tests/test_plugin.py b/tests/test_plugin.py
index d45b07b3..d63d1867 100644
--- a/tests/test_plugin.py
+++ b/tests/test_plugin.py
@@ -4311,7 +4311,6 @@ def test_plugin_nostart(node_factory):
assert [p['name'] for p in l1.rpc.plugin_list()['plugins'] if 'badinterp' in p['name']] == []
-@unittest.skip("A bit flaky, but when breaks, it is costing us 2h of CI time")
def test_plugin_startdir_lol(node_factory):
"""Though we fail to start many of them, we don't crash!"""
l1 = node_factory.get_node(broken_log='.*')
diff --git a/tests/test_reckless.py b/tests/test_reckless.py
index 275960d5..311ed1ae 100644
--- a/tests/test_reckless.py
+++ b/tests/test_reckless.py
@@ -351,7 +351,6 @@ def test_tag_install(node_factory):
header = line
-@pytest.mark.flaky(reruns=5)
@pytest.mark.slow_test
def test_reckless_uv_install(node_factory):
node = get_reckless_node(node_factory)
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.