{"id":13499299,"url":"https://github.com/cdecker/lightning-integration","last_synced_at":"2025-03-21T11:31:34.594Z","repository":{"id":22162129,"uuid":"95465011","full_name":"cdecker/lightning-integration","owner":"cdecker","description":"Lightning Integration Testing Framework","archived":false,"fork":false,"pushed_at":"2021-12-07T13:17:33.000Z","size":590,"stargazers_count":74,"open_issues_count":6,"forks_count":27,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-01T05:41:25.678Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdecker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-26T16:08:00.000Z","updated_at":"2024-05-17T16:46:15.000Z","dependencies_parsed_at":"2022-07-25T09:02:05.986Z","dependency_job_id":null,"html_url":"https://github.com/cdecker/lightning-integration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdecker%2Flightning-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdecker%2Flightning-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdecker%2Flightning-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdecker%2Flightning-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdecker","download_url":"https://codeload.github.com/cdecker/lightning-integration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244135898,"owners_count":20403797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T22:00:31.993Z","updated_at":"2025-03-21T11:31:34.268Z","avatar_url":"https://github.com/cdecker.png","language":"Python","readme":"# Lightning Integration Testing Framework\n\n## Setup\n\nThe tests are written as py.test unit tests.\nThis facilitates the handling of fixtures and allows to instrument tests nicely, e.g., write a test once and run it against various combinations of clients.\nTo install the python dependencies and `bitcoind` use the following:\n\n    apt-get install bitcoind python3 python3-pip\n    pip3 install -r requirements.txt\n\nWe suggest running this in a virtualenv in order to guard against changing dependencies.\n\nWe currently do not bundle the binaries that we test against.\nIn order for the tests to run you'll need to compile the various clients and move/link the binaries into the directories where the tests can find them.\nPlease refer to the various compilation instructions and make sure that the structure matches the following diagram:\n\n    bin\n    ├── eclair.jar\n    ├── lightningd\n    ├── lnd\n    └── ptarmd\n\nThe binaries for `lightningd`, `lnd` and [`ptarmd`](https://github.com/nayutaco/ptarmigan) should be pretty self-explanatory.\nThe binary artifact for `eclair` is the `jar`-file containing all dependencies for the `eclair-node` subproject.\nIt is usually called `eclair-node_X.Y.Z-SNAPSHOT-XXXXXX-capsule-fat.jar` and can be found in the `target` subdirectory.\n\n## Running the tests\n\nThe tests rely on py.test to create fixtures, wire them into the tests and run the tests themselves.\nExecute all tests by running\n\n    py.test -v test.py\n\nThis will run through all possible combinations of the implementations and report success/failure for each one.\n\n[![asciicast](https://asciinema.org/a/126309.png)](https://asciinema.org/a/126309)\n\nTo run only tests involving a certain implementation you can also run the following (taking `lightningd` as an example):\n\n    py.test -v test.py -k LightningNode\n\nNot sure where a test dies? Make the whole thing extremely verbose with this:\n\n    TEST_DEBUG=1 py.test -v test.py -s -k 'testConnect[EclairNode_LightningNode]'\n\nShould you want to jump into an interactive session if something is about to fail run the following:\n\n    py.test -v test.py --pdb\n\nThis will run the tests until a failure would be recorded and start the python debugging console instead.\nIn the console you have a python REPL that has access to the context of the current test, and you can interact with the clients via the RPCs to gather more information about what is going wrong.\n\n## Workarounds\n\nThe following changes to the default configuration are used to ensure compatibility. Possibly the default configurations should be compatible, but that is not always possible to do in a timely fashion.\n\n - lnd\n   - `--bitcoin.defaultremotedelay=144` since c-lightning will not allow large `to_self_delay`s (see lightningnetwork/lnd#788 and ElementsProject/lightning#1110)\n\n## Run with docker\n\nTo build things in a local docker container:\n\n\tdocker build --tag=lnintegration .\n\nor\n\n\tmake docker-build\n\nTo both build and run that local docker container:\n\n\tdocker build --tag=lnintegration . \u0026\u0026 docker run lnintegration\n\nor\n\n\tmake docker-run\n","funding_links":[],"categories":["Developer Resources"],"sub_categories":["Libraries"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdecker%2Flightning-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdecker%2Flightning-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdecker%2Flightning-integration/lists"}