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 #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.
- Makes
TestNodeCLI.batch()response equivalent to what a JSON-RPC response would look like by addingerror=Nonein the response. The lack oferrorin the response was giving aKeyErrormessage. - Makes
send_batch_request()compatible with --usecli. Before the PR it was passing dicts tonode.batch(), butTestNodeCLI.batch()expects callables, not dicts.</details>