aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Chow <github@achow101.com>2023-03-15 19:33:21 -0400
committerAndrew Chow <github@achow101.com>2023-03-15 19:39:30 -0400
commitebb15ea75ad1e9c270ecf52e4a0cb67dc0199366 (patch)
treec4c95bde2fd406f6bfa853be3087dc0576687cd7 /test
parent609c95d4a8171544b946037b67b47106ea8c4065 (diff)
parent1ff5d61dfdaf8987e5619162662e4c760af76a43 (diff)
Merge bitcoin/bitcoin#26207: rest: add verbose and mempool_sequence query params for mempool/contents
1ff5d61dfdaf8987e5619162662e4c760af76a43 doc: add mempool/contents rest verbose and mempool_sequence args (Andrew Toth) 52a31dccc92366efb36db3b94920bdf8b05b264c tests: mempool/contents verbose and mempool_sequence query params tests (Andrew Toth) a518fff0f2e479064dd4cff6c29fb54c72c1407b rest: add verbose and mempool_sequence query params for mempool/contents (Andrew Toth) Pull request description: The verbose mempool json response can get very large. This adds an option to return the non-verbose response of just the txids. It is identical to the rpc response so the diff here is minimal. This also adds the mempool_sequence parameter for rpc consistency. Verbose defaults to true to remain backwards compatible. It uses query parameters to be compatible with the efforts in https://github.com/bitcoin/bitcoin/issues/25752. ACKs for top commit: achow101: ACK 1ff5d61dfdaf8987e5619162662e4c760af76a43 stickies-v: re-ACK [1ff5d61](https://github.com/bitcoin/bitcoin/pull/26207/commits/1ff5d61dfdaf8987e5619162662e4c760af76a43) pablomartin4btc: tested ACK 1ff5d61dfdaf8987e5619162662e4c760af76a43. Tree-SHA512: 1bf08a7ffde2e7db14dc746e421feedf17d84c4b3f1141e79e36feb6014811dfde80e1d8dbc476c15ff705de2d3c967b3081dcd80536d76b7edf888f1a92e9d1
Diffstat (limited to 'test')
-rwxr-xr-xtest/functional/interface_rest.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/functional/interface_rest.py b/test/functional/interface_rest.py
index 0dddc8946a..aafee7e87c 100755
--- a/test/functional/interface_rest.py
+++ b/test/functional/interface_rest.py
@@ -347,6 +347,34 @@ class RESTTest (BitcoinTestFramework):
assert_equal(json_obj[tx]['spentby'], txs[i + 1:i + 2])
assert_equal(json_obj[tx]['depends'], txs[i - 1:i])
+ # Check the mempool response for explicit parameters
+ json_obj = self.test_rest_request("/mempool/contents", query_params={"verbose": "true", "mempool_sequence": "false"})
+ assert_equal(json_obj, raw_mempool_verbose)
+
+ # Check the mempool response for not verbose
+ json_obj = self.test_rest_request("/mempool/contents", query_params={"verbose": "false"})
+ raw_mempool = self.nodes[0].getrawmempool(verbose=False)
+
+ assert_equal(json_obj, raw_mempool)
+
+ # Check the mempool response for sequence
+ json_obj = self.test_rest_request("/mempool/contents", query_params={"verbose": "false", "mempool_sequence": "true"})
+ raw_mempool = self.nodes[0].getrawmempool(verbose=False, mempool_sequence=True)
+
+ assert_equal(json_obj, raw_mempool)
+
+ # Check for error response if verbose=true and mempool_sequence=true
+ resp = self.test_rest_request("/mempool/contents", ret_type=RetType.OBJ, status=400, query_params={"verbose": "true", "mempool_sequence": "true"})
+ assert_equal(resp.read().decode('utf-8').strip(), 'Verbose results cannot contain mempool sequence values. (hint: set "verbose=false")')
+
+ # Check for error response if verbose is not "true" or "false"
+ resp = self.test_rest_request("/mempool/contents", ret_type=RetType.OBJ, status=400, query_params={"verbose": "TRUE"})
+ assert_equal(resp.read().decode('utf-8').strip(), 'The "verbose" query parameter must be either "true" or "false".')
+
+ # Check for error response if mempool_sequence is not "true" or "false"
+ resp = self.test_rest_request("/mempool/contents", ret_type=RetType.OBJ, status=400, query_params={"verbose": "false", "mempool_sequence": "TRUE"})
+ assert_equal(resp.read().decode('utf-8').strip(), 'The "mempool_sequence" query parameter must be either "true" or "false".')
+
# Now mine the transactions
newblockhash = self.generate(self.nodes[1], 1)