This PR 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.
Maybe to check for a followup PR
I saw that feature_index_prune.py was failing locally if using the --usecli option while testing another PR.
I am not really familiar with the CI but it didn’t detect this error.
I thought the CI also run all the tests with --usecli option.
- 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.