Merge bitcoin/bitcoin#26929: rpc: Throw more user friendly arg type check error (1.5/2)

fafeddfe0e rpc: Throw more user friendly arg type check error (MarcoFalke)

Pull request description:

  The arg type check error doesn't list which arg (position or name) failed. Fix that.

ACKs for top commit:
  stickies-v:
    ACK fafeddfe0e - although I think the functional test isn't in a logical place (but not blocking)

Tree-SHA512: 17425aa145aab5045940ec74fff28f0e3b2b17ae55f91c4bb5cbcdff0ef13732f8e31621d85964dc2c04333ea37dbe528296ac61be27541384b44e37957555c8
This commit is contained in:
fanquake
2023-01-25 15:01:45 +00:00
3 changed files with 51 additions and 33 deletions

View File

@@ -25,6 +25,7 @@ from decimal import Decimal
import http.client
import os
import subprocess
import textwrap
from test_framework.blocktools import (
MAX_FUTURE_BLOCK_TIME,
@@ -429,6 +430,17 @@ class BlockchainTest(BitcoinTestFramework):
def _test_getnetworkhashps(self):
self.log.info("Test getnetworkhashps")
hashes_per_second = self.nodes[0].getnetworkhashps()
assert_raises_rpc_error(
-3,
textwrap.dedent("""
Wrong type passed:
{
"Position 1 (nblocks)": "JSON value of type string is not of expected type number",
"Position 2 (height)": "JSON value of type array is not of expected type number"
}
""").strip(),
lambda: self.nodes[0].getnetworkhashps("a", []),
)
# This should be 2 hashes every 10 minutes or 1/300
assert abs(hashes_per_second * 300 - 1) < 0.0001