HomePhabricator

[electrum] provide a test framework for Electrum ABC functional tests

Description

[electrum] provide a test framework for Electrum ABC functional tests

Summary:
Remove the dependency on Fulcrum and pytest-docker, and get all the benefits from the monorepo by testing with an up-to-date Chronik Electrum server.

The tests are now run on CI when electrum or chronik-http code is modified.

Potential future improvements that are out of scope for this diff:

  • reuse more features from the node's test framework (assert_equal, wait_until...)
  • provide more feedback on test failure (path the node's debug log and stderr...)
  • provide less feedback on test success: don't log Electrum ABC's verbose output unconditionally, write it to a file

Certificate and key generated with:
Self-signed certificate generated with:

openssl req -newkey rsa:2048 -sha256 -nodes -x509 -days 36500 -subj '/O=BitcoinABC' -keyout server.key -out server.crt

Depends on D18295

Test Plan:
Test all the ways to run the test suite or an individual test module

./contrib/teamcity/build-configurations.py electrum-functional-tests
mkdir build && cd build
cmake .. -GNinja -DBUILD_CHRONIK=1
ninja check-electrum-functional
cd ../electrum
BITCOIND='/home/pierre/dev/bitcoin-abc/build/src/bitcoind' python -m electrumabc.tests.regtest.test_rpc_misc
BITCOIND='/home/pierre/dev/bitcoin-abc/build/src/bitcoind' python test_runner.py functional

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Subscribers: Fabien

Differential Revision: https://reviews.bitcoinabc.org/D18293

Details

Provenance
PiRKAuthored on Jun 25 2025, 13:23
PiRKPushed on Jun 30 2025, 09:55
Reviewer
Restricted Project
Differential Revision
D18293: [electrum] provide a test framework for Electrum ABC functional tests
Parents
rABC006994d728bf: [Automated] Update seeds
Branches
Unknown
Tags
Unknown