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
poetry install

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-24.8.2.tar.gz (48.6 kB view details)

Uploaded Source

Built Distribution

pyln_testing-24.8.2-py3-none-any.whl (49.7 kB view details)

Uploaded Python 3

File details

Details for the file pyln_testing-24.8.2.tar.gz.

File metadata

  • Download URL: pyln_testing-24.8.2.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.8.10 Linux/5.15.0-1073-azure

File hashes

Hashes for pyln_testing-24.8.2.tar.gz
Algorithm Hash digest
SHA256 2045881eb3b55d62209ca5292a576b9b3f46106322e8e2e507d854dc383f9eb4
MD5 2f0e2dad5f0d1896a73be1c60495ecc8
BLAKE2b-256 295b6fbfc15df7f76fd785c73059a793ce773f51709892dd40532cda2bdba675

See more details on using hashes here.

File details

Details for the file pyln_testing-24.8.2-py3-none-any.whl.

File metadata

  • Download URL: pyln_testing-24.8.2-py3-none-any.whl
  • Upload date:
  • Size: 49.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.8.10 Linux/5.15.0-1073-azure

File hashes

Hashes for pyln_testing-24.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 be5013be2d470b31fa447cd7285c11894a7190a401c9ae9580c243862b8eba2c
MD5 d61ba9b20065a970825bcb4f6b9f1265
BLAKE2b-256 4580f23a3564d516b989d3a874605b8fdbc223aa95b5479c03489c0863074ef4

See more details on using hashes here.

Supported by

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