mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-05-12 06:53:11 +02:00
a49bc1e24eci: add --extended when using --usecli (Pol Espinasa)5603ae0ffatest: fix send_batch_request to pass callables when using --usecli (Pol Espinasa) Pull request description: **First commit** This commit fixes an error that made feature_index_prune.py fail if --usecli was used. The test was failing because `node.batch(data)` was called with `data` being a dict. This worked in the normal scenario because `AuthServiceProxy.batch()` expects a list of petitions in the form of a dict. But `TestNodeCLI.batch()` expects callables and not a dict. When `--usecli` is used the test fails with an error `TypeError: 'dict' object is not callable`. This is fixed by using `get_request()` which returns a lambda function if `--usecli` is used and returns a dict if not. The `assert` is also changed because before this PR, the requests, constructed by hand were not specifiying the json-rpc version. By default if no version is specified we use version 1.0 which always returns `error: none` if there is no error. However, in version 2.0, it does not include an error key if there is no error. By using `get_request()` the requests are done in version 2.0 so there's no key error. **Second commit** The current CI doesn't cover the case of running all tests with --extended if using --usecli. This led to a test failing (feature_index_prune.py) if run with --usecli and the CI not catching it. See https://github.com/bitcoin/bitcoin/pull/34991 for context. This commit improves the CI test coverage by also running now all functional tests (--extended) with the flag --usecli. <details> <summary>First "wrong" approach</summary> Fixes two bugs that make `feature_index_prune.py` fail if `--usecli` is used. 1. Makes `TestNodeCLI.batch()` response equivalent to what a JSON-RPC response would look like by adding `error=None` in the response. The lack of `error` in the response was giving a `KeyError` message. 2. Makes `send_batch_request()` compatible with --usecli. Before the PR it was passing dicts to `node.batch()`, but `TestNodeCLI.batch()` expects callables, not dicts. </details> ACKs for top commit: Bicaru20: Re-ACKa49bc1e24e. sedited: Re-ACKa49bc1e24eTree-SHA512: 75fca26cf120638ced1fe38e86d8e3efa7addb6d97fc801e34783efd2cf6417f4ded2ec6247b6dcbcdb3cf4f48c4858f0932cbaa3e836a973d53581e75470a3f