Skip to main content

Test your Core Lightning integration, plugins or whatever you want

Project description

pyln-testing: A library to write tests against Core Lightning

This library implements a number of utilities that help building tests for Core 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 Core 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 Core Lightning source code and installing into your python3 environment:

git clone https://github.com/ElementsProject/lightning.git
cd lightning/contrib/pyln-testing
uv sync --extra grpc

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.

Testing GRPC Bindings

The grpc bindings can be tested by setting the CLN_TEST_GRPC=1 environment variable. This will cause the testing framework to use a grpc client to talk to the cln-grpc plugin, rather than talking directly to the node's JSON-RPC interface. Since the GRPC related dependencies are guarded behind a feature flag in pyln-testing you'll need to install it with the grpc feature enabled in order to be able to run in this mode.

Below is a diagram of how the normal JSON-RPC interaction looks like, followed by one that display the grpc interaction:

CLN -- JSON-RPC -- LightningRpc -- pytest
\_____CLN_____/    \_______pytest_______/
CLN -- JSON-RPC -- cln-rpc -- rpc2grpc converters -- grpc interface -- python grpc client -- python grpc2json converter -- pytest
\_____CLN_____/    \___________cln-grpc-plugin____________________/    \__________________________pytest________________________/

As you can see the grpc mode attempts to emulate the simple JSON-RPC mode by passing the call through a number of conversions. The last step grpc2json is rather incomplete, and will cause quite a few tests to fail for now, until the conversion is completed and we reach feature parity between the interaction modes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyln_testing-26.6rc2.tar.gz (53.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyln_testing-26.6rc2-py3-none-any.whl (55.0 kB view details)

Uploaded Python 3

File details

Details for the file pyln_testing-26.6rc2.tar.gz.

File metadata

  • Download URL: pyln_testing-26.6rc2.tar.gz
  • Upload date:
  • Size: 53.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyln_testing-26.6rc2.tar.gz
Algorithm Hash digest
SHA256 e874e0c9a67d4ca2966c401088cbc2a3d9fcf0448cc48408efb71a25ccbf0a33
MD5 a181899ed70d0590486c33685a8eae53
BLAKE2b-256 e58296316f9e6fcb886270f7aacba8aa29def9ddfa75ffcd15357765a9f56736

See more details on using hashes here.

File details

Details for the file pyln_testing-26.6rc2-py3-none-any.whl.

File metadata

  • Download URL: pyln_testing-26.6rc2-py3-none-any.whl
  • Upload date:
  • Size: 55.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pyln_testing-26.6rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1e4a46cb2966340b4e1fc82b7719bb32adf6001e23c86a66f8876450be1f3b9
MD5 ec3cc54d298711c45e0b9d8e4b4c0e65
BLAKE2b-256 c8c82d4ac87a4415ed0790d33756ca7c16297a93116c49d0d2fcc3f403cc93e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page